MySQL 5.7--多源复制(非GTID模式)
====================================================
在MYSQL5.7版本中引入多源复制,一个从库允许复制多个主库的数据,每个主库被配置为一个单独的channel。
对于每个channel:
1>拥有独立的chanel名
2>拥有独立的receiver线程以及独立的中继日志。
3>可以被单独启动和关闭以及进行配置
4>可以拥有独立的一组applier线程来并发应用二进制日志。
PS: 多源复制无法再使用文件来保存复制元数据,要求将元数据信息放入表中。
SET GLOBAL master_info_repository = 'TABLE';
SET GLOBAL relay_log_info_repository = 'TABLE';
====================================================
使用FOR CHANNEL选项搭建多源复制
## 使用FOR CHANNEL选项搭建赋值
CHANGE MASTER TO
MASTER_HOST='192.168.1.101',
MASTER_USER='rep_user',
MASTER_PORT=3306,
MASTER_PASSWORD='rep_user_psw',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=194
FOR CHANNEL 'server_101';
====================================================
启动指定CHANNEL的复制
## 启动指定CHANNEL的复制
START SLAVE FOR CHANNEL 'server_101';
====================================================
关闭指定CHANNEL的复制
## 关闭指定CHANNEL的复制
STOP SLAVE FOR CHANNEL 'server_101';
====================================================
多源复制模式下跳过复制事件
## 1、停止所有的SLAVE
STOP SLAVE;
## 2、设置skip counter
SET global sql_slave_skip_counter=1
## 3、先启动需要跳过的复制SLAVE
START SLAVE FOR CHANNEL 'server_101'
## 4、重启所有Slave
STOP SLAVE;
START SLAVE;
====================================================
查看复制进度
##查看复制进度 SELECT CHANNEL_NAME, WORKER_ID, THREAD_ID,SERVICE_STATE, LAST_SEEN_TRANSACTION FROM performance_schema.replication_applier_status_by_worker;
====================================================
查看复制的进度和配置
##查看复制的进度和配置 SELECT * FROM mysql.slave_master_info \G SELECT * FROM mysql.slave_relay_log_info \G;