题 记录传送到现有数据库


我们有一些我们希望在SQL Server 2008上登录的大型数据库。不幸的是,主服务器和辅助服务器之间的链接速度足以处理日志传送,但初始备份/复制会占用带宽几天,如果不是几周,我们想尽可能避免。

我们通过将主数据库备份到硬盘并将硬盘物理地带到辅助计算机并在那里恢复数据库来制作副本(现在已有几天了)。

主服务器和辅助服务器位于不同的地理位置。主服务器在SQL Server 2008上,在2008 R2上是辅助服务器(不要问为什么!)

在没有从头开始备份/复制/恢复过程的情况下,我们似乎无法找到使日志传送(或镜像)工作的方法。

任何想法/解决方案将不胜感激。


5
2017-10-27 11:00




您第一次在R2上使数据库联机时,它将升级到版本661并停止接受来自2008日志备份(版本655)的更新。如果要以任何方式在辅助数据库上使用数据库,则需要它们处于同一版本。 - Remus Rusanu


答案:


  1. 打开日志传送,但不添加任何目标
  2. 获取主数据库的完整备份
  3. 将数据库备份移动到辅助服务器
  4. 恢复备份 WITH NORECOVERY
  5. 将辅助服务器作为日志传送目标启用
  6. 然后,SQL Server将通过链接将其生成的所有日志传送文件复制到新服务器并还原它们

我已经完成了这几十次并且它永远不会失败,所以如果它不起作用那么你可能想要更新问题 精确 你采取的步骤。


5
2017-10-29 21:45





如果您的数据库处于完全恢复模式,那么您只需执行以下操作:

  • 完全备份
  • 将驱动器移动到待机状
  • 使用NORECOVERY恢复数据库,使其保持“恢复”模式
  • 保留所有日志备份,并将其复制到备用
  • 使用NORECOVERY将所有日志还原到备用数据库
  • 运行SSMS向导以设置LS作业

如果您使用LS作业备份/复制/恢复日志,请确保您没有遗漏任何日志,如果您在这些作业之外进行日志备份,您也需要这些作业。作业不会复制或还原它未创建的日志备份。


4
2017-10-27 16:48





我使用了一个名为的工具 UFTP 通过高延迟链接传输大量SQL备份文件,以将初始完整备份传输到辅助节点以进行日志传送。您可能需要进行完整备份,使用将其复制到辅助服务器 UFTP,在无法恢复时还原数据库,然后在主服务器上配置日志传送并使用“辅助数据库初始化”选项。由于uFTP传输文件的速度有多快,您应该能够避免一切不同步的问题。

在最坏的情况下,对数据库进行完整备份,使用uFTP将其复制到辅助数据库,然后完成后,对大型数据库进行差异备份,然后使用uFTP进行传输。希望通过使用差速器高速传输和减少三角洲的组合,您应该能够启动和运行日志传送。

注意:uFTP是基于UDP的文件传输实用程序,由于UDP缺少与TCP相对的错误纠正,因此在应用程序中内置了错误检查机制。


1
2017-10-29 21:04





确保您的日志传送目标已使用norecovery还原了数据库。

继续像往常一样完成设置过程。

当您进入“辅助数据库设置”窗口中的“初始化辅助数据库”选项卡时,请确保选中“否,辅助数据库已初始化”选项。

然后,它将跳过执行完整备份和还原的过程,并将从事务日志备份开始。如果自完全备份以来它无法访问所有事务日志备份,则可以进行差异备份并使用norecovery还原该备份以使其最新。


0
2017-10-27 12:58



感谢KenJ的回答,但我担心这不起作用。首先,辅助数据库必须处于待机/恢复模式。另一个问题是2个数据库永远不会是彼此的真实副本,因为当副本到达辅助服务器时,主数据库将被更新。或许我错过了什么? - SeanDav
使用norecovery还原辅助节点将使其处于还原模式。 - KenJ
我不确定你对真实副本的意思。它们永远不会完美匹配,除非在主日志上没有完整日志发送间隔的事务。如果它们不匹配就没关系。通过从主服务器恢复日志尾部,或者如果不可用,通过还原最新的可用事务日志备份,可以使它们在恢复时匹配。 - KenJ
嗯。我确信我们尝试过这样的事情。日志传送开始工作 - 从某种意义上说代理商没有报告错误 - 但 这些变化实际上并没有被转移 - 去吧!我会再试一次,只是为了测试。 - SeanDav
我按照KenJ的建议重复了这个过程,结果相同。没有错误但没有恢复。消息是没有要恢复的文件。这可能是因为主服务器是2008而辅助服务器是2008 R2吗? - SeanDav