如何修复数据库一致性错误

VAA*_*AAA 7 sql-server dbcc-checkdb microsoft-dynamics

我有一个 Microsoft Dynamics AX SQL Server 数据库。我只是DBCC CHECKDB为了检查完整性而运行。几分钟后,我得到了以下结果:

CHECKDB在数据库“AXPROD”中发现 0 个分配错误和4 个一致性错误。repair_rebuild 是 DBCC CHECKDB (AXPROD) 发现的错误的最低修复级别。DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。

由于我遇到了 4 个一致性错误,我想知道是否有办法解决这个问题,或者是否有办法获得有关这些错误的更多详细信息。

Pau*_*ite 10

我想知道是否有办法解决这个问题

这些一致性错误可以通过以下REPAIR_REBUILD选项DBCC CHECKDB修复:

执行没有数据丢失可能性的修复。这可以包括快速修复,例如修复非聚集索引中丢失的行,以及更耗时的修复,例如重建索引。

正如 Shanky 的回答所提到的,任何 DBCC修复也应该在事务内执行,因此您可以在提交更改之前检查更改。

与往常一样,在运行重建之前,请确保您有一组完全可恢复的备份(包括日志尾部,如果适用)。如果您有一套完整的有效备份(包括适用的日志尾部)并且您可以承受停机时间,那么恢复可能是首选选项。如果执行此操作,请确保不要覆盖当前数据库,以防万一还原失败,或者还原不像您预期​​的那样完整。当然,恢复的数据库很可能会再次包含损坏,具体取决于它发生的方式和时间:)

或获取有关此错误的更详细信息的方法

四个一致性错误的详细信息在DBCC CHECKDB输出中,在最后的摘要部分之前。在尝试任何维修之前,您应该检查这些以确保您了解问题以及可能导致问题的原因。

您可以DBCC CHECKDB使用该WITH NO_INFOMSGS选项减少输出量。

DBCC如果您需要帮助分析错误,请将错误消息详细信息添加到您的问题中。识别并纠正可能导致损坏的任何潜在硬件问题非常重要。

根据损坏的详细信息,可能有其他方法来解决问题(例如手动重建非聚集索引)。

如果修复或重建成功,您将需要使用DBCC CHECKDB您的 SQL Server 版本支持的最完整的检查集再次检查数据库。