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;     #刷新授权表

这个用户需要 RELOADLOCK TABLESREPLICATION CLIENTPROCESS 权限。

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 数据库备份和恢复。

posted @ 2025-04-01 11:18  逃离这世界~  阅读(154)  评论(0)    收藏  举报