Xtrabackup完全备份、增量备份、差异备份

本文详细介绍了在CentOS7环境下,使用Xtrabackup工具对MySQL7.4数据库进行全量、增量和差异备份的操作步骤,包括备份、回滚事务和恢复数据的过程,强调了备份安全性和恢复策略的重要性。

前言

环境:cetos7
数据库:Mysql7.4
Xtrabackup版本: 2.4.10

Xtrabackup简介
xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份形式。

xtrabackup包含两个主要的工具,即xtrabackup和innobackupex,二者区别如下:

(1)xtrabackup只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表;

(2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。还有就是myisam不支持增量备份。

安装Xtrabackup

#创建备份目录,下载完整的包
备注:2.3.3之后不备份死锁,如果数据库是mysql 5.7之后的
必须要装2.4.4才可以用,可以向下兼容。
步骤一.   mkdir -p /xtrabackup/full/                                          
         cd /xtrabackup/
         wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
步骤二.#配置安装环境
        yum install perl-DBI
        yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
        yum -y install perl-Digest-MD5
步骤三. #安装
        rpm -ivh percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
步骤四. #查看安装好的版本
       xtrabackup -version
       可以看到:xtrabackup version 2.4.10 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3198bce)

全量备份

1.备份

#创建备份目录
mkdir -p /xtrabackup/full/
给予Mysql的目录权限
chown mysql.mysql  /xtrabackup/full  -R
 #进行备份
innobackupex --user=数据库账号 --password='数据库密码' /xtrabackup/full
#进入备份目录进行查看
假设备份出的全量备份包为 2020-1-0    #最好对包进行压缩,后期恢复时会对备份包进行一个破坏
[root@localhost full]# ll<
### Percona XtraBackup 进行增量差异备份 #### 完全备份基础 为了执行增量差异备份,首先需要有一个完整的备份作为基线。这可以通过 `innobackupex` 或者更现代的 `xtrabackup` 工具完成[^1]。 ```bash xtrabackup --target-dir=/data/backups/full_backup/ ``` 此命令创建了一个位于 `/data/backups/full_backup/` 的完整备份副本。 #### 执行增量备份 一旦有了初始的完全备份,就可以基于这个备份来进行增量备份操作: ```bash xtrabackup --backup \ --incremental-basedir=/data/backups/full_backup/ \ --target-dir=/data/backups/incr_backup_1/ ``` 上述命令会将自上次完全备份以来发生更改的数据页复制到指定的目标目录中。每次新的增量备份都需要指向前一次备份的位置通过参数 `--incremental-basedir` 来设置。 #### 实施差异备份 对于差异备份,则是从最近的一次完全备份开始记录变化,而不是像增量那样依赖于前一周期的结果: ```bash xtrabackup --backup \ --incremental-basedir=/data/backups/full_backup/ \ --target-dir=/data/backups/diff_backup/ \ --incremental-lsn=START_LSN_VALUE ``` 需要注意的是,在实际应用中,通常不需要手动指定 LSN (Log Sequence Number),因为当使用 `--incremental-basedir` 参数时,XtraBackup 能够自动计算所需的LSN值[^2]。 #### 准备恢复环境 无论是哪种类型的备份,在准备用于恢复之前都需先运行 prepare 步骤以确保数据一致性并重放事务日志中的未提交事务: ```bash xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full_backup/ # 对于增量备份也需要依次对其做准备工作 xtrabackup --prepare --incremental-dir=/data/backups/incr_backup_1/ --target-dir=/data/backups/full_backup/ ``` 最后一步是针对最终状态下的备份集再次调用 `--prepare` 选项而不带 `--apply-log-only` ,以便使整个备份链处于可恢复的状态。 #### 清理旧备份 定期清理不再需要的老版本备份有助于节省磁盘空间。可以利用简单的 shell 命令删除过期备份文件夹的内容[^3]: ```bash rm -rf /path/to/expired_backups/* ``` 但是请注意谨慎处理此类操作以免误删重要资料。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king config

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值