xtrabackup备份对比mysqldump,好处是:备份速度快,不锁表,支持增量备份。
1、下载合适的包并安装
官网下载地址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST/
在这里,我下载8.0.29
wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.29-22/binary/tarball/percona-xtrabackup-8.0.29-22-Linux-x86_64.glibc2.17.tar.gz
由于是二进制包,解压后可直接使用
将包解压到/usr/local/下
tar zxf percona-xtrabackup-8.0.29-22-Linux-x86_64.glibc2.17.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-8.0.29-22-Linux-x86_64.glibc2.17/bin/xtrabackup /usr/bin/
###
全量备份
创建目录
mkdir -p /data/backup/20220819
备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'yanglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220819
恢复
1)停止原mysql服务
systemctl stop mysqld
2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old
3)恢复
应用日志
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/20220819
数据准备
xtrabackup --prepare --target-dir=/data/backup/20220819
恢复
xtrabackup -uroot -p'yanglinux.Com' --datadir=/data/mysql --copy-back --target-dir=/data/backup/20220819
修改权限
chown -R mysql:mysql /data/mysql
启动服务
systemctl start mysqld
###
增量备份
创建目录
mkdir -p /data/backup/20220820
mkdir -p /data/backup/20220820_incr
增量备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'yanglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220820_incr --incremental-basedir=/data/backup/20220820
恢复
1)停止原mysql服务
systemctl stop mysqld
2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old
3)恢复
应用全备日志
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/20220820
应用增量日志
xtrabackup --prepare --target-dir=/data/backup/20220820 --incremental-dir=/data/backup/20220820_incr
数据准备
xtrabackup --prepare --target-dir=/data/backup/20220820
恢复
xtrabackup -uroot -p'yanglinux.Com' --datadir=/data/mysql --copy-back --target-dir=/data/backup/20220820
修改权限
chown -R mysql:mysql /data/mysql
启动服务
systemctl start mysql
###
多个增量备份
创建目录
mkdir -p /data/backup/20220821/full
mkdir -p /data/backup/20220821/incr
全量备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'yanglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220821/full
做一些更改
第一次增量备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'aminglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220821/incr/01 --incremental-basedir=/data/backup/20220821/full
做一些更改
第二次增量备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'aminglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220821/incr/02 --incremental-basedir=/data/backup/20220821/incr/01
做一些更改
第三次增量备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf -uroot -p'aminglinux.Com' -S /tmp/mysql.sock --backup --target-dir=/data/backup/20220821/incr/03 --incremental-basedir=/data/backup/20220821/incr/02
恢复
1)停止原mysql服务
systemctl stop mysqld
2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old
3)恢复
应用全备日志
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/20220821/full
应用第一次增量日志
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/20220821/full --incremental-dir=/data/backup/20220821/incr/01
应用第二次增量日志
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/20220821/full --incremental-dir=/data/backup/20220821/incr/02
应用第三次增量日志,最后一次不需要加--apply-log-only
xtrabackup --prepare --target-dir=/data/backup/20220821/full --incremental-dir=/data/backup/20220821/incr/03
数据准备
xtrabackup --prepare --target-dir=/data/backup/20220821/full
恢复
xtrabackup -uroot -p'yanglinux.Com' --datadir=/data/mysql --copy-back --target-dir=/data/backup/20220821/full
修改权限
chown -R mysql:mysql /data/mysql
启动服务
systemctl start mysqld
标签:--,data,备份,Xtrabakcup,xtrabackup,全量,mysql,backup,dir
From: https://blog.51cto.com/u_15288767/8133084