4. 备份集与镜像副本

RMAN 产生的备份在物理形态上分为两大类:备份集(Backup Set)与镜像副本(Image Copy)。理解这两者的差异,是后续配置压缩、加密、标记与保留策略的前提。备份集是 RMAN 的默认输出格式,它把数据文件、控制文件、归档日志等打包成专有格式的备份片(Backup Piece),只有 RMAN 能读写;镜像副本则是操作系统层面的文件级复制,与源文件结构一致,可以直接用操作系统命令查看、复制,也可以被 RMAN 直接识别为可用备份。

两者的核心区别体现在恢复路径与空间占用上。备份集通常体积更小、支持压缩与加密,恢复时需要 RMAN 先还原再恢复;镜像副本体积与源文件接近,但恢复时可以直接切换(switch)到副本,速度更快,常用于对恢复时间要求苛刻的场景。一个常见的工程做法是:日常增量备份用备份集,关键数据文件在重大变更前额外做一次镜像副本。

备份集 vs 镜像副本:格式、压缩、加密与保留策略关系 源数据库文件 数据文件 / 控制文件 归档日志 / SPFILE 备份集 Backup Set 专有格式,仅 RMAN 可读写 支持压缩 / 加密 / 多路复用 恢复:restore → recover 体积小,适合日常增量 镜像副本 Image Copy 文件级复制,OS 可直接访问 不压缩,体积接近源文件 恢复:switch 直接切换 恢复快,适合关键变更前 压缩 Compression BASIC / MEDIUM / HIGH / LOW 加密 Encryption 透明 / 密码 / 双模式 标记 Tag TAG='BEFORE_UPGRADE' 保留策略 Retention Policy REDUNDANCY 2:保留最近 2 份可用备份 RECOVERY WINDOW OF 7 DAYS:保证可恢复到 7 天内任意点 CONFIGURE ARCHIVELOG DELETION POLICY 控制归档删除

压缩:在空间与 CPU 之间取舍

RMAN 压缩通过 AS COMPRESSED BACKUPSET 子句启用。传统 BASIC 压缩算法在备份时消耗较多 CPU,但压缩比可观;从 11g 起引入的 MEDIUM、HIGH、LOW 属于高级压缩,需要额外许可,但压缩效率更高。压缩只对备份集有效,镜像副本本身不做压缩。

-- 备份时启用压缩
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

-- 配置默认压缩算法
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';

-- 查看当前压缩配置
SHOW ALL;

选择压缩级别时,应结合 CPU 空闲程度与备份窗口。若备份窗口紧张而 CPU 富余,可选 LOW 或 MEDIUM;若存储空间极度受限,可选 HIGH,但要接受更长的备份时间。压缩后的备份集在恢复时会被自动解压,无需额外操作。

加密:保护备份介质上的数据

备份加密有三种模式:透明加密(Transparent)依赖数据库钱包,备份与恢复无需人工输入密码;密码加密(Password)在备份和恢复时都需要提供密码;双模式(Dual-mode)同时支持钱包和密码,兼顾自动化与可移植性。加密同样只作用于备份集。

-- 配置透明加密(需先配置钱包)
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES128';

-- 使用密码加密备份
BACKUP AS COMPRESSED BACKUPSET
  DATABASE PLUS ARCHIVELOG
  SET ENCRYPTION ON IDENTIFIED BY "Rman#2024" ONLY;

-- 恢复时提供密码
SET DECRYPTION IDENTIFIED BY "Rman#2024";
RESTORE DATABASE;
加密与压缩可以叠加使用,但顺序上 RMAN 会先压缩再加密。若钱包丢失且未使用密码加密,备份将无法恢复,因此生产环境务必同时保留钱包备份与密码记录。

标记:让备份可被精准定位

标记(TAG)是给备份集或镜像副本附加的字符串标识,便于在恢复时精确选择。默认标记为 TAG20240101T120000 这类时间戳格式,可读性差。建议在关键操作前使用有意义的标记,例如升级前备份使用 TAG='BEFORE_UPGRADE',恢复时即可用 RESTORE DATABASE FROM TAG 'BEFORE_UPGRADE' 直接定位。

-- 带标记的备份
BACKUP AS COMPRESSED BACKUPSET
  DATABASE TAG 'BEFORE_UPGRADE';

-- 按标记恢复
RESTORE DATABASE FROM TAG 'BEFORE_UPGRADE';

-- 查看备份标记
LIST BACKUP SUMMARY;
LIST BACKUP TAG 'BEFORE_UPGRADE';

保留策略:决定备份能留多久

保留策略控制 RMAN 何时将备份标记为废弃(OBSOLETE)。两种常用方式:基于冗余度(REDUNDANCY n)保留最近 n 份可用备份;基于恢复窗口(RECOVERY WINDOW OF n DAYS)保证可以恢复到 n 天内的任意时间点。两者只能选其一作为数据库级策略。

-- 基于冗余度
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

-- 基于恢复窗口
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

-- 归档日志删除策略:已备份到磁盘且已传到异地才可删
CONFIGURE ARCHIVELOG DELETION POLICY TO
  BACKED UP 2 TIMES TO DISK
  BACKED UP 1 TIMES TO DEVICE TYPE sbt;

-- 查看废弃备份(不删除)
REPORT OBSOLETE;

-- 删除废弃备份
DELETE OBSOLETE;

保留策略只定义“哪些算废弃”,真正删除需要执行 DELETE OBSOLETE 或 DELETE EXPIRED。若配置了恢复窗口,RMAN 会确保窗口内所需的归档日志不被删除,即使它们已被备份多次。归档日志删除策略则进一步约束归档何时可以从磁盘清除,避免出现“备份还在但归档已丢”的恢复断链。

建议将保留策略与归档删除策略配合使用:先用 REPORT OBSOLETE 观察将被删除的对象,确认无误后再执行 DELETE OBSOLETE,并定期用 CROSSCHECK 校验备份与目录记录的一致性。

配置检查清单

配置项示例命令作用
压缩算法CONFIGURE COMPRESSION ALGORITHM 'MEDIUM'控制备份集压缩级别
加密模式CONFIGURE ENCRYPTION FOR DATABASE ON启用透明加密
保留策略CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS定义可恢复时间范围
归档删除策略CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK约束归档删除条件
标记BACKUP ... TAG 'BEFORE_UPGRADE'便于精准定位备份

完成上述配置后,可用 SHOW ALL 一次性查看所有持久化配置,确认压缩、加密、保留策略与归档删除策略均已按预期生效。这些配置会写入控制文件,并在每次 RMAN 会话中自动加载,是备份恢复工程中需要长期维护的基础参数。