在SQL Server 2005中恢复日志损坏的数据库或状态可疑的数据库[日志文件损坏]
标签:日志,恢复解决方案
很多偶然情况会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障、计算机非正常重启或关机。
当SQL Server 2005数据库日志文件损坏时,在SQL Server Management Studio中显示数据库处于可疑(suspect)状态。在这种情况下重启数据库服务和服务器都没用.如果把数据库分离,再附加那更惨.
在这种情况下很多,数据库管理员手忙脚乱,可能会贸然行事.我分两种情况来说明.
1.SQL Server Management Studio中显示数据库处于(可疑)状态.泰然处之
发现数据库处于可疑,没做别的操作的话.执行下列脚本,很快就恢复了.
alter database DBName set emergency
alter database DBName set single_user
dbcc checkdb('DBName',REPAIR_ALLOW_DATA_LOSS)
alter database DBName set multi_user
alter database DBName set online
其中DBName是具体的数据库名.请自行替换即可.
2.SQL Server Management Studio中显示数据库处于(可疑)状态.手忙脚乱的.
发现数据库处于可疑,有的人试图分离数据库,再次附加.我只能说自作聪明,自找麻烦.如果执行删除,那就彻底死定,没戏了.
我这里的方法也只是针对进行了数据库分离操作的.这时mdf.提示还是好的.只是log文件坏了.比如当前出问题的数据库名叫:ErrorDB.请按下列步骤执行即可.
a.首先备份ErrorDB.mdf文件.
b.SQL Server Management Studio中重新新建一个名叫ErrorDB的数据库.
c.停止ErrorDB数据库服务.用备份的ErrorDB.mdf替换刚新建的ErrorDB.mdf文件.
d.启动ErrorDB数据库服务.当前数据库ErrorDB状态变为可疑了.
e.执行脚本:
alter database ErrorDB set emergency
alter database ErrorDB set single_user
dbcc checkdb('ErrorDB',REPAIR_ALLOW_DATA_LOSS)
alter database ErrorDB set multi_user
alter database ErrorDB set online
利用这种方法,即使没有日志文件也可恢复数据库.
很多偶然情况会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障、计算机非正常重启或关机。
当SQL Server 2005数据库日志文件损坏时,在SQL Server Management Studio中显示数据库处于可疑(suspect)状态。在这种情况下重启数据库服务和服务器都没用.如果把数据库分离,再附加那更惨.
在这种情况下很多,数据库管理员手忙脚乱,可能会贸然行事.我分两种情况来说明.
1.SQL Server Management Studio中显示数据库处于(可疑)状态.泰然处之
发现数据库处于可疑,没做别的操作的话.执行下列脚本,很快就恢复了.
alter database DBName set emergency
alter database DBName set single_user
dbcc checkdb('DBName',REPAIR_ALLOW_DATA_LOSS)
alter database DBName set multi_user
alter database DBName set online
其中DBName是具体的数据库名.请自行替换即可.
2.SQL Server Management Studio中显示数据库处于(可疑)状态.手忙脚乱的.
发现数据库处于可疑,有的人试图分离数据库,再次附加.我只能说自作聪明,自找麻烦.如果执行删除,那就彻底死定,没戏了.
我这里的方法也只是针对进行了数据库分离操作的.这时mdf.提示还是好的.只是log文件坏了.比如当前出问题的数据库名叫:ErrorDB.请按下列步骤执行即可.
a.首先备份ErrorDB.mdf文件.
b.SQL Server Management Studio中重新新建一个名叫ErrorDB的数据库.
c.停止ErrorDB数据库服务.用备份的ErrorDB.mdf替换刚新建的ErrorDB.mdf文件.
d.启动ErrorDB数据库服务.当前数据库ErrorDB状态变为可疑了.
e.执行脚本:
alter database ErrorDB set emergency
alter database ErrorDB set single_user
dbcc checkdb('ErrorDB',REPAIR_ALLOW_DATA_LOSS)
alter database ErrorDB set multi_user
alter database ErrorDB set online
利用这种方法,即使没有日志文件也可恢复数据库.
Mr.Tom@live.cn

浙公网安备 33010602011771号