天天看點

oracle共享伺服器模式

oracle 響應用戶端請求有兩種方式:

1 專有連接配接:用一個伺服器程序響應一個用戶端請求

2 共享連接配接:用一個分派器(dispatcher)響應一個用戶端請求,伺服器端有多個伺服器程序,共享處理所有分派器的請求;

兩種連接配接方式的優缺點

1 對于連接配接數不多的應用,适宜用專有連接配接,客戶的請求響應及時;

2 對于連接配接數較大的應用,适宜用共享連接配接,充分利用系統資源

背景作業和RMAN操作必須使用專有連接配接;

配置共享伺服器連接配接

既可以在參數檔案内進行靜态配置,可以動态修改;

共享伺服器配置的初始化參數

■ SHARED_SERVERS: 初始化啟動的伺服器程序數和保留的最小伺服器程序數;如果使用共享連接配接,這個參數是必配的;

■ MAX_SHARED_SERVERS: 最大并發的共享伺服器程序數

■ SHARED_SERVER_SESSIONS: 可并發處理的最大共享使用者會話數,超過此數值的使用者會話将使用專有連接配接

■ DISPATCHERS: 共享連接配接的分派器數量

■ MAX_DISPATCHERS: 可同時并發的共享連接配接的最大的分派器數量,此參數目前可忽略;

■ CIRCUITS: 可用的虛拟回路數(Specifies the total number of virtual circuits that are available for inbound and outbound network sessions)

1 靜态參數檔案中SHARED_SERVERS大于0既可。其他參數不是必要的。

2 使用ALTER SYSTEM語句設定SHARED_SERVERS為一大于0值,如:

ALTER SYSTEM SET SHARED_SERVERS = 5;

設定SHARED_SERVERS數值

一般而言,可以按一個伺服器響應10個連接配接進行計算;

實際的共享伺服器程序可以動态增加,SHARED_SERVERS的數值應該設定為實際所需要的最小值;

設定MAX_SHARED_SERVERS以限制共享伺服器程序數;

可以動态修改MAX_SHARED_SERVERS以允許更多的伺服器程序數,或者動态修改SHARED_SERVERS為一個大于MAX_SHARED_SERVERS的數值以允許更多的伺服器程序數;

Number of dispatchers =

CEIL ( max. concurrent sessions / connections for each dispatcher )

例如:

每程序能支援970個連接配接

TCP/IP連接配接最多有4000個會話

安全(TCP/IP with SSL)最多有2,500個會話

則用于TCP/IP協定的DISPATCHERS可設為5,CELL(4000 / 970), 用于安全TCP/IP協定的dispatchers 可設為3,CELL(2500 / 970:

DISPATCHERS=’(PROT=tcp)(DISP=5)’, ‘(PROT-tcps)(DISP=3)’

強制特定的IP使用DISPATCH

DISPATCHERS=”(ADDRESS=(PROTOCOL=TCP)(HOST=144.25.16.201))(DISPATCHERS=2)”

這将産生兩個DISPATCH監聽特定的IP

強制DISPATCH使用特定端口

DISPATCHERS=”(ADDRESS=(PROTOCOL=TCP)(PORT=5000))”

DISPATCHERS=”(ADDRESS=(PROTOCOL=TCP)(PORT=5001))”

修改DISPATCH數量

DISPATCH不可以自動地動态變化。須使用ALTER SYSTEM指令進行修改。

MAX_DISPATCHERS可以設定可使用的最大DISPATCH數;

察看DISPATCH的負載性能,可查詢如下視圖

■ VQUEUE■VDISPATCHER

■ VDISPATCHERRATE動态修改DISPATCH數量,使用ALTERSYSTEM指令,如初始配置為:DISPATCHERS=′(PROT=tcp)(DISP=2)′,‘(PROT=tcps)(DISP=2)′現在要将TCP協定的DISPATCH設為3,TCPS設為1指令如下:ALTERSYSTEMSETDISPATCHERS=‘(INDEX=0)(DISP=3)′,‘(INDEX=1)(DISP=1)′;或:ALTERSYSTEMSETDISPATCHERS=‘(PROT=tcp)(DISP=3)′,‘(PROT−tcps)(DISP=1)′;如果目前TCP協定的DISPATCH少于3,資料庫将會建立新的DISPATCH。相反,如下TCPS目前有2個DISPATCH,則會在使用者退出連接配接後減少一個dispatch查詢DISPATCH的配置VDISPATCHER_CONFIG

當修改一個DISPATCH的DESCRIPTION, ADDRESS, PROTOCOL, CONNECTIONS,TICKS, MULTIPLEX, and POOL屬性後,修改後的設定不能立即生效,需要強制性地殺掉現在的DISPATCH程序

關閉DISPATCH程序

1 确定要關閉的程序

SELECT NAME, NETWORK FROM V$DISPATCHER;

2 ALTER SYSTEM SHUTDOWN IMMEDIATE ‘D002’(DISPATCH NAME);

關閉共享服務連接配接

1 設定SHARED_SERVERS=0;

2 關閉DISPATCH

ALTER SYSTEM SET DISPATCHERS = ”;

監控

View Description

VDISPATCHER提供DISPATCH程序資訊,包括DISPATCH名稱,網絡,位址,狀态,統計資訊和索引号等;VDISPATCHER_CONFIG 提供DISPATCH的配置資訊

VDISPATCHERRATE提供DISPATCH的速度(RATE)統計VQUEUE 提供共享伺服器隊列資訊.

VSHAREDSERVER提供共享伺服器資訊.VCIRCUIT 提供使用者通過DISPATCH連接配接到資料庫的虛拟回路資訊(virtual circuits)

V$SHARED_SERVER_MONITOR 提供共享伺服器的優化資訊