有时我在恢复数据库差异时遇到问题。我收到错误“无法恢复差异备份,因为数据库尚未恢复到更正的早期状态。” 从研究这个问题来看,我遇到的特定差异似乎是不按顺序排列的。
有没有办法从我得到的备份文件(.bak)中检查 database_backup_lsn?我正在从供应商处获取完整/差异备份文件,我无法轻松查询源数据库和 msdb...
当我尝试恢复有问题的差异文件时,我可以在 SQL Server Management Studio 窗口中看到一些 lsn 值。但是,我似乎无法理解是否可以弄清楚差异是否乱序。我将粘贴下面的 lsn 信息,看看其他人是否可以从该信息中弄清楚。我只是可能不理解 lsn 的工作原理。
first lsn last lsn checkpoint lsn full lsn start date finish date
12642000000130300283 12642000000188400001 12642000000130300283 12642000000130300283 9/17/2011 23:53 9/17/2011 23:56
12742000000735900168 12742000000757500001 12742000000735900168 12742000000735900168 9/18/2011 23:24 9/18/2011 23:25
12951000012892000172 12951000012922000001 12951000012892000172 12951000012892000172 9/19/2011 23:27 9/19/2011 23:28
13123000002683100125 13123000003655500001 13123000002683100125 13123000002683100125 9/20/2011 23:26 9/20/2011 23:26
第一条记录是完整的数据库,随后的 3 条记录是差异。完整和前 2 个差异恢复正常。这是没有恢复并显示上述消息的最终差异。
谢谢。
要检查备份文件中的 LSN 编号,请执行以下操作:
结果集将有一列显示最后一个 LSN 编号。正如 gbn 所说,要从差异备份中恢复,您需要来自同一备份集的完整 + 上次差异备份。