概述
- XtraBackup 是什么?是 MySQL 的一个备份工具
- 资料已经分类整理好:
https://pan.quark.cn/s/f52968c518d3
全量备份与恢复示例
1. 全量备份命令
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/full_backup_$(date +%Y%m%d)
2. 准备备份(应用日志)
xtrabackup --prepare --target-dir=/data/backups/full_backup_20230101
3. 恢复备份
sudo systemctl stop mysql
xtrabackup --copy-back --target-dir=/data/backups/full_backup_20230101
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mysql
增量备份流程
1. 创建基础全量备份
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/base_backup
2. 第一次增量备份
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/inc_backup_1 --incremental-basedir=/data/backups/base_backup
3. 第二次增量备份
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/inc_backup_2 --incremental-basedir=/data/backups/inc_backup_1
4. 合并并准备增量备份
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base_backup
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base_backup --incremental-dir=/data/backups/inc_backup_1
xtrabackup --prepare --target-dir=/data/backups/base_backup --incremental-dir=/data/backups/inc_backup_2
备份加密与压缩
加密备份示例
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/encrypted_backup --encrypt=AES256 --encrypt-key-file=/path/to/keyfile
压缩备份示例
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/compressed_backup --compress --compress-threads=4
备份验证与监控
检查备份完整性
xtrabackup --prepare --target-dir=/data/backups/full_backup_20230101 | grep "completed OK"
监控备份进度
xtrabackup --user=root --password=yourpassword --backup --target-dir=/data/backups/full_backup_$(date +%Y%m%d) --progress
常见选项说明
选项 | 描述 |
---|
--user | 数据库用户名 |
--password | 数据库密码 |
--backup | 执行备份操作 |
--target-dir | 备份文件存放目录 |
--prepare | 准备备份(应用事务日志) |
--copy-back | 将备份文件恢复到原始数据目录 |
--incremental | 执行增量备份 |
--compress | 压缩备份文件 |
--encrypt | 加密备份文件 |
--parallel | 指定并行线程数 |
--history | 记录备份历史到 xtrabackup_history 表 |
最佳实践
- 定期全量备份:每周执行一次全量备份
- 频繁增量备份:每小时执行一次增量备份
- 异地存储:将备份文件复制到远程服务器
- 自动化脚本:编写脚本实现备份、验证和清理的自动化
- 监控报警:设置备份失败的监控和报警机制