Oracle里有形形色色的限制(limit),清楚的了解這些限制可以幫助我們更好的使用Oracle和理解Oracle. 本文是Oracle的限制系列的第一篇文章,最主要介紹了一些由Oracle初始化參數設定的一些基本限制(sessions , processes ) Key Word: ORA-00018 , ORA-00020 1。sessions 在初始化參數所設定的限制中,最為人所知的估計就是sessions和processes Sessions 參數指定了一個 Instance中能夠同時存在的sessions數量,或者說,就是能同時登陸到數據庫的并發用戶數。通常,我們設定這個數字時需要考慮我們可能會有多少個同時連接到數據庫的并發用戶,并加上后臺進程的進程數,最后乘與1.1. 比如說,估計系統中可能會同時有100個用戶連接到數據庫,那么,你的session最少應該為 (100 + 10 ) * 1.1 = 121 當數據庫連接的并發用戶已經達到這個值時,又有新session連進來,就會報錯 00018, 00000, "maximum number of sessions exceeded" // *Cause: All session state objects are in use. // *Action: Increase the value of the SESSIONS initialization parameter. 2. Processes 和Sessions是類似的是processes這個參數。 Processes參數指定了Instance在OS層面所能同時運行的進程數;诤蛃essions設定同樣的考慮,我們在設定processes時,也應考慮我們可能會有多少個同時連接到數據庫的并發用戶,并加上后臺進程的進程數。 當然,在MTS(shared server)的配置下,這個值的確定會有所不同。應該是普通后臺進程+最大共享服務器的進程數(max_shared_servers) + 最大Dispatcher進程數(max_dispatchers). 另外,由于在window平臺中,Oracle是以單一一個進程的形式存在,Processes 參數變成了限制Oracle進程里的線程數了。 當Oracle需要啟動新的process而又已經達到processes參數時,就會報錯: 00020, 00000, "maximum number of processes (%s) exceeded" // *Cause: All process state objects are in use. // *Action: Increase the value of the PROCESSES initialization parameter. |
溫馨提示:喜歡本站的話,請收藏一下本站!