急救!数据恢复问题!
由于不正常关机或者病毒破坏,数据库日志文件只有1M多,数据库是一应用系统所用,用了一年多,日志文件应该不会这么小.估计日志文件已经被破坏.
MDF文件无法读取,有200多M.
在企业管理器看,数据库名已变灰色,后面加上置疑两字.
那位高手帮想想办法,如何才能恢复?
是公司应用系统的库.急!!!
问题点数:88、回复次数:4Top
1 楼vivianfdlpw()回复于 2005-10-01 13:27:07 得分 28
1.新建一个同名的数据库
2.再停掉sql server
3.用suspect数据库的文件覆盖掉这个新建的同名数据库
4.再重启sql server
5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='his222'
Go
sp_dboption 'test', 'single user', 'true'
Go
DBCC CHECKDB('test')
Go
update sysdatabases set status =28 where name='test'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption 'test', 'single user', 'false'
Go
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧
企业管理器--右键你的数据库--所有任务--导出数据
--目标标数据库选择新建
--选择"在两个sql数据库之间复制对象和数据"
--把"包含扩展属性"选上,其他的根据需要选择
--最后完成
Top
2 楼softj(天地客人<最近很迷茫>)回复于 2005-10-03 10:53:36 得分 60
一个数据库只剩下mdf文件了,用附加数据库的方法不行,怎么办
1、建一个同名的数据库
2、修改服务器设置:允许多系统目录进行直接修改
3、停止SQL Server
4、用原mdf文件覆盖新建库的数据库文件
5、重启SQL Server(这时数据库应该是置疑)
6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name = dbname
7、重建日志:dbcc rebulid_log('dbname', 'logfile')
数据库重新启动,然后再还原数据库状态用以下语句
update master.dbo.sysdatabases set status = 16 where name = dbname
行不?Top
3 楼zzxiaoma(小马)回复于 2005-10-04 14:55:07 得分 0
upTop
4 楼longxiao_ln(longxiao)回复于 2005-10-07 12:34:51 得分 0
感谢以上几位的帮忙,已经完成,MDF文件本身已经无法读取,我用了findata软件将文件复制成功后,删除旧库,新建数据库,设置服务器属性为可以直接修改目录,打开置疑状态的库,导出数据,即可使用.Top




