Oracle RMAN 归档日志清理标准流程:CROSSCHECK / EXPIRED / SYSDATE-N

================================

Oracle 归档日志(ArchiveLog)清理 SOP(RMAN 优先,ASM 仅应急)

适用:单机 / RAC,ASM(+RECO)/文件系统。生产建议走 RMAN,避免"目录记录"和"实际文件"不一致。

================================

1) 切换 Oracle 用户

su - oracle

2) 选定要操作的实例/数据库(RAC 里一定要对准:例如 UTF8CDB1)

export ORACLE_SID=UTF8CDB1

3) 进入 RMAN

rman target /

4) 校验归档记录 vs 实际文件(缺失的标记为 EXPIRED)

作用:RMAN/控制文件里有记录,但磁盘/ASM 上文件已经不存在 -> 标记为 EXPIRED(对账用)

CROSSCHECK ARCHIVELOG ALL;

5) 清理 EXPIRED(清控制文件里的"死记录",通常不释放 FRA 空间)

作用:只删 RMAN 目录/控制文件记录;EXPIRED 文件本来就不在了,所以通常不会"腾空间"

DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

6) 删除 N 天前归档(真正删除文件、释放空间的主要动作)

作用:删除"完成时间早于 SYSDATE-N"的归档文件

安全条件:只删"已备份过 1 次到磁盘"的归档,避免误删恢复链路

备注:SYSDATE-N 里 N 可以为 0,但生产不建议用 0(容易把归档几乎清空,风险大)

DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3'

BACKED UP 1 TIMES TO DEVICE TYPE DISK;

退出 RMAN

EXIT;

================================

什么时候才考虑用 ASM 直接清?(把它当应急按钮)

================================

1) FRA/RECO 爆满到影响业务(归档写不进去,业务可能受影响甚至挂库)

2) RMAN 删除被卡住(文件被占用、报错删不了)

3) 需要先"抢救一点空间"让系统恢复呼吸

注意:ASM 直接删除是"绕过 RMAN 目录"的,删完会造成控制文件记录与实际文件不一致,

所以必须做收尾对账,否则后续备份/清理/排障会更难看。

================================

如果已经/必须用 ASM 删:正确收尾姿势(对账 + 清垃圾记录)

================================

仍然用 RMAN 做"对账 + 清 EXPIRED 记录"

rman target / <<'EOF'

CROSSCHECK ARCHIVELOG ALL;

DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

EXIT;

EOF

相关推荐
Highcharts.js1 小时前
Highcharts跨域数据加载完全指南:JSONP原理与实战
javascript·数据库·开发文档·highcharts·图表开发·跨域数据
知识分享小能手2 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 安全机制 — 语法知识点及使用方法详解(18)
数据库·学习·sqlserver
科济管线制药IPD咨询2 小时前
从IPD实践者到研发体系架构师(四):在经典IPD阶段关卡基础上,如何融入敏捷迭代、DevOps循环和客户共创触点?
运维·devops
小李独爱秋2 小时前
模拟面试:lvs常见的工作模式有哪些?各有什么特点?
linux·运维·面试·职场和发展·操作系统·职场发展·lvs
此生只爱蛋2 小时前
【Redis】渐进式遍历
数据库·redis·github
吴声子夜歌3 小时前
小程序——生命周期函数和事件处理函数
服务器·前端·小程序
·云扬·11 小时前
MySQL 主从复制实战:Xtrabackup 高效部署方案
数据库·mysql
IT研究所11 小时前
IT 资产管理 (ITAM) 与 ITSM 协同实践:构建从资产到服务的闭环管理体系
大数据·运维·人工智能·科技·安全·低代码·自动化
Codefengfeng11 小时前
分辨压缩包的真加密与伪加密
linux·运维·网络