Oracle Shared Server(OSS)筆記 (zt)

tolywang發表於2007-07-19
1、overview:
dedicated Server: 每一個session分配一個server process,而大多數時候session都是idle的,佔用資源
流程:user process(client)user session data放在PGA中。

shared Server: OSS類似於Connection pool,但跟java中的連線池不一樣。
流程:user process(client)---&gtdispatcher process--&gtrequest queue--&gtshared server process--&gtresponse queue--&gtdispatcher process--&gtuser process(client),如圖:
user session data 放在SGA,最好設定LARGE_POOL_SIZE,用來儲存session data.
Shared server也可以建立dedicated server process,配置tnsnames.ora: SERVER=DECICATED,因為某些操作必須使用專用連線,如:
1、Submitting batch job
2、DBA job
什麼時候使用OSS:
- 系統執行在Dedicated模式下負載過大
- limit of resources

配置OSS,initSID.ora:
- DISPATCHER="(PROTOCOL=TCP)(DISPATCHERS=3)", Dynamic, default NULL
- SHARED_SERVERS=3, Dynamic, default 0
optional parameters:
- MAX_DISPATCHERS, static, default 5
- MAX_SHARED_SERVERS, static, default 20 OR 2*SHARED_SERVERS
- CIRCUITS, static, default SESSIONS or 0
- SHARED_SERVER_SESSIONS, total number of user sessions, static, default: min(CIRCUITS, SESSIONS-5)
- LARGE_POOL_SIZE
幾個相關view: v$circuit, v$shared_server, v$queue, v$dispatcher, v$shared_server_monitor, v$session

tuning幾個方面:
1、dispatchers爭用:dispatchers不會自動根據系統負載調整,必須監視,並且手動調整,
- Busy rate,view v$dispatchers, if > 50%, add dispatchers
- Dispatcher waiting time, view v$queue, v$dispatchers, 如果穩定上升,add dispatchers
2、shared servers: 系統可動態調整,由PMON完成,但也有限度,(SHARED_SERVERS, MAX_SHARED_SERVERS)
view v$shared_server, v$queue
3、監視process usage, view v$circuit
- Server address
- Dispatcher address
- user session address

troubleshooting
1、listener沒執行
2、不要在作業系統級別kill user process, 用alter system kill session代替!!!
3、DBA沒有專用連線
4、引數(INSTANCE_NAME, SERVICE_NAMES, DB_NAME)沒有設定, 例項自動註冊失敗。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84804/,如需轉載,請註明出處,否則將追究法律責任。

相關文章