开发者社区> 问答> 正文

多数据库之间同步数据怎么做?:报错

从数据库A中查询数据,更新到数据库B中。如果不在A上做修改(比如触发器等等),有没有比较好的做法呢?

1. 如果数据量比较大,每次读取A的查询结果集和B的已有数据,二者对比后更新B,这样做占用内存会不会太大?

2. 每次更新对B进行重写,大数据量下B数据库的IO会不会太大?

恳请各位老师赐教!

展开
收起
kun坤 2020-06-07 13:51:00 716 0
1 条回答
写回答
取消 提交回答
  • A和B是异构的吗(是不是同一种数据库)?

    如果是同一种数据库的话,你同步的数据表结构是否相同,如果也相同的话,完全可以利用数据库的同步复制机制来解决;(做主从)

    如果表结构不相同的话,如果不在应用层处理的话,有两种方式参考:

    1,A推数据给B;A有数据的时候,实时或非实时(采用event或trigger)将数据推到B中,B再做处理;

    2,B从A拉数据,用一个event(mysql中的job)定时从A中拉数据然后进行处理;

    另外可以选择在应用层来做,这个我就不多介绍了,根据业务逻辑coding就行了。

    由于不清楚你的业务特点,所以无法进一步的帮你分析。

    仅供参考

    ######谢谢您的回答! A和B都是关系数据库,我想从A中做一些查询,将得到的结果集更新到B中,作为某个应用的基础数据,然后B中其他表存储一些应用相关的其他数据,以达到不改变A的前提下扩展应用的目的。######可以用开源的数据迁移工具etl。基本能满足你的要求。######直接应用层处理就好了。######楼上 这样会影响运行效率吧。
    ######

    都是oracle的话推荐用goldengate。

    更通用的做法是自己写个工具,A库产生同步指令和数据,B库根据指令和数据同步到本地

    ######数据交换么~######应该有service层吧,为啥不在里面写定时器,通过A数据库里面的时间去做不行吗?
    ######

    不用触发器,不想每次都全盘复制,就要自己写判断增量的逻辑。


    ######

    有些网闸带有同步工具

    ######比如TIPTOP利谱
    2020-06-07 13:51:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载