RMAN-08137报错源于归档日志被备库或捕获进程依赖而受保护,需按“确认已应用→crosscheck标记→delete expired”三步安全清理,严禁直接rm;强制删除须配合force且确保已备份,并及时同步catalog状态。
不能直接 rm 删除备库归档文件,否则控制文件里仍保留记录,v$archived_log 状态错乱,rman 报 rman-08137,甚至中断日志应用。必须用 rman 按“确认→标记→删除”三步走。
确认备库已完全应用且无传输 GAP
这是最危险的一步,跳过就可能删掉还没应用的日志,导致备库同步中断或需重建。
- 查
v$archived_log:只认APPLIED = 'YES'的归档,STATUS = 'A'仅作参考 - 运行
select thread#, low_sequence#, high_sequence# from v$archive_gap;—— 必须返回空结果才算无 GAP - 检查主库
v$archive_dest_status中对应 DG 目标的STATUS = 'VALID'且ERROR为空
先 crosscheck 再 delete expired
手动删过文件、或归档路径变更过,控制文件里大概率残留“幽灵记录”。不先 crosscheck,delete archivelog until time 会静默跳过它们,空间根本清不掉。
- 进 RMAN 后立刻执行
crosscheck archivelog all;—— 把磁盘上不存在的归档标为EXPIRED - 紧接着执行
delete noprompt expired archivelog all;—— 清掉这些僵尸记录 - 这一步不做,后续清理大概率失败或无效
按时间安全删除已应用归档
别用 delete archivelog all,也别依赖 delete input(备库没做 backup archivelog 时它不生效)。按时间窗口删最可控。
- 执行
delete noprompt archivelog until time 'SYSDATE - 3';—— 删 3 天前所有已应用归档(前提是前面已确认APPLIED = 'YES') - 时间表达式必须带单引号,
SYSDATE - 3是标准写法;SYSDATE - 72容易出错,不建议 - 如果备库有多个归档目标(比如本地文件系统 + ASM),加
from dest_id 1显式指定,避免误删
删完不等于空间立刻释放——V$FLASH_RECOVERY_AREA_USAGE 中 ARCHIVELOG 行的 PERCENT_SPACE_USED 可能延迟更新,等 5–10 分钟再查;若长期不降,要怀疑 control_file_record_keep_time 设置过小,导致控制文件统计滞后。


















