首页/数据/备份与容灾速查/逻辑备份与物理备份对比
数据库与云备份56 条

逻辑备份与物理备份对比

两类备份的取舍:逻辑备份是 SQL 或自定义格式数据流,灵活可跨版本;物理备份是数据文件或块级拷贝,恢复快但绑定版本与平台。

备份与容灾速查数据更新于 2026-10-13

逻辑备份与物理备份是什么

逻辑备份把数据读出来写成 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,规模与恢复目标要先算过再用。

易错点

  • 只做物理备份又要单表恢复:需先恢复整个实例再导出,恢复时间与影响面被放大
  • 只做逻辑备份却承诺分钟级 RTO:超大库回放时间超标,恢复目标无法兑现
  • 物理备份跨大版本使用:文件格式与工具版本不匹配,恢复过程直接失败
  • 逻辑导出未包含存储过程、触发器与事件:恢复后业务逻辑缺失,应用报错才发现

数据来源与参考

  • Percona XtraBackup 文档(备份类型对比)
  • MySQL 8.0 Reference Manual(备份方法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌