复制中发布服务器和订阅服务器内容不一致的解决办法

简介:
    在事务复制的过程中,有时候会由于各种各样的原因导致发布服务器和订阅服务器的数据不一致,造成这种情况往往是由于以下几种原因之一:

某个Agent运行出现错误或者Agent进程崩溃
比较大型的发布是使用了备份还原,而不是快照复制初始化,而备份后发布端修改了数据
非Distribution Agent线程修改了订阅服务器的数据
 

    上面三种情况是最常见的导致发布端和订阅端数据不一致的原因,其中第三种原因往往出现的最多,在这种情况下,通常来说,可以通过重新初始化订阅来解决该问题,但对于比较大的订阅来说,或者发布和订阅之间相隔太远而造成网络宽带的问题,则重新初始化订阅就不是那么吸引人的提案了。因此通过数据对比分析工具来比对有差异的数据,并仅仅更新那些和源不同步的数据则是更好的选择。

    这类工具包括类似Redgate和xSql的数据对比工具,也可以使用Visual Studio自带的数据对比工具进行,下面我通过一个简单的Demo来展示如何解决该类问题。

 

DEMO

    目前我已经建立好一个发布服务器和订阅服务器,发布服务器CAREYSON-SQL发布了示例数据库AdventureWorks的SalesOrderDetail整张表,订阅服务器sqlazur\sql2012订阅了该表,如图1所示。

1

图1.基本的复制信息

 

   此时,我在订阅服务器人为的删除数据,造成发布服务器和订阅服务器的数据不一致,如图2所示。

  2

图2.在订阅端手动删除数据,造成不一致

 

   我们再来服务端验证订阅,如图3所示。

    3

    图3.验证订阅

 

    在复制监视器中,可以看到,在订阅服务器删除的一条数据导致了验证订阅出现不同步的提示,如图4所示。

  4

   图4.订阅已经不再同步

 

   为了修正该问题,我们可以通过Visual Studio的数据库项目来建立数据对比分析任务来找到缺失的数据,从而根据发布端更新订阅端,如图5所示。

    5

图5.找出被删除的数据

 

然后我们点击"更新目标",则被删除的数据会由发布端同步到订阅端。如图6所示。

6

图6.目标数据库已经更新

 

我们再次进行验证订阅,显示已经通过订阅,如图7所示。

7

图7.更新订阅端后,订阅通过验证



本文转自CareySon博客园博客,原文链接:http://www.cnblogs.com/CareySon/p/3302369.html,如需转载请自行联系原作者
相关文章
|
6月前
|
弹性计算 Kubernetes 容器
在 ECS 上启动 minikube 失败的解决办法
在尝试启动Minikube时遇到初始化失败的错误,可能由于 kubelet 或系统配置问题。通过指定 Kubernetes 版本 (`--kubernetes-version=v1.23.8`) 和镜像国家 (`--image-mirror-country='cn'`) 启动 Minikube 可以解决问题。执行该命令后,成功启动了 Minikube 并设置了默认的 kubectl 配置。
656 2
|
6月前
|
安全 网络安全 数据安全/隐私保护
Jsch连接服务器失败解决办法其他工具可以连接成功但是Jsch不行解决办法
Jsch连接服务器失败解决办法其他工具可以连接成功但是Jsch不行解决办法
250 0
服务器上的RTC时间与世界时间不一致解决办法
服务器上的RTC时间与世界时间不一致解决办法
1092 0
|
4月前
|
域名解析 网络协议 安全
服务器部署后 访问出错的原因和解决办法
部署到服务器后无法访问可能是由于配置错误、权限问题或网络设置不当。解决办法包括检查服务器配置文件、确保文件路径正确、调整权限设置以及检查防火墙和端口设置。
306 0
|
6月前
|
域名解析 网络协议 安全
服务器部署访问出错的原因和解决办法
部署到服务器后无法访问可能是由于配置错误、权限问题或网络设置不当。解决办法包括检查服务器配置文件、确保文件路径正确、调整权限设置以及检查防火墙和端口设置。
192 4
|
6月前
JSch连接服务器一连接上就被服务器断掉,解决办法
JSch连接服务器一连接上就被服务器断掉,解决办法
67 0
|
12月前
|
C++
VS Code 突然连接不上远程服务器的解决办法
VS Code 突然连接不上远程服务器的解决办法
1691 0
|
中间件
使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法
使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法
|
Linux Shell 数据安全/隐私保护
百度搜索:蓝易云【CentOS7系统服务器密码忘记的解决办法?】
总之,以上步骤是在忘记CentOS7系统服务器密码时的一种解决办法,需要谨慎操作。同时,也建议在平时的使用中,定期备份重要数据,以避免意外情况的发生。
470 0
|
Oracle 关系型数据库 数据库
mstsc连接远程服务器CredSSP加密数据库修真、加密Oracle修正报错解决办法
mstsc连接远程服务器CredSSP加密数据库修真、加密Oracle修正报错解决办法