外观
Xtrabackup
约 448 字大约 1 分钟
2025-02-20
使用xtrabackup备份Mysql
安装
相关信息
操作系统为Debian Linux/8 ;Mysql版本为5.7.20
下载二进制包 https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/tarball/percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12.tar.gz
解压二进制包
tar -zxvf percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12.tar.gz
移动目录
mv percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12 /usr/local/xtrabackup
配置PATH
echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> vim /etc/profile
使PATH生效
source /etc/profile
注意
在dockerfile里执行这一步时会报错,不执行这条也行
设置软连接
ln -s /usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex
使用
全量备份
innobackupex --host=x.x.x.x --port=xxxx --user=xxx --password=xxx /var/lib/mysql/backup
提示
--host:指定主机;--port:指定端口;--user:指定Mysql用户;--password:指定Mysql密码;/var/lib/mysql/backup:备份文件存放的位置
增量备份
innobackupex --host=x.x.x.x --port=xxxx --user=xxx --password=xxx --incremental-basedir=/var/lib/mysql/backup/xxxx-xx-xx_xx-xx-xx ----incremental=/var/lib/mysql/backup/increment/
提示
--incremental-basedir=/var/lib/mysql/backup/xxxx-xx-xx_xx-xx-xx:前一次备份的目录;----incremental=/var/lib/mysql/backup/increment/:增量存放的目录
还原
停止数据库
pa -aux | grep "mysqld"
kill -9 [mysqld pid]
mv源mysql downloads数据
mkdir /temporaryfolder
mv /var/lib/mysql/* /temporaryfolder/
相关信息
注意downloads目录位置
如果有增量就先合并增量备份
innobackupex --apply-log --redo-only [全量备份目录]
innobackupex --apply-log --redo-only [全量备份目录] --incremental-dir=[第一次增量备份目录]
innobackupex --apply-log --redo-only [全量备份目录] --incremental-dir=[第二次增量备份目录]
......
innobackupex --apply-log [全量备份目录] --incremental-dir=[最后一次增量备份目录]
提示
合并最后一次增量备份时不用加--redo-only参数
再次初始化全量备份,不需要--redo-only参数
innobackupex --apply-log [全量备份目录]
进行还原
innobackupex --downloadsdir=[mysql数据文件夹路径] --copy-back [执行还原需要的全量备份目录]
相关信息
还原好会出现 completed OK! 的字样,此时重启 mysql 即可看到恢复的数据