Oracle的共享服務(wù)器進(jìn)程
?
??? Oracle在安裝實(shí)例時(shí)會(huì)需要選擇是使用單獨(dú)服務(wù)器進(jìn)程還是共享服務(wù)器進(jìn)程。這個(gè)屬性就是為了減輕大用戶量對(duì)于系統(tǒng)的壓力而設(shè)的,如果有N個(gè)用戶要進(jìn)行訪問(wèn),就必須要設(shè)置為共享服務(wù)器進(jìn)程。要掌握調(diào)度程序進(jìn)程、共享服務(wù)進(jìn)程、調(diào)度程度這些概念的區(qū)別。
?
?
一、
共享服務(wù)器初始化參數(shù)
?
??? DISPATCHERS:配置調(diào)度程序進(jìn)程
??? MAX_DISPATCHERS:指定同時(shí)運(yùn)行的調(diào)度程序進(jìn)程最大數(shù)目
?
??? 用于設(shè)置調(diào)度程序的起始數(shù)目,初始化文件可以指定多個(gè)DISPATCHERS參數(shù),但必須是彼此相鄰的。Oracle內(nèi)部為每個(gè)DISPATCHERS參數(shù)分配一個(gè)INDEX索引值,以方便之后使用ALTER SYSTEM語(yǔ)句時(shí)明確引用某個(gè)DISPATCHERS參數(shù)。
?
??? 對(duì)一般系統(tǒng)來(lái)說(shuō),每1000個(gè)連接分配1個(gè)調(diào)度程序,運(yùn)轉(zhuǎn)好的話再多一些。太多的調(diào)度程序會(huì)降低系統(tǒng)性能,所以要實(shí)現(xiàn)估計(jì)好連接數(shù)。
?
??? 舉例:
??? DISPATCHERS = "(PROTOCOL = TCP)" --基本參數(shù)
??? DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.2.1.81)) (DISPATCHERS = 2)" --強(qiáng)調(diào)IP
??? DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(PORT = 5000))" --強(qiáng)調(diào)端口
?
?
?
??? SHARED_SERVERS:指定啟動(dòng)實(shí)例時(shí)可創(chuàng)建的共享服務(wù)器進(jìn)程數(shù)
??? MAX_SHARED_SERVERS:指定可以同時(shí)運(yùn)行的共享服務(wù)器進(jìn)程最大數(shù)目
?
??? 指定了啟動(dòng)時(shí)希望創(chuàng)建的共享服務(wù)進(jìn)程的數(shù)目。Oracle會(huì)在SHARED_SERVERS和MAX_SHARED_SERVERS之間的數(shù)目中,根據(jù)請(qǐng)求隊(duì)列的長(zhǎng)度動(dòng)態(tài)調(diào)整共享服務(wù)器的數(shù)目。一般來(lái)說(shuō),10個(gè)連接分配一個(gè)共享服務(wù)器。
?
??? MAX_SHARED_SERVERS是一個(gè)靜態(tài)初始參數(shù),但SHARED_SERVERS是動(dòng)態(tài)參數(shù),可以使用ALTER SYSTEM語(yǔ)句修改。
?
??? CIRCUTTS:進(jìn)出網(wǎng)絡(luò)會(huì)話時(shí)可以利用的虛擬回路總數(shù)
?
??? SHARED_SERVER_SESSIONS:用戶會(huì)話允許的共享服務(wù)器總數(shù),可以為專門服務(wù)器保留用戶會(huì)話
?
??? LARGE_POOL_SIZE:指定大型存儲(chǔ)池分配字節(jié)大小
?
??? SESSIONS:系統(tǒng)可創(chuàng)建的最大會(huì)話數(shù)目
?
?
二、修改調(diào)度程序和服務(wù)器進(jìn)程
?
??? 1、調(diào)度進(jìn)程
?
??? 可通過(guò)V$QUEUE、V$DISPATCHER、V$DISPATCHER_RATE來(lái)查看
?
??? 通過(guò)ALTER SYSTEM修改DISPATCHERS參數(shù)值
?
??? ALTER SYSTEM SET DISPATCHERS =
??? '(PROTOCOL = TCP)(DISPATCHERS = 5)(INDEX = 0)',
??? '(PROTOCOL = TCPS)(DISPATCHERS = 2)(INDEX = 1)';
?
??? 注1:DISPATCHERS:是參數(shù);DISPATCHERS=5 才是調(diào)度進(jìn)程個(gè)數(shù);
??? 注2:INDEX用于識(shí)別DISPATCHERS參數(shù),從0到n依次排列,即V$DISPATCHER中的CONF_INDX值
?
?
??? 2、關(guān)閉調(diào)度進(jìn)程
?
??? 首先要查詢到DISPATCHERS的NAME:
?
??? SELECT NAME,NETWORK FROM V$DISPATCHER;
?
??? 然后關(guān)閉調(diào)度進(jìn)程:
?
??? ALTER SYSTEM SHUTDOWN IMMEDIATE 'D000';
?
??? 更改共享服務(wù)器進(jìn)程最少數(shù)目:
?
??? ALTER SYSTEM SET SHARED_SERVERS = 2;
?
?
??? 3、監(jiān)視共享服務(wù)器
?
??? V$DISPATCHER:提供有關(guān)調(diào)度程序進(jìn)程的信息;
??? V$DISPATCHER_RATE:提供調(diào)度程序進(jìn)程的速率統(tǒng)計(jì)表;
??? V$QUEUE:包含有關(guān)共享服務(wù)器的消息隊(duì)列的信息;
??? V$SHARED_SERVER:包含有關(guān)共享服務(wù)器進(jìn)程的信息;
??? V$CIRCUIT:包含有關(guān)虛擬回路的信息;
??? V$SHARED_SERVER_MONITOR:包含協(xié)調(diào)共享服務(wù)器的信息;
??? V$SGA:包含各個(gè)系統(tǒng)全局區(qū)(SGA)組的容量信息;
??? V$SGASTAT:關(guān)于DGA的詳細(xì)統(tǒng)計(jì)信息,用于協(xié)調(diào)共享服務(wù)器;
??? V$SHARED_POOL_RESERVED:共享存儲(chǔ)池的信息
?
?
?
?