在SQL Server中恢复差异备份的困难,预计有2个媒体系列,或者没有文件准备好前滚

我有SQL备份每晚从服务器A复制到服务器B.

我们希望将sql服务器从服务器A移到服务器B,而没有太多的停机时间,但是文件非常大。

我认为执行差异备份和还原可以解决数据库的问题。

  1. 从服务器A复制完整备份到服务器B(10 + gb)
  2. 在服务器B上打开SQL Server Managment Studio
  3. 在数据库上右键单击
  4. 还原数据库
  5. input新的DB名称
  6. select“从设备”并浏览到备份文件
  7. 点击确定。 这是现在采取原来的“全面”备份。
  8. testing与开发应用程序的新数据库 – 一切正常:)
  9. 在DB上的原始数据库rightmouse>任务>备份…
  10. 备份types=差异,备份到磁盘,添加一个新的文件,并删除旧的(它需要一个小文件传输的最小数量的中断)
  11. 将差异备份复制到新的数据库
  12. 在数据库>任务>恢复>数据库上右键单击

这是我卡住的地方。 如果我同时添加新的差异文件,并将原始备份添加到还原过程中,则会出现错误

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) 

任何想法如何做到这一点? 是否有更好的方法来恢复备份,停机时间有限?

您必须使用NORECOVERY选项还原完整备份,以便能够恢复随后的差异备份。 只有上次还原才会使用RECOVERY选项。 如果您需要每天晚上恢复差异备份,则差异还原还必须使用NORECOVERY选项。 在这种情况下,数据库B将始终处于非运行状态。

执行差异化时,进入选项页面并选中“备份到新媒体集备份,并清除所有现有备份集”单选button。

在某个地方你正在划分备份。 使用上述选项将在DIFF备份上使用INIT和FORMAT关键字。