mysql 5.7
xtrabackup 2.4
0、备份
1
2
3
4
5
6
7
8
# 相对于 `--stream=tar $target_dir | gzip -> $filename ` 能更好利用并发
innobackupex --defaults-file=/data/mysql3306/conf/my.cnf \
--user="backup_user" --password="backup_password" \
--host=127.0.0.1 --port=3306 \
--parallel=8 \
--tmpdir=/tmp \
--stream=xbstream --compress --compress-threads=8 \
/data/mysql_data_backup > /data/mysql_data_backup/10.0.0.2_3306_20260205.xbstream
1、使用备份还原,启动实例
可能需要先安装qpress
wget ‘http://repo.percona.com/tools/yum/release/7/RPMS/x86_64/qpress-11-3.el7.x86_64.rpm’ \
-O qpress-11-3.el7.x86_64.rpm
rpm -ivh qpress-11-3.el7.x86_64.rpm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 提取文件
mkdir ./10.0.0.2_3306
xbstream -x < ./10.0.0.2_3306_20260205.xbstream -C ./10.0.0.2_3306
# 解压
xtrabackup \
--decompress --compress-threads=8 \
--remove-original \
--datadir=10.0.0.2_3306 --target-dir=10.0.0.2_3306
# 应用日志
innobackupex --apply-log 10.0.0.2_3306
# 先按照mysql安装流程创建目录以及配置文件!!!
# 文件恢复
innobackupex --defaults-file=/data/mysql3306/conf/my.cnf --move-back 10.0.0.2_3306
# 启动mysql
mysqld_safe --defaults-file=/data/mysql3306/conf/my.cnf &
2、查看备份时的pos位点
1
cat /data/mysql3306/data/xtrabackup_info | grep -A 6 pos
3、设置 gtid_purged
1
2
3
reset master; -- 重置记录执行过的gtid的信息
-- 使用xtrabackup_info记录的pos位点重置 gtid_purged
set global gtid_purged='aaaaaaaa-bbbb-cccc-ddddddddddddddd:1-9123412345'
4、启动主从
1
2
3
4
5
6
7
8
9
10
11
12
-- 重新设置主实例信息
change master to master_host='10.0.0.2' -- 指向备份时的节点,即备份文件是由10.0.0.2这个实例获取的
,master_port=3306
,master_user='replicate_user'
,master_password='replicate_password'
,master_auto_position=1;
-- 查看设置的主从信息
show slave status\G
-- 启动主从
start slave;