XtraBackup工具
XtraBackup工具
Percona XtraBackup 是一款开源的 MySQL 数据库备份工具,支持 InnoDB 和 XtraDB 存储引擎,能够进行热备份,即在数据库运行时进行备份,而无需停止数据库服务。以下是 XtraBackup 的常见用法:
1. 安装 XtraBackup
方式一:XtraBackup 可以通过 Percona 的官方仓库安装。以下是基于 Linux 的安装步骤:
# 添加 Percona 仓库
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# 安装 XtraBackup
sudo yum install percona-xtrabackup-80
方式二:二进制安装:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.35/binary/tarball/percona-xtrabackup-8.0.35-Linux-x86_64.glibc2.17.tar.gz
tar -xzf percona-xtrabackup-8.0.35-Linux-x86_64.glibc2.17.tar.gz
mv percona-xtrabackup-8.0.35-Linux-x86_64.glibc2.17 /usr/local/xtrabackup
echo "export PATH=\$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
source /etc/profile
安装完成后,可以使用 xtrabackup --version 检查版本信息。
2. 创建备份用户
为了安全起见,建议创建一个专门用于备份的 MySQL 用户,并授予必要的权限:
create user 'bkuser'@'localhost' identified by "bk123456"; #创建用户
flush privileges; #刷新授权表
revoke all privileges,grant option from 'bkuser'@'localhost'; #回收此用户所有权限
flush privileges; #刷新授权表
grant reload,lock tables,replication client,process ON *.* TO 'bkuser'@'localhost'; #授权刷新、锁表、查看服务器状态、进程的权限
flush privileges; #刷新授权表
这个用户需要 RELOAD、LOCK TABLES、REPLICATION CLIENT 和 PROCESS 权限。
3. 全量备份
全量备份会备份整个数据库实例的所有数据文件和日志文件。以下是全量备份的命令:
xtrabackup --defaults-file=/etc/my.cnf --user=bkuser --password=bk123456 --backup --target-dir=/data/backup/full
--defaults-file指定 MySQL 配置文件路径。--backup表示执行备份操作。--target-dir指定备份文件存放目录。
4. 增量备份
增量备份基于上一次备份的 LSN(日志序列号),仅备份自上次备份以来的更改。以下是增量备份的命令:
xtrabackup --defaults-file=/etc/my.cnf --user=bkuser --password=bk123456 --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/full
--incremental-basedir指定上一次备份的目录。
5. 备份准备
在恢复备份之前,需要先进行备份准备(应用重做日志)。以下是准备全量备份的命令:
xtrabackup --prepare --target-dir=/data/backup/full
如果是增量备份,需要先将增量备份应用到全量备份中:
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/full --incremental-dir=/data/backup/inc1
然后对最终的备份目录进行准备:
xtrabackup --prepare --target-dir=/data/backup/full
--apply-log-only 表示在准备阶段仅应用日志,不推进 LSN。
6. 恢复备份
恢复备份时,可以使用 --copy-back 或 --move-back 将备份数据恢复到 MySQL 的数据目录:
xtrabackup --copy-back --target-dir=/data/backup/full
--copy-back会将备份文件复制到 MySQL 数据目录。--move-back会将备份文件移动到 MySQL 数据目录,并删除备份文件。
7. 备份压缩
XtraBackup 支持在备份过程中对数据进行压缩,以节省存储空间。以下是压缩备份的命令:
xtrabackup --defaults-file=/etc/my.cnf --user=bkuser --password=bk123456 --backup --target-dir=/data/backup/full --compress --compress-threads=4
--compress启用压缩。--compress-threads指定压缩线程数。
8. 备份验证
XtraBackup 提供了备份验证功能,可以检查备份文件的完整性和一致性:
xtrabackup --backup --target-dir=/data/backup/full --validate
如果备份文件完整且一致,命令将成功完成。
9. 备份策略
- 全量备份:建议每周进行一次全量备份。
- 增量备份:每天或每小时进行增量备份,具体频率取决于数据变化频率。
- 备份验证:定期验证备份文件的完整性和可恢复性。
通过合理使用 XtraBackup,可以实现高效、可靠的 MySQL 数据库备份和恢复。
浙公网安备 33010602011771号