mysql使用rsync进行主从同步

场景

整个库的数据量非常大,使用dump备份时间很久;主库可以暂停写入一段时间,故采用rsync同步数据制作主从的方式

  1. 主库已经有同步需要的账号
  2. 停止从库,删除从库下的数据
systemctl stop mysqld.service

rm -rf /home/mysql/*

  1. 主库全量rsync同步数据到从库(开启screen,时间比较久):
screen -R rsync
rsync -avz /home/mysql/   [email protected]::mysql  --password-file=/etc/rsync.pas
  1. 设置主库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 

  1. 主库再rsync数据到从库
rsync -avz /home/mysql/   [email protected]::mysql  --password-file=/etc/rsync.pas
  1. 同步完数据,放开主库的写
unlock tables;
set global read_only=0;
set global super_read_only=0;
show global variables like "%read_only%";
#read_only     | OFF  
flush privileges;
  1. 从库删除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;

你可能感兴趣的:(mysql使用rsync进行主从同步)