| ||||
【文章简介】 事务复制是数据同步中常用的一种手段,复制过程难免会遇到不少问题,就笔者遇到的问题而言,一般有两大类:一类是通过重新启动DistributorAgent即可解决的问题,另一类是因为Subscriber修改了数据,导致发布的数据有冲突,这类问题一般需要手工去修复。TableDiff是SQLServer2005的一个命令行实用工具,该工具可以比较两个表,并且生成数据同步的脚本。借助这个工具,可以很容
【文章正文】; -- come from step 5, (last_xact_seqno)@time= GETDATE() UPDATE dbo.MSreplication_subscriptions SET transaction_timestamp = CAST(@transaction_timestamp as binary(15)) + CAST(SUBSTRING(transaction_timestamp, 16, 1) as binary(1)), [time] = @time WHERE UPPER(publisher) = UPPER(@publisher) AND publisher_db = @publisher_dbAND publication = @publication AND subscription_type = 0 AND ( SUBSTRING(transaction_timestamp, 16, 1) = 0 OR DATALENGTH(transaction_timestamp) < 16)8) 检查Distribution Agent的运行情况,确定修复成功。六、 其他TableDiff工具在使用上还是比较简单,只是参数稍微显得有些多而已。经测试发现,在VS2005中,可以直接引用TableDiff进行二次开发(只是无法捕获到其内置检查出现的错误),故可考虑把修复事务复制问题的处理写成一个Tools。另外,由于TableDiff可以用于非复制的表,因此,有时也可以用该工具来实现表的数据同步,或者是生成表的数据插入脚本。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
电子商务辩论台: |
|
载入中…
|