在线重做MySQL主从

MySQL主从在线重做从库

现有主从架构,从库损坏或者需要更换从库,不管什么原因现在就是要重做从库了,现在推荐使用一个第三方工具—xtrabackup

(以下过程是经历生产环境实施的,放心使用)

主库 192.168.10.128
从库 192.168.10.129

1. 主从库上都安装xtrabackup

https://download.csdn.net/download/mfanoffice2012/12505598下载离线安装包,传到两台MySQL服务器;

unzip innodbbackup.zip
cd innodbbackup/
#安装所有依赖包
rpm -ivh needed/*  
#安装xtrabackup,MySQL8使用xtrabackup-80版,MySQL8以前版本使用xtrabackup-24版本
rpm -ivh xtrabackup/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm 
#查看安装
xtrabackup -version

2. 备份主库

**必须条件:**主库和从库my.cnf中的server-id要不相同,主启动二进制日志记录。

用新安装的xtrbackup备份mysql的data下的所有文件

 innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --socket=/tmp/mysql.sock /mysql/backup/

3. 将备份文件夹传输到从库上

rsync -avprP -e ssh /mysql/backup/2020-06-08_17-16-02 192.168.10.129:/mysql/backup 

4. 从库上恢复数据

事务日志恢复(–apply-log)

innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --apply-log /mysql/backup/2020-06-08_17-16-02/

复制数据恢复(–copy-back)

在此恢复前先把从库现有的data目录移走

 innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --copy-back --rsync  /mysql/backup/2020-06-08_17-16-02/

5. 删除datadir下的事务日志log文件

cd /mysql/mysql/data
rm -rf ib_logfile*

6. 启动从库mysql

7. 配置主从同步

备份时的binlog-file
cat  /mysql/backup/2020-06-08_17-16-02/xtrabackup_binlog_info

mysql-bin.000008        6787793 

记住这两条信息,接下来做同步时使用

change master to master_host='192.168.10.128',master_user='replication',master_password='replication',master_log_file='mysql-bin.000008',master_log_pos=6787793;

start slave;

show slave status\G

此处的master_user和master_password就是一开始做主从同步时使用的用户和密码。

到这在线重做从库就完成了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章