Centos 7.4 Mysql 8.0 Setting up multi-source replication 多源复制

介绍

MySQL多源复制可以使Slave服务器接收从多个源数据库接收事务。多源复制可用于将多个服务器备份到单个服务器,合并表分片,以及将来自多个服务器的数据合并到单个服务器。应用事务时,多源复制本身不会实现任何冲突检测或解决,需要应用程序自行实现冲突检测,以及事务冲突处理。在多源复制拓扑中,从属服务器为每个应从其接收事务的主服务器创建复制通道。

安装

基本安装原理还是基于主从复制,先备份server1然后在server3恢复,然后再备份server2再在server3恢复。这两部分可能有冲突部分,所以需要提前人工解决。

一 备份Server1

1.1 在server3执行备份指令

以下二选一
mysqldump备份

mysqldump -h <master_host> \
-u backup_user \
--password=<pass> \
--all-databases \
--routines --events \
--single-transaction \
--master-data  > server1.sql

本文指令

mysqldump -h 192.168.200.101 \
-u root \
--password=root \
--all-databases=true \
--routines --events \
--single-transaction \
--master-data  > server1.sql

mydumper备份

mydumper -h 192.168.200.101 \
-u root \
--password=root \
--use-savepoints  \
--trx-consistency-only \
--kill-long-queries \
--outputdir /app/mysql/mysqldata/backup

二 恢复Server1

在Server3执行恢复命令
以下方案二选一

mysql -u <user> -p -f < server1.sql

在这里插入图片描述

myloader \
--directory=/backups \
--user=<user> \
--password=<password> \
--queries-per-transaction=5000 \
--threads=8 \
--overwrite-tables

三 备份Server2数据库

3.1 在Server3执行备份命令

以下二选一
mysqldump备份

mysqldump -h <master_host> \
-u backup_user \
--password=<pass> \
--all-databases \
--routines --events \
--single-transaction \
--master-data  > server2.sql

本文指令

mysqldump -h 192.168.200.102 \
-u root \
--password=root \
--all-databases=true \
--routines --events \
--single-transaction \
--master-data  > server2.sql

mydumper备份

mydumper -h <master_host> \
-u backup_user \
--password=<pass> \
--use-savepoints  \
--trx-consistency-only \
--kill-long-queries \
--outputdir /app/mysql/mysqldata/backup2

四 恢复Server2数据库

在Server3执行恢复命令
以下方案二选一

mysql -u <user> -p -f < server2.sql

在这里插入图片描述

myloader \
--directory=/backups \
--user=<user> \
--password=<password> \
--queries-per-transaction=5000 \
--threads=8 \
--overwrite-tables

五 配置Server3

5.1 修改数据库复制模式

STOP SLAVE; //If slave is already running
SET GLOBAL master_info_repository = 'TABLE';
SET GLOBAL relay_log_info_repository = 'TABLE';

5.2 修改配置文件

shell> vi /etc/my.cnf
[mysqld]
master-info-repository=TABLE 
relay-log-info-repository=TABLE

5.3 注册复制通道

CHANGE MASTER TO MASTER_HOST='192.168.200.101', MASTER_USER='root', MASTER_PORT=3306, MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=2720 FOR CHANNEL 'master-1';
CHANGE MASTER TO MASTER_HOST='192.168.200.102', MASTER_USER='root', MASTER_PORT=3306, MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=3111 FOR CHANNEL 'master-2';

5.4 启动主备

START SLAVE FOR CHANNEL 'master-1';
START SLAVE FOR CHANNEL 'master-2';

5.5 查看状态

查询全部状态

SHOW SLAVE STATUS\G

查询单个状态

SHOW SLAVE STATUS FOR CHANNEL 'master-1' \G

查询sql

SELECT * FROM performance_schema.replication_connection_status\G

停止监听

STOP SLAVE FOR CHANNEL 'master-1';

重置监听

RESET SLAVE FOR CHANNEL 'master-2';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值