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

在这里插入图片描述
以下是针对 Oracle 19c 中 V$BACKUP_COPY_SUMMARY 动态性能视图的全面解析,涵盖作用、使用场景、字段含义、关联视图、底层原理及常用 SQL。


1. 视图作用

V$BACKUP_COPY_SUMMARY 提供通过 RMAN COPYBACKUP AS COPY 命令创建的映像副本的聚合统计信息,主要功能包括:

  • 📊 汇总映像副本的数量、大小及时间范围
  • ⏱️ 快速识别最后一次副本创建的时间
  • 🔍 按文件类型(数据文件/控制文件/归档日志)分类统计
  • 📉 分析副本存储消耗趋势
  • ✅ 验证副本备份策略执行情况

💡 核心价值:快速评估映像副本备份状态,无需遍历详细记录。


2. 使用场景

  • 备份策略审计:验证映像副本备份是否按计划执行
  • 存储容量规划:监控副本占用的磁盘空间
  • 恢复准备:确认可用副本的时间窗口
  • 性能优化:检测副本创建频率是否合理
  • 成本分析:比较副本与备份集的存储效率

3. 字段详解(Oracle 19c)

字段名数据类型描述
FILE_TYPEVARCHAR2(10)文件类型DATAFILE/CONTROLFILE/ARCHIVELOG
COPY_COUNTNUMBER当前可用的该类型副本总数
TOTAL_BYTESNUMBER该类型副本的总大小(字节)
MIN_COMPLETION_TIMEDATE最早副本的完成时间
MAX_COMPLETION_TIMEDATE关键:最新副本的完成时间
MIN_START_SCNNUMBER所有副本中最小起始 SCN
MAX_END_SCNNUMBER关键:所有副本中最大结束 SCN

📌 关键点

  • 仅统计 STATUS='A'(可用)的副本
  • 不包含已删除或过期的副本
  • MAX_COMPLETION_TIME 是监控备份时效性的核心指标

4. 相关视图与基表

关联视图
视图名称描述
V$BACKUP_COPY_DETAILS副本的详细记录(路径、SCN 等)
V$DATAFILE_COPY数据文件副本专用视图
V$BACKUP_FILES所有备份文件信息(包含副本)
RC_BACKUP_COPY_SUMMARY恢复目录中的等效视图(若使用恢复目录)
底层基表
  • X$KRBCOPY_SUM:动态性能表,存储副本聚合数据(内存结构)
  • X$KRBCOPY:详细副本记录基表(V$BACKUP_COPY_DETAILS 的源)

⚠️ 基表为 Oracle 内部结构,禁止直接查询


5. 底层原理

数据生成机制
  1. 副本创建
    • 执行 COPYBACKUP AS COPY 命令
    • RMAN 创建位对位精确映像副本
  2. 元数据记录
    • 控制文件中记录副本元数据:
      文件类型: FILE_TYPE
      大小: SIZE
      时间戳: COMPLETION_TIME
      SCN范围: [START_SCN, END_SCN]
      
  3. 实时聚合
    • Oracle 后台进程按 FILE_TYPE 分组聚合:
      COPY_COUNT = COUNT(*)
      TOTAL_BYTES = SUM(SIZE)
      MAX_COMPLETION_TIME = MAX(COMPLETION_TIME)
      
  4. 内存刷新
    • 数据存储在 SGA 的动态性能区
    • 实例重启后重新统计(依赖控制文件记录)
生命周期管理
  • 创建COPYBACKUP AS COPY 命令
  • 删除DELETE COPYDELETE EXPIRED COPY
  • 过期CROSSCHECK 检测物理文件丢失后标记
  • 保留:不受 RETENTION POLICY 影响,需手动管理

6. 关键知识点

副本 vs 备份集
特性映像副本 (Copy)备份集 (Backup Set)
格式原始文件格式专用二进制格式
恢复速度⚡ 极快(直接使用)⏳ 需还原操作
空间占用高(全文件复制)低(支持压缩/空块跳过)
增量更新不支持支持增量备份
最佳实践场景
关键文件
高频恢复文件
大型静态表空间
快速恢复要求
使用映像副本
SCN 范围的重要性
  • MIN_START_SCN ~ MAX_END_SCN 定义副本可恢复的数据库时间范围
  • 必须与归档日志备份的 SCN 范围连续才能完全恢复

7. 常用查询 SQL

① 获取副本汇总概览
SELECT file_type,
       copy_count,
       ROUND(total_bytes/1024/1024) AS size_mb,
       TO_CHAR(min_completion_time, 'YYYY-MM-DD') AS first_copy,
       TO_CHAR(max_completion_time, 'YYYY-MM-DD HH24:MI') AS last_copy
FROM v$backup_copy_summary
ORDER BY file_type;
② 检测副本时效性(超过 24 小时报警)
SELECT file_type,
       CASE WHEN SYSDATE - max_completion_time > 1 
            THEN 'CRITICAL: No recent copy'
            ELSE 'OK' END AS status,
       max_completion_time AS last_copy_time
FROM v$backup_copy_summary
WHERE file_type = 'DATAFILE';  -- 重点监控数据文件
③ 按类型计算日均副本大小
SELECT file_type,
       copy_count,
       ROUND(total_bytes/1024/1024) AS total_mb,
       ROUND(total_bytes/NULLIF(copy_count,0)/1024/1024) AS avg_mb_per_copy
FROM v$backup_copy_summary;
④ 识别需要优化的文件类型
SELECT file_type,
       copy_count,
       ROUND(total_bytes/1024/1024) AS size_mb,
       ROUND((SYSDATE - max_completion_time) * 24) AS hours_since_last
FROM v$backup_copy_summary
WHERE total_bytes > 1024 * 1024 * 1024  -- 大于1GB
   AND (SYSDATE - max_completion_time) > 7;  -- 超过7天未更新
⑤ 副本与数据库大小对比
WITH db_size AS (
  SELECT SUM(bytes) AS total_bytes 
  FROM dba_data_files
)
SELECT s.file_type,
       ROUND(s.total_bytes/1024/1024) AS copy_size_mb,
       ROUND(d.total_bytes/1024/1024) AS db_size_mb,
       ROUND(s.total_bytes / d.total_bytes * 100, 2) AS pct
FROM v$backup_copy_summary s, db_size d
WHERE s.file_type = 'DATAFILE';
⑥ 副本空间压力分析
SELECT 
  file_type,
  copy_count,
  ROUND(total_bytes/1024/1024) AS size_mb,
  TO_CHAR(max_completion_time, 'YYYY-MM-DD') AS last_copy,
  ROUND(RATIO_TO_REPORT(total_bytes) OVER () * 100, 2) AS space_pct
FROM v$backup_copy_summary
ORDER BY size_mb DESC;

总结

  • 核心优势:秒级获取映像副本全局状态,优化存储和恢复策略
  • 最佳实践
    • SYSTEM 表空间高频恢复文件 使用映像副本
    • 每日监控 MAX_COMPLETION_TIME 确保时效性
    • 结合 TOTAL_BYTES 定期清理旧副本释放空间
  • 关键注意
    • 副本 不替代归档日志备份,需单独管理
    • RAC 环境中为 全局统计(所有实例)
    • 控制文件记录受 CONTROL_FILE_RECORD_KEEP_TIME 限制

🔧 优化建议
使用 增量更新的映像副本 节省空间:

RMAN> RECOVER COPY OF DATAFILE 5 WITH TAG 'daily_copy';
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'daily_copy' DATAFILE 5;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值