我们正在将客户端迁移到新服务器。他们的旧服务器上有server 2005。我试图执行一个差异备份,但是我收到了一个关于LSN链被破坏的错误。
请注意,我已经多次这样做了,使用NORECOVERY在新服务器上还原了完整的备份,然后当我恢复diff备份时,会得到关于LSN链损坏的错误信息。
我做了一个测试数据库,得到了同样的结果。然后,我将测试数据库文件移到运行server 2008 R2的服务器上,备份被正确恢复。
有人知道为什么Server 2005的差异备份不能在Server 2012上正确恢复吗?我怎么才能解决这个问题?
发布于 2013-05-02 19:32:29
不应该出现从SQL 2005到SQL 2012之间的差异和完整恢复问题。我将验证您的备份文件是否兼容。为此,您需要使用RESTORE HEADERONLY命令,并将完整备份的FirstLSN值与差异的DifferentialBaseLSN进行比较:
restore headeronly
from disk='X:\BackupFiles\foo.bak'
如果这些值不匹配,则需要进行适当的完全备份。
发布于 2013-05-02 19:17:18
有人知道为什么Server 2005的差异备份不能在Server 2012上正确恢复吗?我怎么才能解决这个问题?
在Server 2012中,可以从使用Server 2005或更高版本创建的数据库备份中还原用户数据库。但是,Server 2012不能还原使用Server 2005或Server 2008创建的主、模型和msdb备份。
我试过了,就像博尔中提到的那样。
正如Thomas提到的,在您进行了差异备份之后,可能有人已经采取了完整的备份。
https://dba.stackexchange.com/questions/41425
复制相似问题