查alert.log需紧盯ora-错误前几行,因其揭示根因;rac环境须检查各节点alert日志及ocssd.log中crs-1611/1610/1607递进链;adrci需显式set homepath;trace文件只需关注函数栈、对象定位和sql上下文。

直接查 alert.log 里紧挨 ORA- 错误的前几行
ORA- 错误本身只是表象,真正原因藏在它前面。比如 ORA-3113 几乎总是跟在 ORA-07445、ORA-27102 或 ORA-19809 后面;ORA-00600 的方括号参数(如 [kcbzwfcro_2])才是根因线索。不看前几行就动手重启,等于抹掉现场。
实操建议:
- 用
tail -n 100 /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/alert_orcl1.log | grep -A 5 -B 5 "ORA-"把错误上下文一次性拉出来 - 重点盯住时间戳连续、错误密集出现的段落——单次孤立报错可能无害,但 3 分钟内重复 5 次以上基本就是真故障
- RAC 环境下别只查一个实例的 alert 日志:每个节点的
alert_<inst_name>.log</inst_name>都得看,尤其注意是否多节点同步报错
ADRCI 中 set homepath 必须显式指定所有节点路径
ADRCI 默认只识别当前节点的 ADR Home,show home 不会自动汇总 RAC 所有实例。试图用 show alert -tail 50 查全集群日志却只看到一条空结果,大概率是没设对 homepath。
实操建议:
- 先逐节点登录,运行
adrci→show home,确认每个实例的路径都存在(如diag/rdbms/orcl/orcl1、diag/rdbms/orcl/orcl2) - 再执行
set homepath diag/rdbms/orcl/orcl1 diag/rdbms/orcl/orcl2—— 注意是空格分隔,不是逗号 -
show alert -p "message_text like '%ORA-00600%'"才能在两个节点日志中并行搜索;但ips pack仍需单节点执行,不能跨节点打包
私网心跳丢包要盯 ocssd.log 里的 CRS-1611/1610/1607 递进链
RAC 网络抖动不会直接报 ORA- 错误,而是通过 CSSD 日志暴露:先 CRS-1611(75% 心跳丢失),再 CRS-1610(90%),最后 CRS-1607(驱逐)。三者成链出现,且多节点时间戳高度重合,基本锁定底层网络问题。
实操建议:
- 直接搜
/u01/app/11.2.0/grid/log/rac1/cssd/ocssd.log,用grep -E "CRS-161[01]|CRS-1607" ocssd.log | tail -20 - 注意
CRS-1611 in 6.512 seconds这类时间值越小越危险;若仅一侧报CRS-1612(被驱逐),另一侧无对应CRS-1610,优先查该节点网卡收包能力(ethtool -S eth2 | grep rx_discards) - 别一上来就调 MTU 或换网卡——先查
GV$SYSTEM_EVENT中gc cr block busy的等待桶分布:集中在 16ms 桶才是真抖动,集中在 1ms 桶大概率是 SQL 导致的 GC 流量激增
Trace 文件不用通读,只抓三类关键行
Trace 文件动辄几十 MB,通读效率极低。真正有用的信息集中在三处:函数调用栈顶部、对象定位线索、触发 SQL 上下文。其他内容可忽略。
实操建议:
- 用
grep -A 3 -B 1 "kcb\|kj\|qosd\|kds" orcl1_j000_28639362.trc快速定位模块归属(如kjbrcvt属 RAC 缓存融合,qosdExpStatRead属统计信息采集) - 搜
file#、rdba:、obj:定位损坏对象:select owner,segment_name from dba_extents where file_id=188 and 2 between block_id and block_id+blocks-1; - 找
SQL ID:或sql_text:附近内容;若没显式记录,看MODULE NAME(如sqlservr.exe常指向 SQL Server 链接服务器操作)
RAC 日志体系本质是“多实例 + 多层组件”的叠加,每个节点、每个进程、每层架构(Clusterware / ASM / RDBMS)都有独立日志路径。最易被忽略的是:ADRCI 的 set homepath 必须手动拼全,ocssd.log 的错误递进关系必须连起来看,而 Trace 文件里真正有用的线索往往不到百行。











