我应该在完整备份之前运行 DBCC checkdb 吗?还是之后?

Bra*_*adC 6 backup checkdb dbcc sql-server

我们混合使用 SQL 2000、2005 和 2008 服务器,并且我们总是在完全备份之前每晚运行一次 DBCC CHECKDB,理论上您希望在备份之前确保数据库处于良好状态. (显然,备份的完整验证只能通过测试还原来完成,但这是一个稍微不同的主题。)

假设我无法将 DBCC 卸载到备份服务器或其他东西(这将是理想的),那么 DBCC CHECKDB 后跟 FULL BACKUP 是最佳顺序吗?

我发现讨论此问题的唯一“最佳实践”文档是我在 TechNet 上找到的 2006 年SAP SQL Server 维护最佳实践

理想情况下,应该在执行联机数据库备份之前运行使用 DBCC CHECKDB 的一致性检查。

这个建议正确吗?它是否适用于所有版本的 SQL?

(如果这有帮助,提出这个问题的部分动机是 DBCC 运行时似乎每晚都有相当大的变化,所以我们不能确切地依赖备份何时完成,这使得我们的磁带存档计划工作困难。另外,如果维护时间很长并且由于任何原因必须取消,我宁愿备份可靠地完成而不是 DBCC。)

小智 1

如果您无法在维护时段内安装完整的 DBCC CHECKDB,则可以将WITH CHECKSUM添加到备份例程中,并在不同时间执行完整的 CHECKDB(SQL 2005 及更高版本)。

请注意,BACKUP [...]WITH CHECKSUM 不会取代 DBCC CHECKDB。Paul Randal在此处提供了更多详细信息。