Mysql 5.7版本支持多源复制,
mysql 5.5和5.6不支持。
多源复制可以让多个主节点同时并行进行复制到一个从节点上。一个slave为每个master创建一个复制通道。
至少需要两台主库和一台从库。
多源复制中的主库,可以配置成基于全局
事务标准(GTID)的复制,或者基于二进制
日志的复制。
IP规划
主库01192.168.174.201
主库02192.168.174.202
从库192.168.174.203
1. 在多源复制的从库中,需要基于表的repositories,和基于文件的repositories不兼容。
在从库上面操作
可以将下面参数添加到参数文件中
master-info-repository=TABLE
relay-log-info-repository=TABLE
master_info_repository
决定包含master状态和连接信息的slave日志,是以文件格式(master.info),还是以表格式(my
sql.slave_master_info)存在。
当没有复制
线程执行的时候,可以改变这个参数的值。
这个参数还会对sync_master_info系统参数有直接的影响。
relay_log_info_repository
这个参数决定写到文件(relay-log.info)或表(mysql.slave_relay_log_info)中的中继日志slave节点的位置。只有当没有复制线程执行时,才可修改这个参数的值。
这个参数用于存放中继日志的信息。默认是文件格式,文件的默认名是relay-log.info。
如果是TABLE格式,日志信息会写到mysql.slave_relay_log_info。
动态修改,使用下面命令
STOP SLAVE;
SET GLOBAL master_info_repository = 'TABLE';
STOP SLAVE;
SET GLOBAL relay_log_info_repository = 'TABLE';
mysql> show global variables like '%repositor%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| master_info_repository | FILE |
| relay_log_info_repository | FILE |
+---------------------------+-------+
2 rows in set (0.03 sec)
mysql> SET GLOBAL master_info_repository = 'TABLE';
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL relay_log_info_repository = 'TABLE';
ERROR 1766 (HY000): Unknown error 1766
--结束END--
本文标题: MySQL 5.7搭建多源复制
本文链接: https://lsjlt.com/news/46715.html(转载时请注明来源链接)
有问题或投稿请发送至:
邮箱/279061341@qq.com QQ/279061341
0