深度分析:AWR/ASH 报告识别 Top SQL 与主要等待事件(如 db file sequential read、log file sync、enq: TX 等);必要时 SQL Trace + tkprof。
自动诊断:ADDM 基于 Database Time 给出瓶颈与可操作建议,优先处理影响最大的问题。
三 关键命令与脚本清单
实例与监听
sqlplus / as sysdba(启动/关闭/状态查询)
lsnrctl status/start/stop
tnsping <服务名>
日志与诊断
tail $ORACLE_BASE/diag/rdbms///trace/alert_*.log
adrci(ADR 命令行,收集/查看诊断数据)
资源与 IPC
ipcs -m/-s;ipcrm -m / -s
free -m;dmesg | grep -i oom
sysctl -a | grep shm / sem;sysctl -w;编辑 /etc/sysctl.conf
性能与 SQL
AWR:@$ORACLE_HOME/rdbms/admin/awrrpt.sql
活跃会话与等待:
SELECT event, wait_class, COUNT() FROM v$session WHERE state=‘WAITING’ GROUP BY event, wait_class ORDER BY COUNT() DESC;
SELECT sid, username, status, event, blocking_session FROM v$session WHERE status=‘ACTIVE’;
锁与阻塞:SELECT * FROM dba_blockers; SELECT * FROM dba_waiters;
Top SQL:
SELECT sql_id, executions, elapsed_time/executions avg_elapsed, sql_text FROM v$sql WHERE executions>0 ORDER BY avg_elapsed DESC FETCH FIRST 10 ROWS ONLY;
SQL Trace:ALTER SESSION SET sql_trace=true; 使用 tkprof 分析。
四 高可用与集群场景补充
Oracle RAC
集群状态:crsctl check cluster;crsctl status resource -t