MySQL5.7的多源复制

2018-05-10 13 0

环境

Mysql: 5.7.18
Master1: 192.168.1.41
Master2: 192.168.1.42
Slave: 192.168.1.43
复制模式: gtid

配置文件

Master1

server_id = 41
log-bin = mysql-bin
binlog_format = row
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
expire_logs_days = 30

gtid-mode = on
enforce-gtid-consistency = 1 
master-info-repository = TABLE
relay-log-info-repository = TABLE
sync-master-info = 1 
slave-parallel-workers = 2 
binlog-checksum = CRC32
master-verify-checksum = 1 
slave-sql-verify-checksum = 1 
binlog-rows-query-log_events = 1

Master2

server_id = 42
log-bin = mysql-bin
binlog_format = row
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
expire_logs_days = 30

gtid-mode = on
enforce-gtid-consistency = 1 
master-info-repository = TABLE
relay-log-info-repository = TABLE
sync-master-info = 1 
slave-parallel-workers = 2 
binlog-checksum = CRC32
master-verify-checksum = 1 
slave-sql-verify-checksum = 1 
binlog-rows-query-log_events = 1

Slave

server_id = 43
log-bin = mysql-bin
binlog_format = row
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
expire_logs_days = 30

log-slave-updates = 1 
gtid-mode = on
enforce-gtid-consistency = 1 
master-info-repository = TABLE
relay-log-info-repository = TABLE
sync-master-info = 1 
slave-parallel-workers = 4 
binlog-checksum = CRC32
master-verify-checksum = 1 
slave-sql-verify-checksum = 1 
binlog-rows-query-log_events = 1 
relay_log_recovery=1

Master1和Master2 各执行授权

mysql > grant replication slave on *.* to slave@'192.168.1.43' identified by 'xxyy';
mysql > flush privileges;

Slave 多源连接

mysql > change master to master_host='192.168.1.40',master_port=3306,master_user='slave',master_password='xxyy',master_auto_position=1 for channel 'master41';
mysql > change master to master_host='192.168.1.42',master_port=3307,master_user='slave',master_password='xxyy',master_auto_position=1 for channel 'master42';

多源复制出错处理

binlog+position

stop slave sql_thread for channel ‘master41’;
set global sql_slave_skip_counter=1;
start slave sql_tread for channel ‘master41’;

GTID

stop slave sql thread for channel ‘master41’;
set gtid_next=’uuid:N’;
begin;commit;
set gtid_next=’automatic’;
start slave sql_tread for channel ‘master41’;

相关文章

MySQL连接数暴增,wait_timeout 调整
MySQL 备份库文件 恢复指定表 UPDATE或INSERT
kube-prometheus监控MySQL
Rocky9 Kubernetes MySQL5.7 启动报错解决
MySQL 添加字段锁表 事务导致的锁表记录
MySQL 千万级大表添加字段 pt-online-schema-change使用

发布评论