1. Oracle自帶性能監控工具
@ORACLE_HOME/rdbms/admin/awrreport.sql
腳本生成HTML報告,對比不同時段(如1小時、24小時)的性能指標,識別CPU、I/O、SQL執行等瓶頸。SELECT * FROM v$active_session_history
視圖查看當前活躍會話,或結合AWR生成ASH報告,快速定位當前性能問題。ALTER SESSION SET sql_trace = TRUE
開啟SQL跟蹤,記錄會話的所有SQL執行細節(如執行時間、邏輯讀、物理讀)。使用tkprof
工具格式化跟蹤文件(如tkprof trace_file.trc output.txt
),分析慢SQL的執行計劃和資源消耗。v$sql
、v$session
、v$system_event
、v$librarycache
),用于實時查詢數據庫狀態。例如,v$sql
查看SQL執行統計(如elapsed_time
、disk_reads
)、v$session
查看會話信息(如status
、machine
)、v$system_event
查看系統等待事件(如db file sequential read
)。2. 第三方監控工具
check_oracle
)監控Oracle數據庫的可用性(如監聽器狀態、服務狀態)、性能指標(如活動會話數、鎖數量)。支持分布式監控,可與NSCA、PNP4Nagios等集成實現報警和圖形化。oracledb_exporter
暴露),Grafana負責可視化展示(如SQL執行時間趨勢、表空間使用率)。支持告警規則配置(如alertmanager
),適合云原生環境。3. 操作系統工具
top -u oracle
過濾Oracle進程,識別占用資源高的會話或進程。iostat -xz 1 5
命令查看每秒的I/O統計信息,判斷是否存在I/O瓶頸。vmstat 1 5
命令查看每秒的系統狀態,識別CPU瓶頸(如us
高)、內存不足(如si/so
高)等問題。pmon
、smon
、dbwr
),使用ps -ef | grep ora_
命令列出所有Oracle進程,檢查是否有異常進程(如僵尸進程)。4. 高級診斷工具
perf top -p <oracle_pid>
實時查看熱點函數,或perf record -p <oracle_pid> -g
記錄性能數據并生成火焰圖,輔助定位內核或Oracle內部的性能問題。