4. 物理备份与逻辑备份的选型

在数据库备份体系中,物理备份与逻辑备份是两条最根本的技术路线。它们并非“谁更好”的关系,而是面向不同目标、不同约束的两种工具。选型的本质,是把数据库规模、恢复速度要求、跨版本迁移需求这三个核心变量,映射到备份方式的能力边界上。理解这一点,才能避免“用逻辑备份去救 TB 级库”或“用物理备份去做跨大版本迁移”这类典型误用。

一、两种备份的本质差异

物理备份直接复制数据库的物理文件——数据文件、控制文件、重做日志、归档日志等。它不关心文件内部存的是什么表、什么行,只保证这些字节被完整、一致地保存下来。因此物理备份的粒度是“整个数据库实例或表空间”,恢复时也是整块还原,速度快、保真度高。典型代表是 Oracle 的 RMAN 备份、MySQL 的 XtraBackup、PostgreSQL 的 pg_basebackup。

逻辑备份则通过数据库自身的导出接口,把数据以 SQL 语句或中间格式(如 CSV、自定义二进制)逐表逐行读出。它理解表、索引、约束、触发器等逻辑对象,因此可以做到表级、schema 级甚至行级的选择性备份。典型代表是 mysqldump、pg_dump、Oracle Data Pump(expdp/impdp)。逻辑备份的产物是“可读的、可编辑的、可跨平台迁移的”,但代价是导出和导入都要经过 SQL 引擎解析执行,速度慢、CPU 与 I/O 开销大。

运行中的数据库 数据文件 · 日志 · 控制文件 物理备份 复制数据文件 / 日志 / 控制文件 粒度:实例 / 表空间 工具:RMAN · XtraBackup · pg_basebackup 产物:二进制文件集 逻辑备份 通过 SQL 引擎逐表逐行导出 粒度:表 / schema / 行 工具:mysqldump · pg_dump · expdp 产物:SQL / CSV / 自定义格式 选型三维度对比 数据库规模 小库(<50GB):逻辑备份灵活 大库(>500GB):物理备份必需 超大库:物理全备+增量+逻辑补充 恢复速度 物理:直接还原文件,分钟级 逻辑:重放 SQL,小时级 RTO 严苛 → 物理优先 跨版本迁移 物理:版本/平台强绑定 逻辑:SQL 层兼容,可跨版本 大版本升级 → 逻辑导出导入

二、三个选型维度的具体判断

数据库规模是最先要看的指标。逻辑备份的耗时与数据量近似线性增长,且导出时需要在数据库内产生大量读操作,对生产库有压力。经验上,单库小于 50GB 时,逻辑备份完全可行,甚至更方便;50GB 到 500GB 之间,逻辑备份的导出时间可能达到数小时,恢复时间更长,需要谨慎评估;超过 500GB,逻辑备份往往不再现实,必须采用物理备份。对于 TB 级以上的库,通常采用“物理全备 + 物理增量 + 归档日志”的组合,逻辑备份仅用于个别小表的补充导出。

恢复速度直接对应 RTO(恢复时间目标)。物理备份恢复的本质是文件拷贝加日志重放,一个 1TB 的库用物理方式恢复可能只需 30 到 60 分钟;而同样 1TB 用逻辑备份恢复,需要逐条执行 INSERT 语句、重建索引、校验约束,耗时可能达到 10 小时以上。如果业务要求 RTO 在 1 小时以内,物理备份几乎是唯一选择。逻辑备份更适合 RTO 宽松、以数据找回为目标的场景,比如误删一张表后只恢复该表。

跨版本迁移是逻辑备份的独特优势。物理备份的文件格式与数据库版本、操作系统平台、字节序强绑定,Oracle 12c 的数据文件不能直接挂到 19c 上,MySQL 5.7 的 InnoDB 文件也不能直接给 8.0 使用。逻辑备份导出的是 SQL 语句或平台无关的中间格式,可以在不同版本、不同操作系统之间迁移。因此,当需求是“把 5.7 升级到 8.0”或“从自建机房迁移到云数据库”时,逻辑备份是更稳妥的路径。

三、选型决策表

把上述判断整理成一张可执行的决策表,便于在实际项目中快速定位:

场景特征 推荐方式 理由
库 < 50GB,RTO 宽松,需单表恢复 逻辑备份 灵活、可读、可选择性恢复
库 > 500GB,RTO < 1 小时 物理备份 速度快、保真度高
跨大版本升级或跨平台迁移 逻辑备份 SQL 层兼容,不受文件格式限制
TB 级库日常备份 物理全备 + 增量 + 归档 兼顾速度与存储成本
核心库,RTO 与 RPO 都严苛 物理备份 + 逻辑补充 物理保恢复速度,逻辑保单表找回

四、混合策略才是常态

实际生产环境中,很少只选一种。更常见的做法是:以物理备份作为主力,保证整库可快速恢复;同时每周或每天对关键小表做一次逻辑导出,用于应对误删、误更新等逻辑错误。物理备份解决“库没了怎么快速回来”,逻辑备份解决“数据错了怎么精准找回”。两者互补,而不是互斥。

选型时先问三个问题:库有多大?能容忍多久恢复?是否需要跨版本?三个答案基本就能锁定方向。如果答案互相冲突,优先满足 RTO 和规模约束,再用逻辑备份做补充。
不要用逻辑备份去备份 TB 级生产库,导出窗口可能覆盖整个业务低峰期仍无法完成;也不要用物理备份去做跨大版本迁移,文件格式不兼容会导致恢复失败。选型错误带来的代价,往往在真正需要恢复时才暴露。

总结来说,物理备份与逻辑备份的选型不是一道单选题,而是一道基于规模、速度、迁移需求的条件判断题。小库、慢恢复、要迁移,选逻辑;大库、快恢复、同版本,选物理;核心系统,两者并用。把这三个维度想清楚,备份策略就不会跑偏。