完整性检查失败

时间:2015-02-16 16:51:22

标签: sql-server database-restore dbcc

当您遇到硬盘故障和服务器关闭时需要了解恢复过程的工作原理。

我们运行MSSQL2005服务器。我们每晚都进行完整备份,每小时记录一次。

在备份之前(2)小时,Raid 5存储驱动器上出现磁盘故障。服务器关闭后,数据库重新启动,但失败后8小时内没有事务日志。

当我运行DBCC CHECKDB时,长报告列出:

以下是CHECKDB文件中的最后三个条目。有一长串的扩展条目。

Extent (1:4591784) in database ID 9 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
CHECKDB found 7288 allocation errors and 0 consistency errors not associated with any single object.
CHECKDB found 7288 allocation errors and 0 consistency errors in database.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB".

最后一次知名的好备份是2天前。我尝试运行还原而不是repair_allow_data_loss,但每次我尝试还原并在数据库上运行完整性检查时,由于同样的原因而失败,并且DBCC CHECKDB文件列出了相同的问题。

我怎样才能超越这个问题?如果我要运行repair_allow_data_loss,我可以丢失多少数据?损失会包括多年的过去数据还是仅仅是失败后的数据?

1 个答案:

答案 0 :(得分:0)

在出错后继续备份当前数据库。

BACKUP DATABASE db_name to disk ='Location'with continue_after_error

现在将此备份恢复到不同的服务器上。在此之后,使用repair_allow_data_loss

运行DBCC CHECKDB

现在您可以看到删除了多少数据“DBCC CHECKDB with repair_allow_data_loss”来恢复您的数据库。

请在执行此操作之前参考在线文档。