面试宝典:介绍下Oracle数据库动态性能视图 V$RMAN_CONFIGURATION

在这里插入图片描述
好的,很高兴为您详细解读 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
NAMEVARCHAR2(130)配置参数的名称。该名称直接对应于 RMAN> CONFIGURE 命令中可以设置的参数名。RETENTION POLICY, BACKUP OPTIMIZATION, DEFAULT DEVICE TYPE
VALUEVARCHAR2(2000)为该配置参数设置的值。如果某个参数已被配置,其值将显示在这里。如果某个参数存在但未被用户配置(即使用默认值),则该行不会出现在本视图中。VALUENULL 表示该配置已被 CLEAR 命令恢复为默认值。'CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS'
SYS_CONFIGVARCHAR2(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 配置遵循一个特定的优先级:

    1. RUN 块内的配置: 在 RUN { ... } 命令块内使用 ALLOCATE CHANNELSET 命令进行的设置具有最高优先级,但仅对该 RUN 块有效。
    2. 永久配置(本视图): 使用 CONFIGURE 命令设置的永久性配置,存储在控制文件中。
    3. 默认配置: 如果以上两项均未设置,则使用 Oracle 的内置默认值。
      V$RMAN_CONFIGURATION 视图展示的就是第2层——永久配置。
  • 配置的存储与加载

    1. 当 DBA 在 RMAN 中执行 CONFIGURE RETENTION POLICY TO REDUNDANCY 2; 时,该命令被解析执行。
    2. RMAN 服务器进程会向控制文件写入一条记录,表明 RETENTION POLICY 参数的新值已被设置。
    3. 当查询 V$RMAN_CONFIGURATION 视图时,Oracle 实例从内存中的结构(其源头是控制文件)读取这些信息并呈现出来。
    4. 每次启动 RMAN 并与目标数据库连接时,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)。这在控制文件全部丢失的场景下是恢复的救命稻草。

6️⃣ 常用查询SQL示例

  1. 查看所有当前生效的永久性配置

    SELECT CONF#,
           NAME,
           VALUE
    FROM   V$RMAN_CONFIGURATION
    ORDER BY NAME;
    
  2. 检查关键备份配置(精简版)

    SELECT NAME, VALUE
    FROM   V$RMAN_CONFIGURATION
    WHERE  NAME IN (
                    'RETENTION POLICY',
                    'DEFAULT DEVICE TYPE',
                    'CONTROLFILE AUTOBACKUP',
                    'BACKUP OPTIMIZATION',
                    'DEVICE TYPE DISK PARALLELISM'
                   );
    
  3. 查询配置并与默认值对比 (此查询逻辑复杂,通常直接在RMAN中用SHOW ALL;更直观)

    -- 此查询仅供参考,并非标准做法。
    -- 标准做法是进入RMAN执行 `SHOW ALL;` 或 `SHOW <parameter>;`
    
  4. 在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 需要具有 SYSDBASELECT_CATALOG_ROLE 权限。
  • 配置的生效范围: 使用 CONFIGURE 命令进行的配置是全局且持久化的,会影响所有后续的 RMAN 会话。而 RUN 块内的 SETALLOCATE CHANNEL 命令是临时且局部的。
  • 控制文件的重要性: 由于配置信息存储在控制文件中,保护好控制文件以及启用控制文件自动备份至关重要。一旦控制文件全部丢失且无备份,所有永久配置也将丢失(尽管可以通过重建控制文件解决,但过程麻烦)。
  • 默认行为: 如果 V$RMAN_CONFIGURATION 视图中没有某参数的记录,意味着该参数正在使用 Oracle 的默认值。使用 SHOW ALL; 命令可以同时看到所有参数的当前有效值(包括默认值)。

欢迎关注我的公众号《IT小Chen

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值