请教各位一个问题, mysql 数据同步或者迁移

2019-11-08 11:52:09 +08:00
 hua123s

俺有一个数据库的数据想要同步到另一个数据库, A 库的字段名和 B 库的字段名对应不一样, A 库数据会更新,B 库做到比较高效地同步更新。

请问一样我要肿么处理,效率和稳定性会比较高呢。(╹▽╹)

4534 次点击
所在节点    MySQL
10 条回复
KingOfUSA
2019-11-08 11:57:20 +08:00
1. 可以用 mq 来解决,这样要动你的程序。A 库的程序更新了以后发一条 mq,然后监听者消费,更新 B 库数据;
2. 使用监听 mysql binlog 的中间件(例如阿里的 canel );
3. 如果上云了,可以使用云厂商提供的服务;
justfly
2019-11-08 12:00:14 +08:00
最后问题,一库两表,用触发器
xxsww211
2019-11-08 12:00:34 +08:00
对应字段不一样,那就只能做新的插入了,而且两个表都是有读写的,所以能做的事并不多。
无非就是监控 A 的变化,去更新或插入 B。
xxsww211
2019-11-08 12:01:49 +08:00
可以考虑将一个表做成 cache,将共用的部分做缓存,只写一个表,另外一个就不需要重复的部分了
hua123s
2019-11-08 12:04:23 +08:00
😭A 的写,我没法控制。要做的只是同步 A 库数据到 B 库
x66
2019-11-08 13:08:21 +08:00
etl 根据 create_datetime 和 update_datetime 增量同步
SjwNo1
2019-11-08 14:45:05 +08:00
同库 用触发器就可 字段不一致考虑做字段映射
realpg
2019-11-08 15:49:02 +08:00
2. 触发器

1. 触发器出发另外一个跟目标结构表 然后同步这个表

1 的高级玩是自己编一个基于 RAM 的引擎输出结构化流给远端或者本地独立服务器,我搞过
hua123s
2019-11-21 15:03:25 +08:00
@x66 emmm 大佬大佬 我用了你说的 kettle 这种东西 源库删除了某些行 怎么同步?
x66
2019-11-21 15:30:56 +08:00
@hua123s #9
我们这边针对这种情况有两种方案,尽量采用 1.。
1。数据不做物理删除,采用逻辑删除标志。
2. 每天在非业务高峰期根据主键做一次全表比对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/617538

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX