是否需要对镜像数据库进行数据库完整性检查(DBCC 检查)?
数据库镜像和 Always On 可用性组支持自动页面修复。在某些类型的错误损坏页面,使其无法读取后,数据库镜像伙伴(主要或镜像)或可用性副本(主要或辅助)会尝试自动恢复该页面。
你的最佳做法是什么?
是否需要对镜像数据库进行数据库完整性检查(DBCC 检查)?
数据库镜像和 Always On 可用性组支持自动页面修复。在某些类型的错误损坏页面,使其无法读取后,数据库镜像伙伴(主要或镜像)或可用性副本(主要或辅助)会尝试自动恢复该页面。
你的最佳做法是什么?
不,镜像的主要好处之一是页面修复;它会检查是否存在损坏,然后在发现时尝试解决它。
第一季度
Denis Rubashkin的评论回复
第二季度
是的你应该。
关于为什么的更多原因
如果一个很少使用的页面损坏了怎么办?
你想什么时候发现?
资源
简而言之
您应该始终对您的(主要)数据库运行完整性检查。如果数据库太大,下一个最好的办法是将其卸载
dbcc checkdb
到恢复的备份中。更多关于这里由于硬件故障,诸如防病毒之类的应用程序访问页面并导致损坏,仍然可能发生损坏,...
您应该进行完整性检查的另一个原因。
您可以使用ola hallengren的解决方案来运行完整性检查。
Randi Vertongen 的精彩回复。所以,我对 DBCC 的理解——它主要是 CHECKALLOC、CHECKCATALOG 和 CHECKTABLE。对于 VLDB,如果我将数据库备份并恢复到另一个系统,它可能会成功。但是,我应该在生产数据库上运行 DBCC,它还检查底层存储?请纠正我,我认为 DBCC 也会对分配的存储进行一些检查,同时验证 GAM、SGAM、IAM 页面的完整性。或者它不对存储执行任何检查?我的问题是,如果我将数据库恢复到非生产服务器和 DBCC,它可能会毫无问题地运行,但我的生产系统可能有问题?