Fre*_*gen 4 sql-server backup dbcc-checkdb
最近有人告诉我我应该在 dbcc checkdb 之前和 checkdb 之后进行一次完整备份,即使在完全恢复中也是如此。有人可以解释我为什么要这样做吗?
我认为在 checkdb 之前进行完整备份是不必要的(在完整恢复中),因为我总是可以恢复上次完整备份 + 差异备份 + t-log 备份。这是一个错误的假设吗?
Tar*_*zer 13
在运行之前和之后无需进行完整备份DBCC CHECKDB。建议您在 FULL 备份之前进行,DBCC CHECKDB以便您确切知道哪些 FULL 备份不包含DBCC CHECKDB因损坏而失败的数据库损坏。最后一次成功之前的完整备份DBCC CHECKDB是没有损坏的。
要从损坏中恢复,您可以使用 FULL+DIFF+LOG 链或 FULL+LOG 链。从上次成功之前选择完整备份DBCC CHECKDB。如果在最后一个 success 之前有一个 DIFF DBCC CHECKDB,那么您也可以使用它。但是最后一次成功之后的 DIFFDBCC CHECKDB可能会导致数据库损坏,这取决于 DIFF 发生的时间和损坏发生的时间。
LOG 备份不包含数据页,因此它们中没有损坏的数据页。因此,如果您在未损坏的 FULL 或未损坏的 FULL + 未损坏的 DIFF 之后拥有整个 LOG 链和日志尾部,则可以在不丢失数据的情况下进行恢复。