注:RobertLDavis是Microsoft的高级数据库管理员和专家,《SQL Server》杂志的撰稿人,并与人合着了一本书《Pro SQL Server 2008 Mirroring》。每个人都会犯错,DBA也不例外。但是,当DBA犯错误时,他们通常是第一个发现错误并立即纠正错误的人。但是,有些错误是不可原谅的,因为它们可能给企业造成无法弥补的损失。我将陆续介绍DBA的5大错误。这些错误会危及数据的可恢复性、完整性和安全性。它们是不可原谅的错误,DBA可能会为此付出失去工作的代价。DBA最大的错误:您的备份可靠吗?DBA的首要任务是备份。这一点的重要性怎么强调都不为过。即使出现问题,您也应该确保备份是任何灾难性事件中的最后一根稻草。我听过或遇到过太多类似的事件。当出现意外情况时,发现备份工作没有做,或者备份损坏无法恢复。这可能导致公司采取严厉措施来规定必须保留哪些数据并处理数据丢失的严重后果。没有可靠的备份可能会让您失去工作。在真实数据的世界中,DBA应该了解从事件和数据丢失中恢复的要求。这两个要求通常被称为恢复时间目标(RTO)和恢复点目标(RPO),用于设计灾难恢复计划(和相应的备份计划)以支持数据恢复。RTO是在发生灾难时允许停机的时间量,RPO是允许丢失的数据量。DBA的目标应该是将数据丢失减少到尽可能接近于零。在为您的灾难恢复计划制定备份计划时,您应该假设所有其他级别的保护都已失败,并且从备份恢复是您的最后一道防线。如果你确实到达了这最后一道防线,唯一好的备份就是你将丢失的数据量。这将帮助您确定备份的频率,如果数据丢失要求低,则需要经常备份。您应该经常备份的唯一备份类型是日志备份。这意味着完整恢复模式或大容量日志恢复模式。拥有可靠的备份不仅仅意味着备份,还意味着知道备份可以恢复,并且知道何时恢复它们。这就是测试备份的用武之地。至少,您应该使用BACKUPVERIFYONLY命令来测试备份是否可恢复。除了验证备份之外,我强烈建议使用CHECKSUM选项来验证所有备份和恢复。CHECKSUM选项执行额外的检查以确定数据库是否在可能的情况下损坏。如果附加检查发现数据已损坏,则备份操作将失败并发出数据已损坏的警告。此外,它将对整个备份文件执行校验和,这将帮助您检测备份文件在创建后是否已损坏。对整个备份文件进行CHECKSUM操作的最大好处是,如果备份文件本身损坏,文件的恢复会立即失败。这对于非常大的数据库尤其重要。因为恢复操作可能需要数小时。如果备份文件已损坏并且在标头中有额外的校验和,则在恢复操作开始时将重新计算校验和,此后不久将失败。虽然发现备份文件何时损坏并不好,但总比运行了几个小时才发现文件已损坏要好得多。DBA确保备份可恢复的唯一方法是执行实际的恢复测试。理想情况下,我更喜欢自动修复备份(以确保它们有效)和运行灾难恢复演练(在DBA运行整个恢复过程时演练中断)的组合。计划和实践是帮助您在实际灾难发生时满足恢复需求的关键。我想说的是,DBA应该做的第一件事也是最后一件事就是备份。如果我遇到新的服务器或环境,我做的第一件事就是确保所有服务器都已备份并成功运行。之后,我会重新检查备份情况,并根据实际的RPO和RTO需求制定灾难恢复计划。如果DBA不做第二步,还情有可原,但没有可靠的备份是不可原谅的错误。如果发生灾难或事故,而DBA却没有可靠的后援,恐怕工作不保。
