list backup summary 只显示统计行,不列具体备份集,因其本质是聚合视图,按备份类型与状态分组汇总计数和大小,不含 recid、set_stamp 等唯一标识字段。
list backup summary 为什么只显示统计行,不列具体备份集
因为 list backup summary 本质是聚合视图,它只返回按备份类型(datafile full backup、archived redo logs、incremental backup)和状态(a、x、d)分组后的计数与大小总和,不带 recid、set_stamp 等唯一标识字段。你看到的是一张“汇总表”,不是“明细账”。
怎样用 list backup summary 快速判断备份是否异常
执行后重点看三列:STATUS、COMPLETED、SIZE。常见风险点包括:
-
STATUS = X(EXPIRED)数量突增:说明大量备份片被crosscheck标记为失效,但物理文件可能已被手动删除或路径不可达 -
SIZE = 0.00K的行存在:通常对应空归档日志备份集,或backup archivelog all执行时无新归档生成 - 某类备份(如
Incremental Backup)COMPLETED数为 0,但时间范围内应有增量任务:说明备份脚本可能未真正触发,或被CONFIGURE RETENTION POLICY自动清理掉
list backup summary 和 v$backup_set 视图结果对不上怎么办
这是正常现象,两者来源不同:list backup summary 读的是控制文件中当前有效的 RC_BACKUP_SET 元数据快照;而 v$backup_set 是内存中动态视图,受 DBA_RMAN_BACKUP_JOB_DETAILS 刷新节奏影响,且部分已过期但未 crosscheck 的记录仍会残留。若需强一致性验证,请优先信任 list backup(非 summary)输出,它是 RMAN 直接解析控制文件所得。
想查最近 3 天的 summary 统计,但 list 命令不支持 where 条件
RMAN 的 list 命令本身不支持 SQL 式过滤,必须靠时间限定子句。正确写法是:
list backup completed after 'sysdate-3';
然后再加 summary:
list backup summary completed after 'sysdate-3';
注意:completed after 中的时间字符串必须是 RMAN 可解析格式,例如 '2026-05-12' 或 'sysdate-3',不能写成 to_date(...) —— 那是 SQL*Plus 语法,RMAN 不认。
真正容易被忽略的是:RMAN 的 list 命令输出默认只刷到终端缓冲区,不落日志;如果远程执行且会话中断,summary 结果就丢了。建议搭配 spool 使用,或者直接切到 SQL 层查 v$rman_backup_job_details,那里有更稳定的时序字段和可排序的 start_time。

















