有时,我在恢复DB差异时遇到问题。我得到的错误“差异备份无法恢复,因为数据库尚未恢复,以纠正以前的状态。”通过对这个问题的研究,我发现我遇到的特殊差异是不符合顺序的。
有什么方法可以从我得到的备份文件(.bak)中检查.bak吗?我从供应商那里获得完整/差异备份文件,我很难查询源db和msdb.
当我试图还原有问题的差异文件时,我可以在窗口中看到一些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第一个记录是完整的db,随后的3个是差分。充分和前两个差异恢复罚款。这是最后的差异,没有恢复和显示上述信息。
谢谢。
发布于 2011-09-21 20:23:19
要检查备份文件中的LSN编号,请执行以下操作:
restore headeronly from disk='g:\backups\name_of_backup_file.bak'结果集将有一个列,该列将显示最后一个LSN编号。正如gbn所说,要从diff备份恢复,您需要从同一个备份集中进行完整+最后的diff备份。
https://dba.stackexchange.com/questions/6034
复制相似问题