[Oracle]清楚理解局限(limit)系列1
發(fā)表時(shí)間:2024-05-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Oracle里有形形色色的限制(limit),清楚的了解這些限制可以幫助我們更好的使用Oracle和理解Oracle. 本文是Oracle的限制系列的第一篇文章,最主要介紹了一些由Oracle初始化參數(shù)設(shè)定的一些基本限制(sessions , processes ) Key Word: ORA-0...
Oracle里有形形色色的限制(limit),清楚的了解這些限制可以幫助我們更好的使用Oracle和理解Oracle.
本文是Oracle的限制系列的第一篇文章,最主要介紹了一些由Oracle初始化參數(shù)設(shè)定的一些基本限制(sessions , processes )
Key Word: ORA-00018 , ORA-00020
1。sessions
在初始化參數(shù)所設(shè)定的限制中,最為人所知的估計(jì)就是sessions和processes
Sessions 參數(shù)指定了一個(gè) Instance中能夠同時(shí)存在的sessions數(shù)量,或者說,就是能同時(shí)登陸到數(shù)據(jù)庫的并發(fā)用戶數(shù)。通常,我們?cè)O(shè)定這個(gè)數(shù)字時(shí)需要考慮我們可能會(huì)有多少個(gè)同時(shí)連接到數(shù)據(jù)庫的并發(fā)用戶,并加上后臺(tái)進(jìn)程的進(jìn)程數(shù),最后乘與1.1.
比如說,估計(jì)系統(tǒng)中可能會(huì)同時(shí)有100個(gè)用戶連接到數(shù)據(jù)庫,那么,你的session最少應(yīng)該為
(100 + 10 ) * 1.1 = 121
當(dāng)數(shù)據(jù)庫連接的并發(fā)用戶已經(jīng)達(dá)到這個(gè)值時(shí),又有新session連進(jìn)來,就會(huì)報(bào)錯(cuò)
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這個(gè)參數(shù)。
Processes參數(shù)指定了Instance在OS層面所能同時(shí)運(yùn)行的進(jìn)程數(shù);诤蛃essions設(shè)定同樣的考慮,我們?cè)谠O(shè)定processes時(shí),也應(yīng)考慮我們可能會(huì)有多少個(gè)同時(shí)連接到數(shù)據(jù)庫的并發(fā)用戶,并加上后臺(tái)進(jìn)程的進(jìn)程數(shù)。
當(dāng)然,在MTS(shared server)的配置下,這個(gè)值的確定會(huì)有所不同。應(yīng)該是普通后臺(tái)進(jìn)程+最大共享服務(wù)器的進(jìn)程數(shù)(max_shared_servers) + 最大Dispatcher進(jìn)程數(shù)(max_dispatchers).
另外,由于在window平臺(tái)中,Oracle是以單一一個(gè)進(jìn)程的形式存在,Processes 參數(shù)變成了限制Oracle進(jìn)程里的線程數(shù)了。
當(dāng)Oracle需要啟動(dòng)新的process而又已經(jīng)達(dá)到processes參數(shù)時(shí),就會(huì)報(bào)錯(cuò):
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.