2. RMAN环境配置
RMAN 的环境配置决定了后续备份、恢复与演练能否稳定执行。它包含三条主线:目标数据库如何被 RMAN 识别与连接、恢复目录如何保存长期元数据、通道与持久化参数如何控制 I/O 与保留策略。三者关系可以用下面的结构图概括:目标库是操作对象,恢复目录是元数据仓库,通道与参数是执行约束。
目标数据库注册:让 RMAN 认识操作对象
RMAN 连接目标数据库有两种方式:一是使用操作系统认证直接连接本地实例,二是通过监听使用密码文件认证。生产环境通常使用后者,便于远程管理。连接前必须确认目标库处于 MOUNT 或 OPEN 状态,因为 RMAN 需要读取控制文件中的数据库标识信息。
export ORACLE_SID=orcl
rman target /
# 或远程连接
rman target sys/oracle@orcl
连接成功后,RMAN 会显示目标数据库的 DBID。DBID 是数据库的唯一标识,恢复目录正是通过 DBID 将备份记录与目标库关联。如果使用恢复目录,必须执行 REGISTER DATABASE 命令,将目标库的元数据写入目录。注册操作只需执行一次,重复注册会报错,但不会破坏已有记录。
RMAN> REGISTER DATABASE;
RMAN> LIST INCARNATION OF DATABASE;
注册完成后,恢复目录中会生成目标库的数据库记录、归档日志记录和备份集记录。可以通过查询 RC_DATABASE 视图确认注册状态。如果目标库曾经重建或 DBID 发生变化,需要重新注册并清理旧记录。
恢复目录创建:建立长期元数据仓库
恢复目录本身是一个独立的 Oracle 数据库 schema,通常部署在另一台服务器或同一实例的不同表空间上。创建步骤分为四步:创建表空间、创建 CATALOG 用户、授予权限、创建目录对象。
CREATE TABLESPACE rman_ts DATAFILE '/u01/app/oracle/oradata/rcat/rman01.dbf' SIZE 500M AUTOEXTEND ON;
CREATE USER rcat IDENTIFIED BY rcat DEFAULT TABLESPACE rman_ts QUOTA UNLIMITED ON rman_ts;
GRANT RECOVERY_CATALOG_OWNER TO rcat;
CONNECT rcat/rcat@rcat
CREATE CATALOG;
创建目录后,使用 RMAN 连接目标库和恢复目录,执行注册。恢复目录数据库建议开启归档模式并定期备份,因为目录本身丢失会导致所有备份历史不可查。如果目录不可用,RMAN 可以临时使用 NOCATALOG 模式,但长期管理仍应恢复目录。
rman target / catalog rcat/rcat@rcat
RMAN> REGISTER DATABASE;
RMAN> RESYNC CATALOG;
通道与持久化参数配置
通道决定了 RMAN 如何读写备份文件。默认情况下,RMAN 为每个目标库分配一个磁盘通道。如果备份到磁带或需要并行加速,必须显式配置通道。持久化参数使用 CONFIGURE 命令设置,保存在控制文件或恢复目录中,重启后依然生效。
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/backup/rman/%U';
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/backup/rman/%U';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/cf_%F';
并行度设置需要与 CPU 核数、磁盘 I/O 能力匹配。并行度过高会导致通道争用,反而降低备份速度。建议从 2 开始,逐步调整。FORMAT 中的 %U 是系统生成的唯一文件名,包含备份集编号和时间戳,避免文件覆盖。
保留策略决定备份文件何时可以被删除。RECOVERY WINDOW OF 7 DAYS 表示保留最近 7 天内恢复所需的全部备份。也可以使用 REDUNDANCY 指定保留份数。配置完成后,使用 SHOW ALL 查看所有持久化参数,确认无误后执行一次全库备份验证通道。
RMAN> SHOW ALL;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> LIST BACKUP SUMMARY;
配置验证与常见问题
配置完成后,按以下顺序验证:连接目标库和目录,执行 SHOW ALL 检查参数,执行 BACKUP DATABASE PLUS ARCHIVELOG 测试通道,执行 LIST BACKUP 确认备份集已记录,最后查询 RC_BACKUP_SET 视图确认目录同步。如果备份成功但目录无记录,说明 RESYNC CATALOG 未执行或目录连接失败。
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 目标库连接 | rman target / | 显示 DBID 和数据库名 |
| 目录注册 | LIST INCARNATION | 显示当前 incarnation 状态为 CURRENT |
| 通道配置 | SHOW CHANNEL | 显示已配置的通道和 FORMAT |
| 保留策略 | SHOW RETENTION POLICY | 显示恢复窗口或冗余度 |
| 备份验证 | BACKUP DATABASE | 完成且无 ORA- 错误 |
环境配置是 RMAN 工程化的起点。目标库注册解决“备份谁”,恢复目录解决“记录在哪”,通道与参数解决“怎么备、备多久”。三者配置正确后,后续的备份策略、恢复演练和故障排查才有可靠基础。