完整备份后如何恢复交易

5 sql-server restore

我正在将 SQL Server 数据库移动到新的 Windows 计算机,但是,我不想在此过程中丢失任何事务。我在任何地方都找不到任何与此相关的内容,这似乎很常见,因此任何帮助将不胜感激。

我有一个生产服务器和一个临时服务器。我想停用我的生产服务器,因此我创建了完整的数据库备份并将其恢复到我的临时服务器上。我想将生产端点指向临时服务器,使其成为生产环境。这非常有效,但是,我创建完整数据库备份直到生产端点切换之间的任何事务都会丢失。如何在不停机的情况下将这些事务转移到新的生产服务器?

我的想法是在临时服务器上导入完整的数据库备份,然后将生产指向该服务器,然后使用事务日志更新新服务器,但是,恢复完整备份后,恢复事务日志显示为灰色。

我见过建议在恢复完整备份时使用 NO RECOVERY 的帖子,但是,这会使数据库处于无法访问的状态,从而导致停机。

Cha*_*ace 9

是的,如果您使用备份/恢复进行迁移,您至少需要一些停机时间。

最大限度地减少停机时间的一种选择如下:

  • 备份FULL数据库。保持在线。
  • 恢复WITH NORECOVERY到目标服务器上。
  • 假设这花了很长时间,那么您可能需要执行中间步骤:
    • 备份LOG源数据库。
    • 复谓也WITH NORECOVERY
  • 最后,使服务器脱离公共访问和/或将源数据库置于单用户模式,并进行尾日志备份。这会将其置于RESTORING模式,这意味着不能在其上运行任何查询。备份应该非常快,特别是如果您执行了中间步骤。
  • WITH RECOVERY使用“使其联机”将其恢复到目标服务器上。
  • 将客户端重定向到新服务器,您就可以恢复正常工作了。

即使在相对繁忙的 OLTP 数据库上,最终尾日志的大小也可能非常小,因此可以快速创建、快速传输和快速恢复。

不要忘记服务器级数据,例如登录名、DDL 触发器、证书和 SQL Server 代理数据库msdb。不过,您可以在迁移主数据库之前单独移动它。


如果您绝对不能有任何停机时间,那么请准备好花大钱来通过同步提交正确设置可用性组。然后你就可以进行故障转移。但业务实际上需要这样做的情况很少见。