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

Oracle 用戶連接管理實戰:查詢、強制斷開與 OS 進程關聯

     編輯:Oracle 資料庫基礎

一、查看當前連接

SELECT username, sid, serial# FROM v$session;

二、優雅斷開

ALTER SYSTEM KILL SESSION 'sid,serial#';

標記該 Session 為「KILLED」,待其釋放鎖後終止。若長時間未生效,轉用強制手段。

三、強制終結:關聯 OS 進程

-- 1. 取得 OS 進程號 (SPID)
SELECT p.spid 
FROM v$session s, v$process p 
WHERE s.sid = 21  -- 目標 SID
  AND s.paddr = p.addr;

-- 2. OS 層面強制殺掉
kill -9 

注意:kill -9 會留下殘留鎖定,需後續檢查 v$lock 並必要時重啟實例。

四、自動化斷開腳本範例

#!/bin/ksh
# kill_long_running.sh : 終結執行超過 1 小時的非系統查詢
sqlplus -s / as sysdba < 3600;
SPOOL OFF
EXIT
EOF

# 執行生成的指令
sqlplus -s / as sysdba @/tmp/kill_sid.lst

結語

連接管理遵循「優雅優先、強制備用、記錄審計」原則。建議將上述邏輯封裝為監控平台自動化動作,並配合 Resource Manager 限制失控查詢資源佔用。

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