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;

猜你喜欢

转载自www.cnblogs.com/gaogao67/p/10465100.html