Linux Oracle故障诊断工具全景
一 数据库内置与官方诊断工具
tfactl summary、tfactl analyze –last 1d、tfactl set autodiagcollect=on、tfactl set notificationAddress=…、tfactl set smtp、tfactl sendmail …。适合ORA-00600等内部错误的快速定位与取证。V$动态视图(如V$SESSION、V$LOCK、V$SQL)用于会话、锁与SQL执行状态排查;TKPROF对跟踪文件进行格式化,识别高成本SQL与执行计划问题。二 操作系统与硬件层诊断工具
top/htop、vmstat、iostat -xz 1、sar、dstat、nmon用于排查CPU、内存、I/O、网络等系统瓶颈,配合数据库问题时间线进行交叉验证。三 日志与网络连通性检查
$ORACLE_HOME/log/diag/rdbms/<dbname>/trace/alert_<sid>.log及对应进程的.trc/.trm,关注ORA-00600/ORA-07445等错误的时间点与调用栈;必要时用tfactl analyze对最近时段做错误聚合。lsnrctl status检查监听端口与服务映射,lsnrctl start恢复监听;同时核查$ORACLE_HOME/network/log/listener.log中的连接失败与解析问题。/var/log/messages、/var/log/syslog、dmesg可发现与Oracle相关的内核、设备、OOM等系统级线索。四 快速排查命令清单
sqlplus / as sysdba → SELECT instance_name, status FROM v$instance;;lsnrctl status/start。top/htop、ps -eo pid,user,%cpu,command | grep ora_、iostat -xz 1、vmstat 1、sar 1。SELECT s.sid, s.serial#, s.username, s.status, s.event, s.seconds_in_wait, s.blocking_session FROM v$session s WHERE s.type='USER';SELECT * FROM v$lock WHERE block > 0;SQL_TRACE或使用DBMS_MONITOR,再用TKPROF解析跟踪文件;结合V$SQL与执行计划定位高成本SQL。tail -n 200 $ORACLE_HOME/log/diag/rdbms/*/trace/alert_*.log;tfactl summary、tfactl analyze –last 1h。五 工具选型建议
V$视图与TKPROF细化到SQL与等待事件;图形化场景可用OEM快速巡检。