环境说明:
基于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是否一致,同步状态是否正常。
原创不易,转载请注明出处!