前提:
一定要主要多个主库之间的server-id及uuid保持不一致
这边将半同步复制统一打开或关闭
基于GTID的多源复制
过滤参数持久化到配置文件
replicate-wild-do-table = riskcontrol.inf_customer_credit replicate-wild-do-table = market.biz_customer_incoming replicate-wild-do-table = isop.customer_account
复制
mydumper导出指定库指定表
mydumper -u root -p xxxx -h 100.64.102.83 -P 3307 --regex '^(riskcontrol\.inf_customer_credit\b|riskcontrol\.inf_customer\b)' -o /ftpserver/yacedb/databack/risk0415 mydumper -u root -p xxxx -h 100.64.102.86 -P 3307 --regex '^(market\.biz_customer_incoming\b|market\.biz_customer_incoming_path\b|market\.comm_mos_node\b|isop\.biz_customer_base\b|isop\.customer_account\b)' --daemon -o /ftpserver/yacedb/databack/middle0415
复制
目标实例创建对应数据库
CREATE DATABASE `riskcontrol` /*!40100 DEFAULT CHARACTER SET utf8 */; CREATE DATABASE `market` /*!40100 DEFAULT CHARACTER SET utf8 */; CREATE DATABASE `isop` /*!40100 DEFAULT CHARACTER SET utf8 */;
复制
导入数据
nohup myloader -u root -p xxx -h 100.64.102.132 -P 3307 -o -d /ftpserver/yacedb/databack/risk0415 & nohup myloader -u root -p xxx -h 100.64.102.132 -P 3307 -o -d /ftpserver/yacedb/databack/middle0415/0 &
复制
手动在Slave上设置gtid_purged的值
cat metadata set global gtid_purged='579a7fd5-674f-11e9-90a5-ccbbfe99cd79:1-280334384,e3ca0b67-6376-11e9-8a07-ccbbfe99ce07:1-246742775';
复制
配置主从同步
CHANGE MASTER TO MASTER_HOST='100.64.102.83',MASTER_USER='replic',MASTER_PASSWORD='replic_33',master_port=3307,master_auto_position=1 for channel '100.64.102.83_3307'; CHANGE MASTER TO MASTER_HOST='100.64.102.86',MASTER_USER='replic',MASTER_PASSWORD='replic_33',master_port=3307,master_auto_position=1 for channel '100.64.102.86_3307';
复制
启动Slave
start slave for channel '100.64.102.83_3307'; start slave for channel '100.64.102.86_3307';
复制
验证复制状态
show slave status for channel '100.64.102.83_3307'\G; show slave status for channel '100.64.102.86_3307'\G;
复制
手动过滤同步
- 只同步指定的库(全局,所有通道的库名都需填入)
stop slave sql_thread; CHANGE REPLICATION FILTER replicate_wild_do_table =('dms.%','lifeasia.%','fwduwdb.%','grouplife2.%','customerporsit.%',',smart.%','ccr.%'); start slave sql_thread;
复制
- 如果不同步某库
CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db1.new%', 'db2.new%');
复制
过滤复制追加表同步
假如之前实现的是过滤复制,复制的是主1的db1 和 主2的db3,已经运行一段时间了。现在想增加主1上的db2,该如何实现?
具体实现方法如下:
- 使用mysqldump 导出 db2(记录pos1),并导入多源从库。
- 停止多源从库的sql线程(STOP SLAVE SQL_THREAD ),并记录此刻同步到主1的位置pos2。
- 使用mysqlbinlog 将pos1 到 pos2 的变更应用到从库。(mysqlbinlog --start-position=pos1 --stop-position=pos2 -d db2 xxx.log | mysql -u -p -h -P )
- 在线修改多源从库的过滤条件(CHANGE REPLICATION FILTER Replicate_Wild_Do_Table = ('db1.%','db2.%','db3.%');)
- 将过滤条件同步到参数文件。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收!
❤️我们还会实时派发您的流量收益。
2年前

评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3363次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
912次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
539次阅读
2025-04-17 17:02:24
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
361次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
301次阅读
2025-05-06 14:40:00
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
299次阅读
2025-04-28 11:01:25
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
293次阅读
2025-04-30 12:17:54
MySQL 官方准备了 3 个月的羊毛,万万没想到 8 天就被薅秃了,看看JieKeXu怎么说?
青年数据库学习互助会
268次阅读
2025-05-09 10:07:42
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
249次阅读
2025-04-18 20:21:32
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
208次阅读
2025-05-13 16:21:59