0
点赞
收藏
分享

微信扫一扫

使用Xtrabakcup工具实现增量、全量备份

Mhhao 2023-11-01 阅读 11

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

举报

相关推荐

0 条评论