免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2144 | 回复: 3
打印 上一主题 下一主题

双向复制的问题,请高手解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-31 10:40 |只看该作者 |倒序浏览
一、环境如下:
1、
一个复制服务:rs
集中库:sjdb
分库1:dsdb1
分库2:dsdb2
分库3:dsdb3
。。。
2、集中库和分库中都有
tb1(id varchar(10) not null,a varchar(10) null,b varchar(10) null)
tb2(id varchar(10) not null,b varchar(10) null,c varchar(20) null)
两张表。都是双向复制。

3、集中库的tb1上建触发器,当tb1的b字段更新时,将b的值写入tb2的b,使tb2.b=tb1.b。分库中不建触发器。

二、复制配置情况
1、分库往集中库复制。所有数据都复制。
2、集中库往分库复制。集中库往分库复制时,根据表中字段 b 来区分复制到哪个分库。若b=1,则复制到,分库1,若b=2则复制到分库2,依此类推。当b=0或空时,不复制到分库。

三、更新数据库过程及问题如下:
步骤一、在集中库中tb1和tb2中插入一条记录,b=0,此时数据不会复制到分库
步骤二、更新tb1的b=1,触发器生效,使tb2.b=tb1.b,此时tb1和tb2的数据被复制到分库1。
步骤三、更新分库1中tb1.b=0。此时分库往集中库的复制生效,集中库中的tb1.b被更新为0
步骤四、再次更新集中库中的tb1.b=1,触发器生效,使tb2.b=tb1.b=1。此时,集中库往分库1的复制出现问题。日志提示出现主键冲突,无法插入。即复制到分库1时,不是对记录进行更新,而是重新插入该条记录。导致dsi down。当然删除分库1中的记录再resume就可以了,但是因为这四步是必须会有的步骤,不可能不停的删除分库中的记录。请教高手如何解决,或者有无替代方法。

[ 本帖最后由 xygulu 于 2008-12-31 16:51 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-01-04 17:45 |只看该作者

回复 #1 xygulu 的帖子

自己顶,难道没有解决的办法吗?

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
3 [报告]
发表于 2009-01-07 13:51 |只看该作者
简单,在分库所挂接的rs server上
set autocorrection on for xxxx_def(复制定义) with replicate at 分库的server.分库
go
然后就不会再duplicate key错了

论坛徽章:
0
4 [报告]
发表于 2009-01-08 12:22 |只看该作者
根据Eisen 大侠的指导,问题已经解决了。看来还是自己对sybase的复制系统不熟啊。多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP