xtrabackup备份与恢复

xtrabackup备份与恢复

介绍

​ Xtrabackup是由Percona团队开发的用于MySQL数据库的物理热备份工具。它支持InnoDB和XtraDB存储引擎,具备备份速度快、不影响业务运行、支持压缩和自动校验等特点。Xtrabackup目前被各大云厂商广泛采用,是MySQL备份的首选方案之一。

安装

安装xtrabackup

# 下载地址
https://www.percona.com/downloads
https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/tarball/percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz

# 官方文档
https://docs.percona.com/percona-xtrabackup/innovation-release/index.html
tar zxf percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz
mv percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17 /usr/local/xtrabackup
echo 'export PATH=$PATH:/usr/local/xtrabackup/bin' >> /etc/profile
source /etc/profile

安装qpress

qpress是解压缩需要用到的工具

wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar

tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile

创建用户

创建具有所需最低权限的数据库用户的 SQL 示例 完整备份将是:

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
       'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;

完整备份与恢复

备份

bakdir="/backup/fullbackups/$(date '+%F')"
mkdir -p $bakdir

# --backup 备份
# --compress 压缩
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$bakdir

恢复

恢复数据的时候要先关闭MySQL,清理数据存储目录

# 解压备份数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$bakdir
# 准备备份文件以供恢复
xtrabackup --prepare --target-dir=$bakdir
# 恢复数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --copy-back --target-dir=$bakdir

# 修改权限,替换成自己的数据存储目录
chown -R mysql:mysql /var/lib/mysql

# 然后启动MySQL即可
systemctl start mysqld

增量备份与恢复

增量备份

fulldir="/backup/fullbackups/$(date '+%F')"
incdir="/backup/incrementalbackups/$(date '+%F')"
mkdir -p $fulldir
mkdir -p $incdir

xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$fulldir
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$incdir --incremental-basedir=$fulldir

在备份的目录里面会有xtrabackup_checkpoints文件

[root@localhost ~]# cat /backup/incrementalbackups/2024-07-26/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 4470833
to_lsn = 4470833
last_lsn = 4470842
compact = 0
recover_binlog_info = 0
flushed_lsn = 4470842

# from_lsn是备份的起始 LSN,对于增量备份,它必须与前一个/基础的 LSN 相同
# to_lsn是备份的结束 LSN
# last_lsn是备份完成是的LSN

增量恢复

恢复数据的时候要先关闭MySQL,清理数据存储目录

# 解压备份数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$fulldir
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$incdir

# 准备数据
xtrabackup --prepare --apply-log-only --target-dir=$fulldir
# 把增量备份的数据合并到完整备份里面
xtrabackup --prepare --apply-log-only --target-dir=$fulldir --incremental-dir=$incdir

# 恢复数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --copy-back --target-dir=$fulldir

# 修改权限,替换成自己的数据存储目录
chown -R mysql:mysql /var/lib/mysql

# 然后启动MySQL即可
systemctl start mysqld
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值