mysql使用rsync进行主从同步
2022-02-07 本文已影响0人
CaptainWhite
场景
整个库的数据量非常大,使用dump备份时间很久;主库可以暂停写入一段时间,故采用rsync同步数据制作主从的方式
- 主库已经有同步需要的账号
- 停止从库,删除从库下的数据
systemctl stop mysqld.service
rm -rf /home/mysql/*
- 主库全量rsync同步数据到从库(开启screen,时间比较久):
screen -R rsync
rsync -avz /home/mysql/ mysql@10.201.2.183::mysql --password-file=/etc/rsync.pas
- 设置主库mysql只读
show global variables like "%read_only%";
set global read_only=1;
set global super_read_only=1;
flush tables with read lock;
flush privileges;
查看主库的信息(确保postion不变)
show master status;
mysql-bin.xxx | xxxxx
- 主库再rsync数据到从库
rsync -avz /home/mysql/ mysql@10.201.2.183::mysql --password-file=/etc/rsync.pas
- 同步完数据,放开主库的写
unlock tables;
set global read_only=0;
set global super_read_only=0;
show global variables like "%read_only%";
#read_only | OFF
flush privileges;
- 从库删除uuid信息,启动从库,制作主从关系
登录从库:
rm -rf /home/mysql/auto.cnf
systemctl start mysqld.service
登录mysql:
CHANGE MASTER TO
MASTER_HOST='10.201.2.183',
MASTER_USER='repl',
MASTER_PASSWORD='xxxx',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.xxxx',
MASTER_LOG_POS=xxxx,
MASTER_CONNECT_RETRY=10;
start slave;
show slave status\G;