2009-04-13 61 views
1

我們擁有Oracle 10g數據庫,並且我們正在收到ORA-00018消息:超出最大會話數。我們配置參數如下; 600Oracle 10g會話過期的最大數量

及其共享服務器模式:

會話600 過程。我們更新到Session:900和Process:750.現在Oracle正在運行,但我需要知道這是否幫助我們繼續或者我還需要做一些其他更改以避免出現錯誤「ORA-00018:maximum會議的人數超過」

任何人可以幫助PLZ 您的迴應是高度讚賞

問候 約瑟夫

+0

大家好,謝謝。我們解決了這個問題。現在,我們正在移除閒置30分鐘以上的所有非活動會話。希望這也能幫助你們。 – Joseph 2009-04-15 06:27:34

回答

1

您可以讓用戶採取會議,並沒有釋放他們所有,或將它們保持很長一段時間。在發生異常時查看是否有任何長時間運行的事務。

+0

當我發生錯誤時,我無法連接,所以我重新啓動數據庫,所以ididnt知道誰長時間連接了 – Joseph 2009-04-13 15:39:29

+0

當它再次發生時,在重新啓動數據庫之前,請查看您是否可以檢索任何事務日誌。有人可能會連接到您的數據庫,而不是釋放這些連接。 – Elie 2009-04-13 15:45:42

0

知道這一點的最佳方法是每5-10分鐘後連接數據庫並轉儲v $會話表。通過這種方式,您可以瞭解有時所有進程/應用程序都保持與數據庫的連接。這可能是一個長期運行的進程/守護進程/服務根本沒有釋放會話的錯誤。一個簡單的腳本,如果您可以作爲cron作業運行以轉儲v $ session表,它可能會變得可見。

0

這是我如何解決它,爲12C數據庫:

控制在PDB

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName> 

使用

洛連接數檢查連接數

SELECT 
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION) 
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE 
FROM 
    V$PARAMETER VP 
WHERE 
    VP.NAME = 'sessions' 

它顯示ys「目前使用m個連接中的任何一個。」這裏n> m。它應該是相反的。

變化最大會話數

洛以sys在PDB

quit 
sqlplus/as sysdba 
alter session set container = PDB1; 

變化會議

alter system set sessions=100 scope=both sid='*'; 

彈跳數據庫

數量 個
SQL> shutdown immediate 
SQL> startup 

打開所有的PDBS(由彈跳閉合)

ALTER PLUGGABLE DATABASE ALL OPEN; 

控制再次

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName> 

運行控制SQL查詢

SELECT 
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION) 
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE 
FROM 
    V$PARAMETER VP 
WHERE 
    VP.NAME = 'sessions' 

它顯示「當前n使用m個連接。「現在n <米。