我们有几个大型数据库,希望在 SQL Server 2008 上进行日志传送。不幸的是,主服务器和辅助服务器之间的链接速度足够快,可以处理日志传送,但初始备份/复制会占用几天甚至几周的带宽,如果可能的话,我们希望避免这种情况。
我们已经制作了一份副本(已是几天前了),将主数据库备份到硬盘上,然后将硬盘物理地带到辅助机器上,并在那里恢复数据库。
主服务器和辅助服务器位于不同的地理位置。主服务器在 SQL Server 2008 上,辅助服务器在 2008 R2 上(不要问为什么!)
似乎我们找不到任何办法让日志传送(或镜像)正常工作,除非从头开始启动备份/复制/恢复过程。
如有任何想法/解决方案我将不胜感激。
答案1
- 启用日志传送,但不添加任何目标
- 对主数据库进行完整备份
- 将数据库备份移至辅助服务器
- 恢复备份
WITH NORECOVERY
- 启用辅助服务器作为日志传送目标
- 然后,SQL Server 将通过该链接将其迄今为止生成的所有日志传送文件复制到新服务器并恢复它们
我已经这样做了几十次,从来没有失败过,所以如果它不起作用,那么你可能想要用精确的你已经采取的步骤。
答案2
如果您的数据库处于完全恢复模式,那么您只需执行以下操作:
- 进行完整备份
- 将驱动器置于待机状态
- 使用 NORECOVERY 恢复数据库,使其保持“恢复”模式
- 保留主数据库的所有日志备份并将其复制到备用数据库
- 使用 NORECOVERY 将所有日志恢复到备用数据库
- 运行 SSMS 向导来设置 LS 作业
如果您使用 LS 作业来备份/复制/恢复日志,请确保您没有遗漏任何日志,此外,如果您在这些作业之外进行日志备份,您也需要这些日志。这些作业不会复制或恢复它未创建的日志备份。
答案3
我使用了一个叫做FTP服务器通过高延迟链接传输大量 SQL 备份文件,以便将初始完整备份传输到辅助节点进行日志传送。您可能需要进行完整备份,使用FTP服务器,在无恢复的情况下恢复数据库,然后在主数据库上配置日志传送并使用“辅助数据库已初始化”选项。由于 uFTP 传输文件的速度非常快,您应该能够避免一切不同步的问题。
最糟糕的情况是,对数据库进行完整备份,使用 uFTP 将其复制到辅助数据库,然后,在备份完成后,对庞大的数据库进行差异备份,并使用 uFTP 将其传输。希望结合高速传输和使用差异减少增量,您应该能够启动并运行日志传送。
注意:uFTP 是一个基于 UDP 的文件传输实用程序,应用程序中内置有错误检查机制,因为与 TCP 相比,UDP 缺乏错误纠正功能。
答案4
确保您的日志传送目标已使用 norecovery 恢复数据库。
继续并像平常一样完成设置过程。
当您进入“辅助数据库设置”窗口的“初始化辅助数据库”选项卡时,请确保选择了“否,辅助数据库已初始化”选项。
然后它将跳过执行完整备份和恢复的过程,并从事务日志备份开始。如果它无法访问自完整备份以来的所有事务日志备份,您可以进行差异备份并使用 norecovery 恢复该备份以获取最新信息。