明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

[Oracle]清楚理解局限(limit)系列1

[摘要]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.