MySQL主从复制出错,使用innobackupex备份恢复重做从库

环境说明:

基于gtid模式下的主从复制,数据库采用一主两从高可用架构,agent用于采集数据库状态信息,备份还原时停止agent为了防止自动拉起从库。

 

1、停止从库agent,停止从库mysql服务

2、备份主库数据:nohup /usr/bin/innobackupex --defaults-file="/app/teledb/mysql/mysql_8801/etc/mysql8801.cnf" --use-memory=3G --parallel=8 --notimestamp "/data1/backup" --user=root --password='root123' --socket="/tmp/mysql_8801.sock" >> /data1/backup/backup8801.log 2>&1 &

备份将数据发送至从库

3、将原数据备份并创建新目录:mv /data1/data8801 /data1/data8801_backup

mkdir -p /data1/data8801/mysql_data8801 mkdir -p {data,binlog,relaylog,logs,tmp,xtrabackuptmp}

 

4、执行还原从库数据:/usr/bin/innobackupex --apply-log /data1/2019-11-08_14-57-43/

/usr/bin/innobackupex --defaults-file=/app/teledb/mysql/mysql_8801/etc/mysql8801.cnf --move-back --parallel=8 /data1/2019-11-08_14-57-43/

5、还原从库的atuo.cnf文件:cp -f /data1/data8801_backup/mysql_data8801/data/auto.cnf/ /data1/data8801/mysql_data8801/data/

6、启动从库mysql服务:cd /app/teledb/mysql/mysql_8801/bin/ ./mysqld_safe --defaults-file=/app/teledb/mysql/mysql_8801/etc/mysql8801.cnf &

7、设置从库的gtid_purged变量:cat xtrabackup_binlog_info #记下gtid点

 

 

 

登录从库mysql:

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> reset master;

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global gtid_purged="92e16239-b43f-11e9-a357-34800d417b70:1-3331";

Query OK, 0 rows affected (0.00 sec)

 

mysql> CHANGE MASTER TO MASTER_HOST='*********',MASTER_USER='sla',MASTER_PASSWORD='sla123!@#',MASTER_PORT=8801,MASTER_AUTO_POSITION=1;

Query OK, 0 rows affected (0.04 sec)

 

mysql> start slave;

Query OK, 0 rows affected (0.04 sec)

 

8、查看主从同步是否正常

 

mysql> show slave status\G

 

 

 

 

9、删除从库数据目录下的xtrabackup文件,启动从库agent服务

10、检查主从gtid是否一致,同步状态是否正常。

 

 

 

原创不易,转载请注明出处!

 

posted @ 2020-05-19 14:27  Scorpio丶  阅读(402)  评论(0)    收藏  举报