两个MySQL都有数据,然后需要从某一刻开始,数据变成一样的。
原提问者GitHub用户 yuanxiaoqi
要将两个 MySQL 数据库中的数据变成一样的,需要进行数据库同步操作。可以通过以下步骤实现:
确定需要同步的数据范围。如果两个数据库中存在相同的表和数据,可以只同步其中一个数据库中的变化数据;如果两个数据库中的表和数据不完全一致,需要确定需要同步的表和数据范围。
选择合适的同步工具。有许多数据库同步工具可供选择,如 MaxScale、DMS、DataGrip、Navicat、SymmetricDS、MySQL Replication 等。根据实际需求和情况,选择适合自己的同步工具。
配置同步工具。根据同步工具的要求,配置源数据库和目标数据库的连接信息、同步方式、同步频率、同步对象等。
启动同步任务。根据同步工具的要求,启动同步任务,并监控同步进度和状态。
验证同步结果。在同步完成后,需要验证同步结果,确保两个数据库中的数据已经完全一致。可以通过查询表中的数据、比较数据条数和数据内容等方式进行验证。
需要注意的是,数据库同步过程中,可能会出现数据冲突、数据漏同步、数据表结构不一致等问题。因此,在进行数据库同步时,需要仔细分析和评估,根据实际情况进行调整和优化,以确保同步结果的正确性和可靠性。
这个都会碰到的痛点就是全量问题 。。。
杀器: 可能是自由门 (otter自带,限制很大:系统表+源表相同)
其他 1,最基本的方案,痛点是必须有binlog postion作为otter的初始位点: mysqldump+mysql<sql 导入速度可能不太理想,数据量很大几十上百G甚至更大的时候怎么搞? xbackup+mysql<sql 如果不是全库迁移,单表导入挺麻烦的吧
2, 都这么坑能绕开嘛?
类离线+自动位点
mysql-->hdfs(sqoop)-->mysql全量+然后otter 根本不需要关心postion啊
3, 其他类似Debezium, 全量增量都有,注意FTWRL哦,看起来理论与mysqldump(--single-transaction --master=2)类似。 有全量有增量。咋一看,要的就是他吧。看了下这个一致性快照要是集成到otter就相当完美了。 Debezium Connector for MySQL
4,...
2018-01-22 补充下,看了下源码,insert/update是基于on duplicate key update实现的
其实只要读的binlog位点,比全量抽取的时候靠前就可以了。这样可以用类似sqoop的抽取。
先给canal设置一个位点。然后用sqoop之类的做一次全量。再开启channel 就可以了
原回答者GitHub用户 luyee
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。