oracle會話數滿處理文件
一、問題描述
遠端連線資料庫伺服器,發現sqlplus / as sysdba無法登陸,提示ora-00020: maximum number of processes (1000) exceeded,顯然是資料庫的會話數滿了。
二、問題處理及原因分析
1、登陸root使用者,執行命令:
# ps -ef |greplocal=no|grep-v grep|cut-c 9-15|xargskill -9
殺掉所有oracle遠端鏈結,釋放會話數。繼續sqlplus / as sysdba,資料庫正常可連。
2、登陸pl/sql developer,檢視資料庫會話數情況
sql>select program,count(1) from v$session group by program order by count(1) desc;
sql>select username,osuser,machine from v$session where program='xx.exe';
得知該問題程序是通過xx使用者接入。
3、約30min後,資料庫再次告警會話連線數滿,於是手動殺掉問題程序的所有會話,並對接入使用者xx進行了暫時鎖定。
--把查詢結果進行執行,殺掉問題程序連線
sql>select
'alter system kill session '||''''||c.sid||','||c.serial#||''''||' immediate;' kill_sql
from v$session c where program='xx.exe' and machine= 'xx'; --
鎖定問題程序接入進來的使用者
sql>alter user interpub account lock;
4、進入監聽日誌目錄,檢視該應用的主機資訊
$ grep xx.exe listener.log
查出該程序所在的主機資訊:
(host=xx)(user=administrator)(address=(protocol=tcp)(host=xx)
5、將問題程序「xx.exe」的主機資訊(主機名,主機ip)提供給資訊,得知網路有異常,不穩定,斷斷續續。分析認為:由於網路不穩定,通過xx使用者接入的程序xx.exe出現非主動關閉,導致連線不釋放,致使資料庫會話數持續增長,超過資料庫最大連線數,導致新的連線無法建立。網路恢復正常後,解鎖使用者(alter user xx account unlock; ),資料庫會話數恢復正常。
ORACLE 修改當前會話的語言環境
修改當前會話的語言環境變數引數 alter session set 將語言改為英語 sql alter session set nls language american session altered.將語言改回中文 sql alter session set nls language simpl...
Oracle會話學習
1.檢視當前會話和程序 select count 1 from v session select count 1 from v process 檢視當前總會話數和程序數,這兩個檢視就是跟會話及程序有關的重要檢視啦,資訊都是從這裡面取的。2.查詢應用連線數多少,訪問的機器和應用程式 select b....
oracle 當前會話
查詢oracle正在執行的sql語句及執行該語句的使用者 select b.sid oracleid,b.username 登入oracle使用者名稱 b.serial spid 作業系統id paddr,sql text 正在執行的sql b.machine 計算機名 from v process...