說(shuō)一說(shuō)如何配置Oracle的MTS part2
2024-08-29 13:30:50
供稿:網(wǎng)友
四、 mts的配置實(shí)現(xiàn)
1、 oracle8i mts環(huán)境常用到的幾個(gè)參數(shù)
序號(hào)
參數(shù)
說(shuō)明
1
mts_dispatchers
用于配置當(dāng)instance啟動(dòng)的時(shí)侯啟用的dispatcher的數(shù)量、及dispatcher所響應(yīng)的協(xié)議,它是一個(gè)動(dòng)態(tài)的參數(shù),可以用alter system進(jìn)行動(dòng)態(tài)修定,它沒(méi)有默認(rèn)值。
2
mts_max_dispatchers
用于指定同時(shí)運(yùn)行的dispatcher進(jìn)程的最大數(shù)量,對(duì)于大部分的應(yīng)用,每250個(gè)連接啟用一個(gè)dispatcher可以獲得較好的性能。默認(rèn)值是5或所配置的dispatcher的數(shù)量
3
mts_servers
用于指定當(dāng)instance啟動(dòng)時(shí)你想啟用的服務(wù)進(jìn)程的數(shù)量,它是一個(gè)動(dòng)態(tài)參數(shù),可以用alter systme動(dòng)態(tài)修定。
4
mts_max_servers
用于指定同時(shí)進(jìn)行的共享的庫(kù)的服務(wù)進(jìn)程的數(shù)量,如果你的系統(tǒng)經(jīng)常出現(xiàn)死鎖,應(yīng)該適當(dāng)?shù)脑黾舆@個(gè)值。
5
mts_service
設(shè)為sid
6
mts_listener_address
tns監(jiān)聽(tīng)的地址
2、 oracle9i mts環(huán)境常用到的幾個(gè)參數(shù)
序號(hào)
參數(shù)
說(shuō)明
1
dispatchers
等同于8i中的mts_dispatchers參數(shù)
2
max_dispatchers
等同于8i中的mts_max_dispatchers參數(shù)
3
shared_servers
等同于8i中的mts_server參數(shù)
4
max_shared_servers
等同于8i中的mts_max_servers參數(shù)
3、 以我一個(gè)實(shí)際環(huán)境(oracle8.1.7.4)舉個(gè)例子,9i類似,我在init<sid>這個(gè)初始化參數(shù)文件中加入了如下的mts的參數(shù),完成了mts的配置。
#mts set by qiuyb
mts_dispatchers="(address=(protocol=tcp)(host=192.168.223.125))(dispatchers=10)"
mts_max_dispatchers=20
mts_servers=10
mts_max_servers=50
mts_service=billing
mts_listener_address="(address=(protocol=tcp)(host=192.168.223.125)(port=1521))" large_pool_size=400m
#end of qiuyb's set
需要說(shuō)明的是large_pool_size這個(gè)初始化參數(shù),在mts環(huán)境中為獲取更好的性能建議設(shè)置這個(gè)參數(shù),這樣uga都從large_pool這樣一個(gè)固定的區(qū)域中進(jìn)行分配,而不用從shared pool中動(dòng)態(tài)進(jìn)行分配,這樣也可以減少ora-04031錯(cuò)誤的發(fā)生。
五、 優(yōu)化mts配置選項(xiàng)及你可能問(wèn)的幾個(gè)問(wèn)題
1、 large_pool_size這個(gè)參數(shù)我該設(shè)為多大呢?
當(dāng)large_pool_size的大小能夠滿足所有的共享服務(wù)進(jìn)程所需的內(nèi)存就可以了,當(dāng)然如果內(nèi)存夠用的話可以適當(dāng)?shù)募哟笠稽c(diǎn),如下的語(yǔ)句便可以得出自實(shí)例啟動(dòng)來(lái)mts連接所用的內(nèi)存的最大數(shù)量,可以看出來(lái)是200多m。
select sum(value) "max mts memory allocated"
from v$sesstat ss, v$statname st
where name = 'session uga memory max'
and ss.statistic#=st.statistic#
max mts memory allocated
------------------------
214457296
2、 如何判斷我dispatcher的數(shù)量是不是夠用呢?
使用如下的語(yǔ)句,當(dāng)dispatcher的繁忙比率超過(guò)50%的時(shí)侯,你就要考慮增加dispatcher的數(shù)量了,用alter system動(dòng)態(tài)卻可完成。
select name, (busy / (busy + idle))*100 "dispatcher % busy rate"
from v$dispatcher
3、 如何判斷共享服務(wù)進(jìn)程是不是夠用呢?
使用如下的語(yǔ)句來(lái)確定每次請(qǐng)求的平均等待時(shí)間,監(jiān)測(cè)average wait time per reques這個(gè)值,當(dāng)這個(gè)值持續(xù)增長(zhǎng)時(shí)你該考慮增加shared servers了。
select decode(totalq,0,'no requests') "wait time",
wait/totalq ||'hundredths of seconds' "average wait time per request"
from v$queue
where type = 'common'
4、 如何在mts配置的server請(qǐng)求dedicate的連接著?
你在tnsnames.ora中做服務(wù)名配置時(shí)加入srvr=dedicated這個(gè)選項(xiàng)就可以了,示例如下:
billing =
(description =
(
address_list =(address = (protocol = tcp)(host = ks3)(port = 1521))
)
(
connect_data =
(service_name = billing)
(srvr = dedicated)
)
)
六、 結(jié)文
在你的oracle的服務(wù)器出現(xiàn)高的內(nèi)存利用率和出現(xiàn)頻繁換頁(yè)時(shí),使用mts是一個(gè)不錯(cuò)的選擇。總體上說(shuō)來(lái),mts較適合oltp這種類型的應(yīng)用,對(duì)于那些數(shù)據(jù)倉(cāng)庫(kù)、dds這些類型的應(yīng)用它則是不適合的。