首页 新闻 会员 周边 捐助

SQL数据库发生置疑,如何处理?

0
[已关闭问题]

为什么处理好置疑后只能查询到部分数据?

例如:整体数据为2000.1.1--2004.12.12修复后,只能查询2000.1.1--2004.10.10

还原数据库时发生错误,错误提示为3242.如何处理?

dh_lsy_dh的主页 dh_lsy_dh | 初学一级 | 园豆:200
提问于:2009-11-21 09:39
< >
分享
其他回答(1)
0

将这个文件的逻辑地址,更改为你的数据库地址.
逻辑地址里面存的是备份前原数据库的地址.而备份后还原的数据库,其文件却存在另外的位置了,所以要调整其逻辑地址,为现有数据库文件地址及文件名.方可正确还原.(如果不存在版本问题的话,应该可以解决).

dege301 | 园豆:2825 (老鸟四级) | 2009-11-21 12:55
0

数据库置疑的问题,正好我前几天刚解决了下,方法也是从网络上找的,贴出来给您借鉴下。

恢复步骤:  
--a.将smlog_log.ldf文件备份到其它目录下;  
--b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf;  
--c.执行以下语句修改数据库的状态:  
use Master  
go  
update sysdatabases set status=32768 where name='数据库名称'     --修改状态,設為緊急狀態
go  
shutdown with nowait     --停止数据库服务器  
go  
--d.退出SQL并在(COMMAND)命令行模式中通过下面的代码重新启动SQL:  
sqlservr -c -T3608 -T4022     --安全模式启动SQL SERVER
--e.在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态:  
select Name,Status from sysdatabases where Name='数据库名稱'
--f.执行以下代码新建日志文件:  
dbcc traceon(3604)--跟踪  
dbcc rebuild_log('数据库名称','日志文件全路徑') --文件名要有全路径和扩展名
--dbcc rebuild_log('prs_msc','d:\mscsql\mssql\data\prs_msc_log.ldf
--g.将数据库置回正常状态:  
update sysdatabases set status=0 where name='数据库名称'  
--h.重新启动数据库后执行以下语句检查数据库:  
DBCC CHECKDB --如果执行完有错误用以下语句修复  
--i.要修复数据库必需将数据库改为单用户模式:  
Exce sp_dboption '数据库名称','single user','true'---('false'恢复多用户)  
--j.执行以下语句修复数据库:  
DBCC CHECKDB('数据库名称',REPAIR_ALLOW_DATA_LOSS)  
REPAIR_ALLOW_DATA_LOSS:是比较高级的修复方式  
REPAIR_FAST:是简单快速的修复方式

冰封嘚心 | 园豆:205 (菜鸟二级) | 2009-11-27 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册