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就是一开始做主从同步时使用的用户和密码。
到这在线重做从库就完成了。。。