MySQL 5.7--多源复制(非GTID模式)

本文详细介绍了MySQL5.7版本中引入的多源复制功能,包括配置多源复制的方法、启动和关闭特定复制通道的过程、以及如何在多源复制模式下跳过特定的复制事件。此外,还提供了查询复制进度和配置信息的SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

====================================================

在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;

 

转载于:https://www.cnblogs.com/gaogao67/p/10465100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值