LIST FAILURE 在 Oracle 19c 中已被彻底移除,无替代命令;它本用于诊断数据故障(如坏块),而非查询备份点;查备份应使用 LIST BACKUP 或 LIST ARCHIVELOG 等 RMAN 备份元数据命令。
oracle 19c 中不能用 list failure 列出备份点 —— 这个命令早已被移除,且它本来就不干这事。
很多人看到文档里写过 LIST FAILURE,又在 RMAN 里试了下报错或没反应,其实是踩进了两个坑:一是混淆了“故障诊断”和“备份管理”的功能边界;二是没注意到 Oracle 在 19c 已彻底废弃数据恢复指导(DRA)相关命令。
为什么 LIST FAILURE 在 19c 里根本不可用
从 Oracle Database 19c 的某个 RU(Release Update)开始,LIST FAILURE、ADVISE FAILURE、REPAIR FAILURE 等命令已被正式弃用,且无替代命令。官方明确说明:“There is no replacement feature for DRA.”
- 执行
LIST FAILURE会直接报错:RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00601: fatal error in shared server: could not allocate memory或更常见的RMAN-00558: error encountered while parsing input commands - 这不是权限或实例状态问题 —— 即使数据库处于
MOUNT状态、RMAN 连接正常,该命令也已从二进制中剥离 - 它原本的作用是列出自动诊断信息库(ADVI)中记录的“数据故障”(如坏块、丢失数据文件),不是查备份、不涉及
BACKUP或ARCHIVELOG元数据
想查备份点?该用 LIST BACKUP 和 LIST ARCHIVELOG
真正列出可恢复备份点的操作,和故障无关,属于 RMAN 备份元数据查询范畴:
-
LIST BACKUP:显示所有已注册到控制文件或恢复目录中的数据文件、归档日志、控制文件快照等备份集 -
LIST BACKUP OF DATABASE:只看全库备份 -
LIST BACKUP BY FILE:按数据文件分组展示,方便定位某文件的可用备份 -
LIST ARCHIVELOG ALL:列出所有归档日志及其备份状态(AVAILABLE/EXPIRED) - 加
COMPLETED限定可过滤掉中断的备份:LIST BACKUP COMPLETED AFTER 'SYSDATE-7'
注意:LIST 命令依赖控制文件或恢复目录的当前视图 —— 如果控制文件被重建过、或没启用恢复目录,早于 CONTROLFILE AUTOBACKUP 时间点的备份可能无法被识别。
哪些场景下你以为需要 LIST FAILURE,其实该换思路
常见误判包括:
- “恢复时提示 ORA-01578,我想看看是不是有坏块” → 应查
V$DATABASE_BLOCK_CORRUPTION或运行VALIDATE DATABASE,不是列备份 - “不知道该用哪个备份来恢复” → 直接
LIST BACKUP SUMMARY看每个备份的COMPLETION TIME和BP KEY,再配合RESTORE DATABASE PREVIEW模拟恢复路径 - “RMAN 报错说找不到备份” → 先
CROSSCHECK BACKUP同步物理存在性,再DELETE EXPIRED清理陈旧记录,而不是找故障列表 - OCR/Voting Disk 损坏这类集群级故障 → 完全不在 RMAN 范畴,得用
ocrcheck、crsctl query css votedisk等 CRS 工具,和LIST FAILURE零关系
最易被忽略的一点:Oracle 19c 的备份可恢复性,越来越依赖 FAST RECOVERY AREA 的空间策略和归档日志保留策略。与其花时间找一个不存在的命令,不如确认 DB_RECOVERY_FILE_DEST_SIZE 是否够用、ARCHIVE_LAG_TARGET 是否合理、以及是否启用了 BACKUP OPTIMIZATION ON。











