4. 备份集与镜像副本
RMAN 产生的备份在物理形态上分为两大类:备份集(Backup Set)与镜像副本(Image Copy)。理解这两者的差异,是后续配置压缩、加密、标记与保留策略的前提。备份集是 RMAN 的默认输出格式,它把数据文件、控制文件、归档日志等打包成专有格式的备份片(Backup Piece),只有 RMAN 能读写;镜像副本则是操作系统层面的文件级复制,与源文件结构一致,可以直接用操作系统命令查看、复制,也可以被 RMAN 直接识别为可用备份。
两者的核心区别体现在恢复路径与空间占用上。备份集通常体积更小、支持压缩与加密,恢复时需要 RMAN 先还原再恢复;镜像副本体积与源文件接近,但恢复时可以直接切换(switch)到副本,速度更快,常用于对恢复时间要求苛刻的场景。一个常见的工程做法是:日常增量备份用备份集,关键数据文件在重大变更前额外做一次镜像副本。
压缩:在空间与 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;
标记:让备份可被精准定位
标记(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 会话中自动加载,是备份恢复工程中需要长期维护的基础参数。