逻辑备份与物理备份是什么
逻辑备份把数据读出来写成 SQL 语句或自定义格式的数据流,产物与存储结构无关;物理备份按原样复制数据文件、页与 redo/归档日志,产物就是数据库的物理副本。前者灵活、可跨版本与跨平台,后者恢复快、体积接近原始数据。选哪一种取决于恢复速度要求、迁移需求与单表恢复的频率。
基本信息
| 逻辑备份典型工具 | mysqldump、MySQL Shell util.dumpInstance、pg_dump、expdp |
|---|---|
| 物理备份典型工具 | XtraBackup、pg_basebackup、存储或云盘快照 |
| 决定因素 | 恢复速度要求、是否跨版本迁移、是否需要单表恢复、数据规模 |
| 常见组合 | 物理备份做日常打底 + 逻辑备份做迁移与审计,两者并存 |
典型使用场景
- 大库快速恢复:物理备份回灌数据目录,速度通常明显快于逐语句回放
- 跨版本升级:逻辑导出在新版本实例上重建,绕开文件格式差异
- 单表或单库恢复:逻辑备份可按表定位,物理备份往往要整实例恢复
- 跨云迁移:逻辑副本不受云盘与文件系统差异影响,落地更灵活
- 审计与留档:逻辑副本可直接查看内容,便于比对与脱敏
两种方式的典型命令
两种方式的典型命令
# 逻辑备份:单事务一致性导出,产物是 SQL 流
mysqldump --single-transaction --routines --events appdb | gzip > /backup/appdb.sql.gz
# 逻辑恢复:按库定位,可只恢复单表
gunzip -c /backup/appdb.sql.gz | mysql appdb
# 物理备份:需 prepare 后才能用于恢复
xtrabackup --backup --target-dir=/backup/xtra/full
xtrabackup --prepare --target-dir=/backup/xtra/full
# 物理恢复:回灌数据目录后修属主再起实例
xtrabackup --copy-back --target-dir=/backup/xtra/full关键差异
| 维度 | 逻辑备份 | 物理备份 |
|---|---|---|
| 产物 | SQL 或自定义格式数据流 | 数据文件、页与 redo / 归档日志 |
| 恢复速度 | 逐语句回放,通常较慢 | 文件级回灌,通常较快 |
| 跨版本迁移 | 多数场景可行 | 与数据库大版本、工具版本强绑定 |
| 体积 | 压缩后相对小 | 接近原数据量(可压缩或去重) |
| 单表恢复 | 可选择单表或单据导出导入 | 通常需整实例恢复后再导出 |
两者不互斥:物理备份做日常大备份打底,逻辑备份做迁移、审计与单表级恢复,是最常见的组合方式。
逻辑备份在大库上受限于回放速度:几 TB 的库用逻辑方式恢复可能远超 RTO,规模与恢复目标要先算过再用。