
好的,很高兴为您详细解读 Oracle 19C 数据库中至关重要的 V$RMAN_CONFIGURATION 动态性能视图。此视图是管理 RMAN 备份配置的核心。
⚙️ Oracle V$RMAN_CONFIGURATION 动态性能视图详解
1️⃣ 视图概述与作用
V$RMAN_CONFIGURATION 视图的主要作用是持久化存储和显示通过 CONFIGURE 命令设置的 RMAN 永久性配置参数。这些配置会覆盖 RMAN 的默认行为,并在后续的所有 RMAN 会话中生效,直到被再次修改或清除。它本质上是 RMAN 的“配置文件”的内存映射,为 DBA 提供了一个快速查看当前备份环境设置的窗口。
2️⃣ 主要应用场景
- 备份环境审计与核查:在执行关键备份或恢复任务前,快速检查当前 RMAN 的各项配置(如通道并行度、备份目标、压缩、加密等)是否正确,是否符合公司备份策略。
- 故障排除:当备份或恢复作业出现意外行为时,检查配置是否为根本原因(例如,错误的并行度设置导致资源争用,错误的压缩算法导致性能问题)。
- 环境一致性检查:在多个数据库或数据中心之间,确保备份配置的标准化和一致性。
- 生成运维报告:为数据库运维报告提供当前的备份配置详情。
3️⃣ 字段详解
V$RMAN_CONFIGURATION 视图的结构非常清晰,包含的字段数量不多但至关重要。
| 字段名称 | 数据类型 | 含义与说明 | 示例值 |
|---|---|---|---|
| CONF# | NUMBER | 配置行的唯一序号标识符。由 Oracle 内部生成,用于唯一标识一条配置记录。 | 1, 2, 3… |
| NAME | VARCHAR2(130) | 配置参数的名称。该名称直接对应于 RMAN> CONFIGURE 命令中可以设置的参数名。 | RETENTION POLICY, BACKUP OPTIMIZATION, DEFAULT DEVICE TYPE… |
| VALUE | VARCHAR2(2000) | 为该配置参数设置的值。如果某个参数已被配置,其值将显示在这里。如果某个参数存在但未被用户配置(即使用默认值),则该行不会出现在本视图中。VALUE 为 NULL 表示该配置已被 CLEAR 命令恢复为默认值。 | 'CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS' |
| SYS_CONFIG | VARCHAR2(5) | 指示该配置是否为系统默认配置。如果值是 TRUE,则表示这是 Oracle 的默认配置。通常,用户使用 CONFIGURE... CLEAR 后,此字段会变为 TRUE,表示回归默认。 | TRUE (默认), FALSE (用户已配置) |
常见的配置项 (NAME) 举例:
RETENTION POLICY: 备份保留策略。BACKUP OPTIMIZATION: 备份优化开关。DEFAULT DEVICE TYPE: 默认设备类型(DISK 或 SBT_TAPE)。CONTROLFILE AUTOBACKUP: 控制文件自动备份开关。CONTROLFILE AUTOBACKUP FORMAT: 控制文件自动备份的格式。DEVICE TYPE ... PARALLELISM: 特定设备类型的并行度。DATAFILE BACKUP COPIES: 数据文件备份副本数。ARCHIVELOG BACKUP COPIES: 归档日志备份副本数。COMPRESSION ALGORITHM: 压缩算法。ENCRYPTION FOR DATABASE: 数据库加密配置。SNAPSHOT CONTROLFILE NAME: 快照控制文件路径。
4️⃣ 相关视图与基表
- 相关动态性能视图:
V$RMAN_BACKUP_JOB_DETAILS: 这是最重要的相关视图。此视图中的备份作业详细信息(如OUTPUT_DEVICE_TYPE,STATUS,OPTIMIZED)直接反映了V$RMAN_CONFIGURATION中配置的执行效果。V$ARCHIVED_LOG: 备份保留策略和归档日志删除策略与此视图密切相关。V$CONTROLFILE: 与控制文件自动备份配置相关。
- 底层基表与存储原理:
V$RMAN_CONFIGURATION和其他V$视图一样,其数据来源于内存中的内部X$表(如X$KRRMC_CONF,此为常见推测,确切名称可能因版本而异且未公开)。- 这些配置信息的持久化存储位置是数据库的控制文件(Control File)。当使用
CONFIGURE命令时,RMAN 会将会话中的配置更改永久性地写入控制文件。因此,即使数据库重启,这些配置信息也不会丢失。 - 如果使用了恢复目录(Recovery Catalog),配置信息也会被同步写入恢复目录中,从而实现多数据库配置的集中管理。
5️⃣ 底层原理与知识点
-
配置的层次结构: RMAN 配置遵循一个特定的优先级:
- RUN 块内的配置: 在
RUN { ... }命令块内使用ALLOCATE CHANNEL或SET命令进行的设置具有最高优先级,但仅对该RUN块有效。 - 永久配置(本视图): 使用
CONFIGURE命令设置的永久性配置,存储在控制文件中。 - 默认配置: 如果以上两项均未设置,则使用 Oracle 的内置默认值。
V$RMAN_CONFIGURATION视图展示的就是第2层——永久配置。
- RUN 块内的配置: 在
-
配置的存储与加载:
- 当 DBA 在 RMAN 中执行
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;时,该命令被解析执行。 - RMAN 服务器进程会向控制文件写入一条记录,表明
RETENTION POLICY参数的新值已被设置。 - 当查询
V$RMAN_CONFIGURATION视图时,Oracle 实例从内存中的结构(其源头是控制文件)读取这些信息并呈现出来。 - 每次启动 RMAN 并与目标数据库连接时,RMAN 会读取控制文件中的这些持久化配置,并以此作为本次会话的默认行为。
- 当 DBA 在 RMAN 中执行
-
与恢复目录的关系: 如果使用了恢复目录,
CONFIGURE命令会将配置信息同时发送到目标数据库的控制文件和恢复目录中。当使用RMAN> CONFIGURE ... FOR DB_UNIQUE_NAME ...为恢复目录中的特定数据库配置参数时,这些信息只存储在恢复目录中,而不会影响目标数据库本地控制文件中的配置。查询V$RMAN_CONFIGURATION视图仅显示来自本地控制文件的配置。要查看恢复目录中的配置,需连接到恢复目录并查询RC_RMAN_CONFIGURATION视图。 -
重要配置项解析:
- 保留策略(RETENTION POLICY): 决定备份何时可被废弃(OBSOLETE)。有两种模式:
REDUNDANCY(保留n份完整备份)和RECOVERY WINDOW(保证能恢复到最近n天内的任意时间点)。这是DELETE OBSOLETE命令的执行依据。 - 备份优化(BACKUP OPTIMIZATION): 如果开启 (
ON),RMAN 会跳过那些在相同设备上、根据保留策略被视为冗余的 identical 文件,从而节省时间和空间。 - 控制文件自动备份(CONTROLFILE AUTOBACKUP): 强烈建议设置为
ON。这会在每次备份或数据库结构改变后,自动备份控制文件和服务器参数文件(spfile)。这在控制文件全部丢失的场景下是恢复的救命稻草。
- 保留策略(RETENTION POLICY): 决定备份何时可被废弃(OBSOLETE)。有两种模式:
6️⃣ 常用查询SQL示例
-
查看所有当前生效的永久性配置
SELECT CONF#, NAME, VALUE FROM V$RMAN_CONFIGURATION ORDER BY NAME; -
检查关键备份配置(精简版)
SELECT NAME, VALUE FROM V$RMAN_CONFIGURATION WHERE NAME IN ( 'RETENTION POLICY', 'DEFAULT DEVICE TYPE', 'CONTROLFILE AUTOBACKUP', 'BACKUP OPTIMIZATION', 'DEVICE TYPE DISK PARALLELISM' ); -
查询配置并与默认值对比 (此查询逻辑复杂,通常直接在RMAN中用
SHOW ALL;更直观)-- 此查询仅供参考,并非标准做法。 -- 标准做法是进入RMAN执行 `SHOW ALL;` 或 `SHOW <parameter>;` -
在RMAN中修改配置(这不是SQL,是RMAN命令)
-- 连接到RMAN -- $ rman target / -- 设置保留策略为恢复窗口7天 RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; -- 开启控制文件自动备份并设置格式 RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F'; -- 将压缩算法设置为LOW (需要ACO许可) RMAN> CONFIGURE COMPRESSION ALGORITHM 'LOW'; -- 将某个配置恢复为默认值 RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM CLEAR; -- 显示所有当前配置 RMAN> SHOW ALL;
7️⃣ 重要注意事项
- 权限要求: 查询
V$RMAN_CONFIGURATION需要具有SYSDBA或SELECT_CATALOG_ROLE权限。 - 配置的生效范围: 使用
CONFIGURE命令进行的配置是全局且持久化的,会影响所有后续的 RMAN 会话。而RUN块内的SET和ALLOCATE CHANNEL命令是临时且局部的。 - 控制文件的重要性: 由于配置信息存储在控制文件中,保护好控制文件以及启用控制文件自动备份至关重要。一旦控制文件全部丢失且无备份,所有永久配置也将丢失(尽管可以通过重建控制文件解决,但过程麻烦)。
- 默认行为: 如果
V$RMAN_CONFIGURATION视图中没有某参数的记录,意味着该参数正在使用 Oracle 的默认值。使用SHOW ALL;命令可以同时看到所有参数的当前有效值(包括默认值)。
欢迎关注我的公众号《IT小Chen》
3771

被折叠的 条评论
为什么被折叠?



