Oracle / ODA环境TRACE、alert日志定位与ADRCI清理 SOP_20260423

alert 是告警日志;trace 是详细跟踪日志。

  • alert:总日志,记"出了什么事"
  • trace:详细跟踪,记"具体过程和细节"
  • incident :针对严重错误单独立案,记"这次事故现场"

一、先理解这几个核心点

  • ADR 是 Oracle 的诊断仓库,里面统一存放 trace、dump、alert log、incident 等诊断数据;每个实例/组件都有自己的 ADR home 。在 RAC 环境下,每个数据库实例也都有各自的 ADR home。
  • ADRCI 适用于单机 和 RAC 。但 SET CONTROL、PURGE 这类操作都是针对当前单个 ADR home 生效,不是全局一把梭。
  • TRACE 走短生命周期策略 ,不是长生命周期策略:
    • SHORTP_POLICY 默认 720 小时 = 30 天 ,主要管 TRACE、core dump、packaging information。
  • alert / incident 走长生命周期策略 :
    • LONGP_POLICY 默认 8760 小时 = 365 天 ,主要管 alert log、incident information、incident dumps。
  • purge 只会清理已经达到条件 的内容。
    也就是说,策略定义的是"多久后具备清理资格",不是一到时间点立刻秒删。

二、定位 ADR 目录

复制代码
su - oracle

# 查看实例名
echo $ORACLE_SID

# 查看 Oracle 基础目录
echo $ORACLE_BASE

# 进入 ADR 目录(现场常见)
cd /u01/app/odaorabase/oracle/diag/rdbms

# 进入具体实例目录
cd /u01/app/odaorabase/oracle/diag/rdbms/erpcdb/erpcdb1

到这个目录后,重点看这几个子目录

复制代码
alert/      # XML 格式 alert 日志
trace/      # 文本 alert、.trc、.trm
incident/   # incident 信息
cdump/      # dump 信息

三、用 ADRCI 查看和切换 home

复制代码
adrci

# 查看当前有哪些 ADR home
show homes

# 切到目标实例
set home diag/rdbms/erpcdb/erpcdb1

# 查看当前清理策略
show control

RAC 节点 2 示例

复制代码
adrci
show homes
set home diag/rdbms/erpcdb/erpcdb2
show control

四、默认规则

复制代码
# 短生命周期:30 天线
SHORTP_POLICY = 720

# 长生命周期:365 天线
LONGP_POLICY = 8760

对应关系

复制代码
# 30 天线
TRACE
core dump

# 365 天线
alert log
incident
incident dump

五、按当前策略清理

复制代码
# 按当前保留策略清理已到期内容
purge

注:执行后没输出也可能正常,不代表失败。


六、按类型 + 年龄清理

清理 7 天前的 TRACE

复制代码
# -age 单位是分钟
# 10080 分钟 = 7 天
purge -age 10080 -type TRACE

清理 15 天前的 TRACE

复制代码
# 21600 分钟 = 15 天
purge -age 21600 -type TRACE

七、修改保留策略

1)把 TRACE 保留从 30 天改成 15 天

复制代码
# SHORTP_POLICY 单位是小时
# 360 小时 = 15 天
set control (SHORTP_POLICY = 360)
show control

2)把长生命周期从 365 天改成 60 天

复制代码
# LONGP_POLICY 单位是小时
# 1440 小时 = 60 天
set control (LONGP_POLICY = 1440)
show control

3)改完后按新策略顺手清一次

复制代码
# 按新策略清理当前已到期内容
purge

八、设置 ADR 大小策略

复制代码
# 给当前 ADR home 设 20G 大小阈值
set control (SIZEP_POLICY = 20G)
show control

九、规则什么时候执行?要不要 crontab?

复制代码
# 默认不需要自己配 crontab
# ADR 自己有自动清理机制

记住这两点

复制代码
1. 不设置 SIZEP_POLICY:
   默认大约每 24 小时自动 purge 一次

2. 设置 SIZEP_POLICY:
   MMON 大约每 4 小时检查一次大小阈值

也就是说:一般不用额外配 crontab 。

只有你想固定某个时间强制清理,才考虑自己加定时任务。


十、确认清理是否成功

1)看手工清理时间

复制代码
show control

重点看:

复制代码
LAST_MANUPRG_TIME   # 手工 purge 时间
LAST_AUTOPRG_TIME   # 自动 purge 时间

十一、最简常用命令模板

复制代码
su - oracle
echo $ORACLE_SID
echo $ORACLE_BASE

adrci
show homes
set home diag/rdbms/erpcdb/erpcdb1
show control

# 按当前策略清理
purge

# 清理 7 天前的 TRACE
purge -age 10080 -type TRACE

# TRACE 保留改 15 天
set control (SHORTP_POLICY = 360)
show control

# alert / incident 保留改 60 天
set control (LONGP_POLICY = 1440)
show control

# 设 20G 大小策略
set control (SIZEP_POLICY = 20G)
show control
相关推荐
天启HTTP9 分钟前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
代码什么用20 分钟前
Spring对IoC的实现
数据库·spring
运维行者_24 分钟前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时1 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
hz567892 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC3 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday3 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
优橙教育3 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
IT研究所3 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
BLUcoding3 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom