linux 環境Oracle 會話數滿處理方法

2021-09-22 18:24:35 字數 1383 閱讀 6910

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...