迁移涉及双向复制的数据库的最佳方法

use*_*810 3 sql-server-2005 migration sql-server-2008-r2 transactional-replication

我有两个要迁移到 SQL Server 2008 R2 的 SQL Server 2005。

原始服务器对包含一个数据库,它们涉及它们之间的双向事务复制。换句话说,SQL2005ServerA.DatabaseASQL2005ServerB.DatabaseA都涉及双向事务复制。

现在我必须将这些数据库移动到两个新服务器,将它们命名为SQL2008ServerASQL2008ServerB.

这很直接吗?断开应用服务器后,是不是直接备份还原到新的服务器上,然后再重新创建没有快照的复制?

Kin*_*hah 5

这很直接吗?

是和否 .. 取决于您的停机时间(维护窗口)、数据库大小或您正在复制的数据量(整个文章或文章的子集)。

编写当前复制设置(创建和删除)的脚本。

首先确保在切换到新服务器时没有任何待复制的命令和用户连接。

以下是您可以选择的一些简化迁移的方法:

  • 简单直接的解决方案是简单地重置复制。如果数据库太大,那么您可以从备份重新初始化以及随后的快照,一切都会正常工作。
  • 设置需要迁移到新服务器的当前发布者数据库的日志传送,甚至可以将新服务器设置为旧服务器的订阅者。然后在切换当天,如果使用日志传送,只需将辅助(新服务器)数据库联机(通过恢复进行恢复),或者将您的应用程序指向新服务器并重置复制。
  • 一个更乏味且可能容易出错的解决方案(如果您遗漏了一些细节)是备份发布数据库并将其恢复到启用了 KEEP_REPLICATION 标志的新发布服务器。转到订阅服务器并更新 dbo。syssubscription表与新的发布者信息。使用新的发布者信息更新订阅表。编辑分发服务器上的所有作业以指向新的发布服务器。更新分发服务器中的表以指向新分发服务器。
  • 另一种方法是停止旧服务器上的 SQL,将所有系统和用户数据库复制到新的 SQL Server,覆盖系统数据库,然后重命名新的 SQL Server,使其具有相同的名称和 IP。旧服务器。然后将新服务器上的 SQL 联机,一切都应该顺利进行。

笔记:

默认情况下,生成的脚本将@sync_type = N'automatic'=> 订阅需要初始化为全新的订阅。而是将其更改为@sync_type = N'none' or @sync_type = N'replication support only'=> 不会在订阅者处生成复制过程。

显然,应事先创建具有适当权限的登录名和用户。

参考 :