误区27:使用备份#…校验和来代替DBCC CheckDB
错误 乍看起来,由于带有校验和的备份将
检测所有指定页面的校验和值,所以这种错误似乎是事实,但事实并非如此。
原因如下:
通过SQL Server 2000或更早的版本上的数据库页校验和必须在开放是开放的,不是在所有页面的数据库将被称为在页面上,
检查页面时发生
损坏,IO
系统不能区分损坏的页之间是一个页面校验或无校验,所以使用备份…校验和会导致某些损坏页面不被
发现,后果是…
此外,还有一个问题:完全备份的时间间隔比较长。如果一个月,相对DBCC CHECKDB的最佳实践是一个星期,导致校验和不能代替CHECKDB。即使你犯了一个差异备份,每周一次,差异备份只检测不同部分的页面校验和。
最后一点,也是最危险的点,是与校验
选项备份找不到
内存中的页的损害。这是因为内存
芯片或Windows
进程导致内存页写回
磁盘损坏后,造成损坏的页面有一个正常的校验,只有DBCC CHECKDB可以找到这类的错误。
因此,在最后的分析中,你必须始终使用DBCC CHECKDB。如果你还有疑问的话,请看我以前的文章:从每一个角度检查会:A.选项一致性
延伸阅读:
搜索引擎质量# 26:在造成腐败的神话