Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将订阅的数据库复制到发布服务器_Sql Server_Sql Server 2008_Replication_Merge Replication - Fatal编程技术网

Sql server 将订阅的数据库复制到发布服务器

Sql server 将订阅的数据库复制到发布服务器,sql-server,sql-server-2008,replication,merge-replication,Sql Server,Sql Server 2008,Replication,Merge Replication,我有两台服务器。 我已在发布服务器(服务器a)中安装了合并复制,并添加了两个具有相同数据库名称的订阅。 -发布服务器上有一个,订阅服务器(服务器B)上有第二个。到目前为止效果良好。复制工作正常。 我想删除发布服务器(服务器A)上的子订阅数据库,并将其替换为服务器B中订阅数据库的副本。 我原以为发布服务器将继续在新连接的数据库上同步,但不幸的是,它没有按预期工作,它开始应用快照等。。相反 复制的数据库上是否有任何内容需要修改,以使发布者将其重新识别为已删除的数据库并继续同步?将数据库配置为发布

我有两台服务器。
我已在发布服务器(服务器a)中安装了合并复制,并添加了两个具有相同数据库名称的订阅。

-发布服务器上有一个,订阅服务器(服务器B)上有第二个。到目前为止效果良好。复制工作正常。 我想删除发布服务器(服务器A)上的子订阅数据库,并将其替换为服务器B中订阅数据库的副本。

我原以为发布服务器将继续在新连接的数据库上同步,但不幸的是,它没有按预期工作,它开始应用快照等。。相反


复制的数据库上是否有任何内容需要修改,以使发布者将其重新识别为已删除的数据库并继续同步?

将数据库配置为发布者的所有元数据都存储在数据库中。因此,删除数据库也会删除发布。移动以前是订阅的数据库并使其成为发布服务器需要初始化数据库并将其配置为发布服务器,就像从头开始一样

不过,有一些技巧可以模仿您正在尝试的操作。即,备份您的订阅。然后从发布服务器中删除所有数据并进行同步。不要删除发布,只删除数据库中的数据。同步也会将删除合并到订阅服务器,但这就是为什么您有备份

在这一点上,您将恢复您带回订阅服务器的订阅备份。确保设置了“保留复制信息”。再次恢复同步。结果应该是,订阅备份中的原始数据将是唯一要合并回发布服务器的数据,该数据在还原之前为空

我个人没有在实践中尝试过,但在理论上应该是可行的。有关备份和恢复合并复制方案的输入和输出的更多信息,请阅读此处