部分备份是什么
Percona XtraBackup 默认做整实例物理热备,用 --databases 或 --tables 可以只备份指定库表,适合单库迁移、给核心业务额外加一份备份等场景。它依然是物理备份:拷贝的是数据文件页,不是 SQL 文本,恢复要经过 prepare 阶段。注意部分备份在增量与 prepare 上有额外限制,方案设计前务必对照官方文档确认当前版本支持范围。
基本信息
| 按库备份 | --databases="appdb"(可多库逗号分隔) |
|---|---|
| 按表备份 | --tables="appdb.orders" |
| 必须参数 | --backup --target-dir=/路径 与备份账号凭据 |
| prepare | 备份后必须 --prepare 才能用于恢复 |
| 单表恢复 | prepare 时加 --export,生成 .cfg/.exp 供 IMPORT TABLESPACE 使用 |
典型使用场景
- 单库迁移:把某个业务库整体搬到新实例,避免搬整实例的多余数据
- 核心业务加备:在全备之外额外单独备份关键库,恢复时不必还原无关数据
- 单表恢复演练:小表数据损坏时用部分备份加 --export 走 IMPORT TABLESPACE 快速回补
- 容量受限环境:备份存储吃紧时只保留关键库的物理备份
- 合规留存:对特定业务表做长期留存,缩小备份体积
单库备份与恢复准备
单库备份与恢复准备
# 只备份 appdb 这个库
xtrabackup --backup --databases="appdb" \
--target-dir=/data/backup/appdb_only \
--user=xtrabackup --password='***'
# 备份完成后再执行 prepare,未 prepare 的备份不可直接用
xtrabackup --prepare --target-dir=/data/backup/appdb_only
# 若要做单表恢复,prepare 时加 --export 生成表结构描述文件
xtrabackup --prepare --export --target-dir=/data/backup/appdb_only
# 查看备份窗口信息,确认备份类型是一致性全备
cat /data/backup/appdb_only/xtrabackup_checkpoints参数读法
| 参数 | 含义 | 使用注意 |
|---|---|---|
| --databases | 按库(可含 table 形式)筛选备份对象 | 写成 --database 是错的,参数名不可想当然 |
| --tables | 按表筛选,格式为 库.表 | 与 --databases 组合使用时以实际文档为准 |
| --prepare | 把备份文件恢复成一致状态 | 缺这一步恢复必然失败 |
| --export | 生成可 IMPORT TABLESPACE 的元数据文件 | 仅单表恢复需要 |
| --target-dir | 备份落盘目录 | 目录内容会被 XtraBackup 使用,不要混放其他文件 |
部分备份只覆盖被选中的对象,恢复时会得到「只有这些库表」的实例状态。如果你需要整个实例可恢复,仍然要有全备,两者是互补关系而不是替代关系。
IMPORT TABLESPACE 要求目标表结构与备份时的表结构严格一致:列定义、字符集、页大小不一致都会失败,恢复前先比对 SHOW CREATE TABLE。