DBA的五个致命错误:是否禁用了页面验证?书。SQLServer提供了一个非常关键的内置功能来检测数据损坏,称为“页面验证”。当您运行查询并收到那些烦人的损坏警报时,检测损坏的是页面验证。最重要的是,***将页面验证选项设置为新数据库的默认选项。使用此选项您无需执行任何操作来保护数据库。pagechecksum就是我之前提到的使用CHECKSUM在备份和恢复中进行额外检测(详见《DBA 五大致命失误:你的备份可靠吗?》)。启用此选项后,SQLServer将计算整个页面的校验和并将此值存储在页眉中。当页面被读入内存时,SQLServer再次计算校验和并将其与存储在页眉中的校验和进行比较。如果两个校验和不匹配,SQLServer将认为页面已损坏,并会出现错误824警报。如果校验和存储在页眉中,则使用CHECKSUM选项检测受校验和保护的数据页是否损坏,SQLServer将在备份和恢复时对其进行计算。在SQLServer的数据库级别,可以设置页面保护类型。页面验证有三个选项:CheckSum、TornPageDetection和None。使用这些选项的工作看似微不足道,但不使用它们会对您的数据库造成灾难性的影响。只有从SQLServer2000或更早版本升级时,才需要检查选项设置以确保启用页面验证以保护数据库。***是选择CHECKSUM作为页面校验选项,这也是SQLServer2005及以后版本的默认选项。SQLServer2000的默认选项是TornPageDetection;在此之前,您无法配置页面验证。换句话说,NONE从来都不是页面验证的默认选项。如果您的数据库禁用了页面验证,则必须有人更改了设置。在我看来,如果DBA将页面验证选项选择为NONE,要么是故意破坏,要么级别太低。在任何一种情况下,都不应允许DBA管理SQLServer。这个错误可以而且应该让你被解雇,因为这是故意的行为。
