Oracle rac架构故障&调查时查看日志的路径
·
核心思路:分层排查。
<节点名>=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
更多推荐



所有评论(0)