我每晚都会将sql备份从服务器A复制到服务器B.
我们希望将sql server从服务器A移动到服务器B而不会造成太多停机,但文件非常大。
我认为执行差异备份和还原可以解决数据库的问题。
这是我被卡住的地方。如果我将新的差异文件和原始备份都添加到恢复过程中,则会出现错误
The media loaded on "M:\path\to\backup\full.bak" is formatted to support 1 media families, but 2 media families are expected according to the backup device specification.
RESTORE HEADERONLY is terminating abnormally.
但是,如果我尝试仅使用我得到的差异文件进行恢复
System.Data.SqlClient.SqlError: The log or differential backup cannot be restored because no files are ready to rollforward. (Microsoft.SqlServer.Smo)
知道怎么做吗?有没有更好的方法来恢复有限停机时间的备份?
答案 0 :(得分:5)
有关详细信息和代码,请参阅2008年联机丛书 执行完整数据库还原 。
可能错误是由备份设备规范尝试立即恢复的完整备份和差异备份引起的(可能需要更改)。
一次做一个(基本想法):
创建tail_log备份。
首先使用NORECOVERY恢复完整。
使用NORECOVERY恢复差异。
使用NORECOVERY恢复日志。
使用NORECOVERY恢复tail_log。
然后,完成所有操作后,使用RECOVERY进行恢复。