复制中发布服务器和订阅服务器内容不一致的解决办法
2013-09-05 10:14
441 查看
复制中发布服务器和订阅服务器内容不一致的解决办法
在事务复制的过程中,有时候会由于各种各样的原因导致发布服务器和订阅服务器的数据不一致,造成这种情况往往是由于以下几种原因之一:某个Agent运行出现错误或者Agent进程崩溃
比较大型的发布是使用了备份还原,而不是快照复制初始化,而备份后发布端修改了数据
非Distribution Agent线程修改了订阅服务器的数据
上面三种情况是最常见的导致发布端和订阅端数据不一致的原因,其中第三种原因往往出现的最多,在这种情况下,通常来说,可以通过重新初始化订阅来解决该问题,但对于比较大的订阅来说,或者发布和订阅之间相隔太远而造成网络宽带的问题,则重新初始化订阅就不是那么吸引人的提案了。因此通过数据对比分析工具来比对有差异的数据,并仅仅更新那些和源不同步的数据则是更好的选择。
这类工具包括类似Redgate和xSql的数据对比工具,也可以使用Visual Studio自带的数据对比工具进行,下面我通过一个简单的Demo来展示如何解决该类问题。
DEMO
目前我已经建立好一个发布服务器和订阅服务器,发布服务器CAREYSON-SQL发布了示例数据库AdventureWorks的SalesOrderDetail整张表,订阅服务器sqlazur\sql2012订阅了该表,如图1所示。图1.基本的复制信息
此时,我在订阅服务器人为的删除数据,造成发布服务器和订阅服务器的数据不一致,如图2所示。
图2.在订阅端手动删除数据,造成不一致
我们再来服务端验证订阅,如图3所示。
图3.验证订阅
在复制监视器中,可以看到,在订阅服务器删除的一条数据导致了验证订阅出现不同步的提示,如图4所示。
图4.订阅已经不再同步
为了修正该问题,我们可以通过Visual Studio的数据库项目来建立数据对比分析任务来找到缺失的数据,从而根据发布端更新订阅端,如图5所示。
图5.找出被删除的数据
然后我们点击"更新目标",则被删除的数据会由发布端同步到订阅端。如图6所示。
图6.目标数据库已经更新
我们再次进行验证订阅,显示已经通过订阅,如图7所示。
图7.更新订阅端后,订阅通过验证
相关文章推荐
- 复制中发布服务器和订阅服务器内容不一致的解决办法
- 应用复制的命令时在订阅服务器上找不到该行 解决办法[转](
- sql server 发布/订阅 输入服务器名称无法登陆的解决办法
- 应用复制的命令时在订阅服务器上找不到该行 解决办法[转]
- sqlserver复制报”应用复制的命令时在订阅服务器上找不到该行“解决方法
- linux 下vsftpt服务器与服务器时间不一致,解决办法
- 部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法
- SQL2000中配置复制时发布服务器、分发服务器和订阅服务器的具体操作
- IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决办法
- 装完sql server 后修改计算机名后不能进行发布的订阅的解决办法
- MSSQL2005复制中订阅和发布不能正常删除的解决方法
- 本地文件不能直接复制粘贴到远程服务器解决办法
- SQLServer2008R2 发布订阅及相关问题解决办法
- 装完sql后修改计算机名后不能进行发布的订阅的解决办法
- freetextbox中粘贴从word中复制的内容出错解决办法
- SQL Server数据库实例名与服务器名不一致的解决办法
- Myeclipse下发布工程的时候,提示有包重复被部署到服务器--解决办法
- window7远程桌面到服务器不能复制粘贴解决办法
- Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法
- Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法