核心思路:分层排查。

<节点名>=hostname

<实例名>=show parameter instance_name;

<数据库名>=show parameter db_name;

系统层

可能出现的问题:硬件、系统损坏&bug等

cd /var/log/
ll -lthr message*

集群层

可能出现的问题:节点重启、VIP 不通、资源离线等

集群 alert日志

$ORACLE_CRS_HOME没有设置的话通常为/u01/app/<版本号>/grid,下同

记录 CRS、VIP、ASM、ONS 等集群资源的异常(如资源启动失败、节点失联)

su - grid
ll -lthr $ORACLE_CRS_HOME/log/<节点名>/alert<节点名>.log

su - root
ll -lthr /u01/app/grid/diag/crs/<节点名>/crs/trace/alert.log
CRS 日志

记录 CRS 守护进程的运行状态,资源(如数据库实例、监听)的启动 / 停止 / 漂移日志

su - grid
ll -lthr $ORACLE_CRS_HOME/log/<节点名>/crsd/crsd.log
crsctl stat res -t #查看CRS资源状态
ohasd、ocsssd、evmd日志

ohasd:管理集群所有基础服务(包括启动 / 监控 ocsssd、evmd 等核心进程),负责节点级高可用(如 VIP、监听器、ASM 等本地资源)

ocsssd:记录集群节点间的心跳的异常,判断节点存活状态

evmd:收集集群所有事件(节点故障、资源启停、配置变更等)

su - grid
ll -lthr $ORACLE_CRS_HOME/log/<节点名>/ohasd/ohasd.log
ll -lthr $ORACLE_CRS_HOME/log/<节点名>/cssd/ocssd.log
ll -lthr $ORACLE_CRS_HOME/log/<节点名>/evmd/evmd.log
ASM 日志

记录 ASM 磁盘组(如挂载失败、磁盘离线、IO 异常)

su - grid
ll -lthr /u01/app/grid/diag/asm/+asm/+ASM2/trace/alert_<ASM实例名>.log

SQL> select name, state from v$asm_diskgroup; #检查 ASM 磁盘状态

数据库层

数据库alert日志
su - oracle
SELECT value FROM v$diag_info WHERE name = 'Diag Trace';
ll -lthr $ORACLE_BASE/diag/rdbms/<数据库名>/<实例名>/trace/alert_<实例名>.log
AWR/ASH 报告

默认html格式
输入需要查看几天之前的的数据(当天算1,昨天算2)
根据需要的时间段,输入开始和结束的snap_id号码
更改文件名称(enter=默认名称)
退出SQL界面,在登入SQL界面的目录下

sqlplus / as sysdba
@?/rdbms/admin/awrrpt.sql
@?/rdbms/admin/ashrpt.sql

在当前时间立即手动生成一份AWR报告

begin
dbms_workload_repository.create_snapshot();
end;
/
tfa日志收集
su - grid
cd $ORACLE_HOME/tfa/bin 
#无权限的话记住路径,切换回root执行
./tfactl diagcollect -all -from "2025-07-27 02:50:00" -to "2025-07-27 03:00:00"
oswatcher日志查看
su - grid
ps -ef | grep osw
#无权限的话记住路径,切换回root执行
cd $ORACLE_BASE/tfa/repository/suptools/<节点名>/oswbb/grid/archive

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐