例項解析Oracle是共享模式還是專用模式

tolywang發表於2008-04-11

1.是否配置為共享伺服器,最主要的引數是:

8i mts_servers
9i shared_server 
show parameter shared_server mts_servers

如果數值 > 0 ,就是enable了共享伺服器.

[@more@]

2.在配置為共享伺服器的情況,Client可以選擇用共享伺服器或者專用伺服器來連線到資料庫,這個引數的控制是在tnsnames.ora裡設定的。

aaaa=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521))
)
(CONNECT_DATA =
(SID = aa)
(SERVER = DEDICATED) 
)
)

紅色部分指定了用DEDICATED方式連線DB.

另外,Background process ,以及透過本地連線進來的,只能是DEDICATED

比如說sqlplus user/pass 形式

如果DB沒有配置共享伺服器,那麼Client只能以DEDICATED方式連線DB.

3.判斷一個已經連線的session的連線方式有兩種方法:

A:
select server from v$session 
where ...

如果server = 'DEDICATED'則是DEDICATED方式

server='SHARED'則是shared方式,並且正有shared_server_process為其服務

server='NONE'的話,則是shared方式,並且當前沒有shared_server_process為其服務。

B.:僅用於Unix 底下,似乎windown不行

連線v$session, v$process 看process中的program

1 select p.program,s.server from v$session s , v$process p
2* where s.paddr = p.addr

如果 program 為 。。(S0NN) 的,則是shared方式,並且正有shared_server_process為其服務

如果 program 為 。。(D0NN) 的,則是shared方式,並且當前沒有shared_server_process為其服務

如果 program 為 其它的,則是'DEDICATED'方式

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

相關文章