物理热备是什么
XtraBackup 是开源的物理备份工具:直接拷贝 InnoDB 数据文件,并在拷贝过程中持续追加重做日志,因此备份期间不阻塞业务写入,恢复速度也远快于逻辑导出。它把流程拆成三步——备份、准备、拷回,三步缺一不可。要留意它只对事务引擎友好,库里若还有非事务表,备份时会有短暂锁表。
基本信息
| 定位 | InnoDB 物理热备,开源免费 |
|---|---|
| 流程 | 备份 → 准备 → 拷回,三步 |
| 优势 | 大库备份与恢复远快于逻辑导出 |
| 局限 | 非事务引擎表在备份时会短暂锁表 |
| 前提 | 服务端数据目录可访问,备份账号有相应权限 |
| 产物 | 崩溃一致性的数据文件,需准备后才可用 |
典型使用场景
- 大中数据量实例的例行备份
- 全量备份加增量备份组合,缩短备份窗口
- 主从重建:在从库上做物理备份而不影响主库
- 机房迁移与机型更换:整实例物理搬迁
- 备份恢复演练:验证恢复耗时是否满足恢复目标
最短用法
最短用法
xtrabackup --backup --user=backup --password='***' \
--target-dir=/data/backup/full_$(date +%F) # 备份到带日期的目录
ls -lh /data/backup/full_$(date +%F) # 核对产物文件与日志
# 备份完成后必须执行准备步骤,产物才可用于恢复
xtrabackup --prepare --target-dir=/data/backup/full_$(date +%F)三阶段要点
| 阶段 | 做什么 | 注意 |
|---|---|---|
| 备份 | 拷贝数据文件并追加重做日志 | 备份期间有改表会与日志回溯冲突 |
| 准备 | 重做日志回放与一致性校验 | 必须在恢复前完成 |
| 拷回 | 把准备后的文件放回数据目录 | 数据目录需先清空且权限正确 |
| 增量 | 基于前一次备份只拷变化页 | 恢复时要按顺序先合并全量 |
| 权限 | 备份账号与目录权限 | 恢复后属主必须改回服务账号 |
备份产物是崩溃一致性的数据文件,直接拿去启动实例可能失败,必须先执行准备步骤把重做日志回放完。
备份期间出现改表操作会与重做日志回溯冲突,恢复准备阶段直接报错;因此备份窗口要避开结构变更,或提前把变更排到备份之后再执行。
物理备份检查清单
- 确认备份账号权限与数据目录可访问
- 备份窗口避开结构变更与业务高峰
- 备份完成后立即执行准备步骤
- 核对产物大小与备份日志有无报错
- 定期演练恢复到隔离实例
- 备份文件异地留存,避免与数据同盘
物理备份与逻辑备份不是二选一:物理备份恢复快、适合大库,逻辑备份便于跨版本与局部还原,成熟方案通常两者都有,各有各的使用场景。