现项目需要实现两台服务器数据库双向同步,刚接触OGG,正在学习中,有个疑问想请教各位。按我理解,OGG原理简单来说就是通过LOG提取实现数据同步,就是说只要是对数据表的操作都会记录并同步过去。
假如有个库存表,其中某条记录在A、B库都有进行了更新操作,那再同步时,这条记录是如何同步的?不是会有冲突吗?OGG

解决方案 »

  1.   

    OGG只是同步工具,和锁是不同的概念。主要看你更新和同步的顺序和时间,最差的效果就是死锁。这个主要是你的业务逻辑造成的。
      

  2.   

    可能我还没解释清楚:
    目前是同一套系统,在部署在A、B两个地方单独运行。现在要把两个数据库的数据进行同步。我的疑问是:
    如果A系统有更新库存表的1001这个记录,B系统也有更新这个记录,那在同步时会出现什么状况?
      

  3.   

    不瞒你说,现在这客户就是相同的业务,在两地都有操作,现在又要数据同步……
    就是因为有以上业务情况,所以我才对OGG方案有疑问不知道这种情况,使用OGG还可不可以?或者还有其它什么方案?还是说只能自己开发数据同步工具
      

  4.   

    OGG dml复制会提取online redo和archive log中commit的事务,并以scn号为先后顺序形成ogg自有的log。而在双向复制的时候,通过scn号和时间戳来排序,所以不会造成冲突