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 mysqld2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old3)恢复
应用日志
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 mysqld2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old3)恢复
应用全备日志
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 mysqld2)模拟故障,例如可以挪走之前的数据目录
mv /data/mysql /data/mysql_old3)恢复
应用全备日志
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









