首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBCC REPAIR_ALLOW_DATA_LOSS

DBCC REPAIR_ALLOW_DATA_LOSS
EN

Database Administration用户
提问于 2012-09-19 12:08:09
回答 1查看 5.3K关注 0票数 4

我不得不用repair_allow_data_loss运行dbcc checkdb all_errormsgs,它已经运行了超过27个小时。DB大小超过15 DB,服务器(windows 2008)有32 DB内存。我在SQL 2005上运行了这个程序,正如我说的,它已经运行了超过27个小时。这是正常的吗?如果没有,我是否可以终止它而不会在DB上造成任何问题?在我运行之前我确实采取了后援。

EN

回答 1

Database Administration用户

发布于 2012-09-19 13:24:04

我可以终止它而不会在DB上造成任何问题吗?

您已经造成了问题,只需运行repair_allow_data_loss即可。在用尽了所有其他选项之后,允许数据丢失确实是最后的手段。适当的操作是从正确的备份恢复并重新应用丢失的事务。

DBCC需要27小时吗?是的,我知道DBCC命令需要8天以上才能完成。您可以调查并查看DBCC是否被阻塞( Shark为您提供了正确的方法),如果幸运的话,它被阻塞了,您可以解除阻塞并让它完成。但是,如果你正在取得进展,尽管你没有什么可以做的,但你只能等待下去。

如果您终止它,数据库会不会变得更糟?理论上是否定的,因为DBCC和任何其他操作一样,在过渡过程中是一致的,任何在飞行中的操作都会被回滚。然而,在实践中,运行DBCC修复本身就意味着您正在处理损坏的结构,在这种情况下总是存在风险。

在我运行之前我确实采取了后援。

通过将备份还原到不同的计算机上或作为同一实例上的不同DB来验证备份。如果备份是正确的,那么您将处于一个更好的位置,因为您总是可以返回到此备份。此外,请确保在备份后没有发生任何新的业务事务。

票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/24537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档