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