灾难恢复 - 在没有 MDF 的情况下恢复 SQL 服务器数据库

Disaster Recovery - Restoring SQL Server database without MDF

给定以下(假设的)场景,如何最好地 backup/restore 数据库。

  1. 每天凌晨 12 点进行完整备份。
  2. 每小时在凌晨 1 点、凌晨 2 点等进行微分
  3. 半小时、上午 130 点、上午 230 点等的事务日志备份
  4. 我还将活动的 .ldf 文件存储在驱动器 X 上,将 .mdf 文件存储在驱动器 Y 上。

主数据库在 Y 上也很重要。

假设 Y 驱动器在上午 245 点发生故障。

我有截至凌晨 230 点的完整日志、差异日志和事务日志。但我也有 .ldf.

理论上我可能不得不重新安装 SQL 服务器。然后我想在凌晨 245 点之前恢复该数据库。

我听说过在恢复操作时进行尾日志备份,但我没有 .mdf 了。因此,我需要从我的 full/diff/log 备份创建一个新数据库。之后,我不确定如何继续获取最后 15 分钟的交易。

我希望这是有道理的...

谢谢!

史蒂夫。

你问的是,当你无法访问 MDF 文件时如何进行 TailLog 备份..

这仅在您的数据库不在 BulkLoggedRecovery 模型中或您的日志没有批量记录事务时才有效。这已在此处进行了深入介绍:Disaster recovery 101: backing up the tail of the log

步骤如下

  1. 创建一个同名的虚拟数据库
  2. 删除这个虚拟数据库的所有文件,使其脱机
  3. 复制原数据库LDF
  4. 将此数据库联机,这将失败..

现在您可以使用以下命令进行 TailLog 备份..

BACKUP LOG dummydb 
TO DISK = N'D:\SQLskills\DemoBackups\DBMaint_Log_Tail.bck' WITH INIT, NO_TRUNCATE;
GO

现在你已经有了所有的备份,你可以恢复到失败的时间点