首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 當前連接數監控全攻略:V$SESSION 多維查詢、參數調整與告警腳本

     編輯:Oracle 資料庫基礎

核心視圖:V$SESSION

實時反映所有會話狀態,`USERNAME IS NOT NULL` 過濾掉背景進程,專注用戶連接。

五大實用查詢模板

需求SQL說明
所有用戶會話明細`SELECT * FROM v$session WHERE username IS NOT NULL;`含 SID、SERIAL#、MODULE、ACTION、CLIENT_INFO、LOGON_TIME、STATUS 等
各用戶連接數統計`SELECT username, COUNT(*) AS conn_cnt FROM v$session WHERE username IS NOT NULL GROUP BY username ORDER BY 2 DESC;`快速定佔用連接最多的賬號
總連接數`SELECT COUNT(*) FROM v$session;`含背景進程
活躍會話數 (並發數)`SELECT COUNT(*) FROM v$session WHERE status = 'ACTIVE' AND username IS NOT NULL;``ACTIVE` 表示正在執行 SQL,`INACTIVE` 為空閒等待
阻塞鏈檢測`SELECT blocking_session, sid, sql_id FROM v$session WHERE blocking_session IS NOT NULL;`11g+ 直接顯示阻塞者 SID

參數上限查看與動態調整

-- 查看當前上限
SHOW PARAMETER processes;
-- 典型輸出:processes = 300

-- 動態調大 (需重啟生效,SCOPE=SPFILE)
ALTER SYSTEM SET processes = 1000 SCOPE = SPFILE;
-- 修改後必須重啟實例

-- 臨時方案 (不重啟):調大 SESSIONS (自動推導 PROCESSES*1.1+5)
-- 但 PROCESSES 為硬上限,必須重啟

連接數告警監控腳本 (Shell + SQL*Plus)

#!/bin/bash
# monitor_connections.sh
# 配置閾值 (佔比 80%)
THRESHOLD_PCT=80

# 獲取當前連接數與上限
sqlplus -S "/ as sysdba" <

進階:歷史趨勢分析 (AWR/ASH)

-- AWR 時段內平均/峰值連接數
SELECT
  snap_id,
  ROUND(AVG(value)) AS avg_sessions,
  MAX(value) AS max_sessions
FROM dba_hist_sysmetric_summary
WHERE metric_name = 'Current Logons Count'
GROUP BY snap_id
ORDER BY snap_id;

-- ASH 會話維度熱力圖
SELECT
  sample_time,
  COUNT(DISTINCT session_id) AS concurrent_sessions
FROM v\$active_session_history
WHERE sample_time > SYSDATE - 1/24  -- 近 1 小時
GROUP BY sample_time
ORDER BY sample_time;

連接池配置建議 (應用層協同)

連接池參數建議值原則
最大連接數≤ DB PROCESSES * 0.7預留 30% 給背景進程、並行查詢、管理連接
最小/初始連接數業務基線並發避免頻繁建連開銷
獲取連接超時3-5 秒快速失敗,觸發熔斷/擴容
空閒回收時間10-30 分鐘平衡資源佔用與建連延遲
驗證查詢`SELECT 1 FROM DUAL`檢測斷連,防止借到失效連接

結語

連接數監控是 **「實時查 V$SESSION、歷史看 AWR/ASH、上限改 PROCESSES (重啟)、應用層配連接池」** 的立體體系。建立 **每日連接數峰值報表 + 閾值告警 + 連接池定期巡檢**,將「連接數耗盡導致業務雪崩」風險消滅在萌芽狀態。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved