天天看點

轉載:oracle的shared server模式和dedicated server模式

轉載位址:http://blog.csdn.net/kellyseeme/article/details/8959980

1、shared server和dedicated server連接配接方式比較

轉載:oracle的shared server模式和dedicated server模式

shared server 連接配接方式

轉載:oracle的shared server模式和dedicated server模式

dedicated  server 連接配接方式

2、shared server process

在伺服器上進行ps -ef| grep shared進而得到所有的oracle背景程序如下:

[html]  view plain  copy

  1. oracle    4476     1  0 19:18 ?        00:00:00 ora_pmon_shared  
  2. oracle    4478     1  0 19:18 ?        00:00:00 ora_psp0_shared  
  3. oracle    4480     1  0 19:18 ?        00:00:00 ora_mman_shared  
  4. oracle    4482     1  0 19:18 ?        00:00:01 ora_dbw0_shared  
  5. oracle    4484     1  0 19:18 ?        00:00:01 ora_lgwr_shared  
  6. oracle    4486     1  0 19:18 ?        00:00:03 ora_ckpt_shared  
  7. oracle    4488     1  0 19:18 ?        00:00:02 ora_smon_shared  
  8. oracle    4490     1  0 19:18 ?        00:00:00 ora_reco_shared  
  9. oracle    4492     1  0 19:18 ?        00:00:02 ora_cjq0_shared  
  10. oracle    4494     1  0 19:18 ?        00:00:04 ora_mmon_shared  
  11. oracle    4496     1  0 19:18 ?        00:00:00 ora_mmnl_shared  
  12. oracle    4498     1  0 19:18 ?        00:00:00 ora_d000_shared  
  13. oracle    4500     1  0 19:18 ?        00:00:00 ora_s000_shared  
  14. oracle    4520     1  0 19:18 ?        00:00:00 ora_qmnc_shared  
  15. oracle    4535     1  0 19:18 ?        00:00:00 ora_q002_shared  
  16. oracle    4537     1  0 19:18 ?        00:00:00 ora_q003_shared  
  17. oracle   15255     1  0 23:36 ?        00:00:00 ora_j000_shared  

在用戶端連接配接oracle資料庫時,不會配置設定新的程序

用戶端程式先連接配接到監聽,然後監聽程式通過排程器d000将任務放倒request Queue中,然後由空閑的共享程序s000來進行處理,處理完成之後把結果放倒response Queue中,然後排程器程序d000将結果傳回給用戶端程式 

在伺服器端用sqlplus連接配接的程序

[html]  view plain  copy

  1. oracle   16046 15677  0 May19 ?        00:00:01 oracleshared (DESCRIPTION=(LOCAL=YES)(ADDRESS=  
  2. (PROTOCOL=beq)))  

當在遠端指定用DEDICATED方式連接配接時,也會配置設定一個單獨的使用者程序進行連接配接,如下

用戶端的tnsnames.ora檔案中,在connect_data中添加一行,(SERVER = DEDICATED),進而指定用DEDICATED方式進行連接配接,連接配接的程序如下

[html]  view plain  copy

  1. oracle   16584     1  0 00:08 ?        00:00:00 oracleshared (LOCAL=NO)  

2、dedicated server process

常見程序如下:

[html]  view plain  copy

  1. oracle   17596     1  0 00:37 ?        00:00:00 ora_pmon_dedicated  
  2. oracle   17598     1  0 00:37 ?        00:00:00 ora_psp0_dedicated  
  3. oracle   17600     1  0 00:37 ?        00:00:00 ora_mman_dedicated  
  4. oracle   17602     1  0 00:37 ?        00:00:00 ora_dbw0_dedicated  
  5. oracle   17604     1  0 00:37 ?        00:00:00 ora_lgwr_dedicated  
  6. oracle   17606     1  0 00:37 ?        00:00:00 ora_ckpt_dedicated  
  7. oracle   17608     1  0 00:37 ?        00:00:00 ora_smon_dedicated  
  8. oracle   17610     1  0 00:37 ?        00:00:00 ora_reco_dedicated  
  9. oracle   17612     1  0 00:37 ?        00:00:00 ora_cjq0_dedicated  
  10. oracle   17614     1  0 00:37 ?        00:00:00 ora_mmon_dedicated  
  11. oracle   17616     1  0 00:37 ?        00:00:00 ora_mmnl_dedicated  
  12. oracle   17618     1  0 00:37 ?        00:00:00 ora_d000_dedicated  
  13. oracle   17620     1  0 00:37 ?        00:00:00 ora_s000_dedicated  
  14. oracle   17639     1  0 00:38 ?        00:00:00 ora_qmnc_dedicated  
  15. oracle   17661     1  0 00:38 ?        00:00:00 ora_q001_dedicated  
  16. oracle   17663     1  0 00:38 ?        00:00:00 ora_q002_dedicated  
  17. oracle   18086     1  0 00:50 ?        00:00:00 ora_j000_dedicated  

用戶端連接配接進去之後,伺服器會給你配置設定一個新的程序,在不指定或者指定為dedicated連接配接方式之後,程序如下:

[html]  view plain  copy

  1. oracle   18194     1  1 00:52 ?        00:00:00 oraclededicated (LOCAL=NO)  

伺服器登陸連接配接程序如下:

[html]  view plain  copy

  1. oracle   18215 18214  1 00:53 ?        00:00:00 oraclededicated (DESCRIPTION=(LOCAL=YES)(ADDRESS=PROTOCOL=beq)))  

當指定為shared方式連接配接dedicated server時,會出現如下錯誤:

[html]  view plain  copy

  1. C:\Users\Administrator>sqlplus system/[email protected]  
  2. SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 20 15:56:47 2013  
  3. Copyright (c) 1982, 2010, Oracle.  All rights reserved.  
  4. ERROR:  
  5. ORA-12520: TNS: 監聽程式無法為請求的伺服器類型找到可用的處理程式  
  6. 請輸入使用者名:  

說明,如果服務連接配接方式為dedicated server,那麼就不能使用shared server的連接配接方式來進行連接配接,但是如果是開啟了shared server方式,那麼還是可以使用dedicated server方式來進行連接配接的

小結論如下:

1. 如果是dedicated server,則用戶端隻能建立dedicated server connection

2. 如果是shared server,則用戶端能建立dedicated server connection和shared server connection,隻要在service name中指定server=dedicated or server=shared.

[html]  view plain  copy

  1. (1)A dedicated server process, which services only one userprocess  
  2. (2)A shared server process, which can service multiple userprocesses  

3、如何在dedicated server模式中,不出現D000和S000程序

[html]  view plain  copy

  1. SQL> show parameter dispatcher  
  2. NAME                     TYPE  
  3. ------------------------------------ ----------------------  
  4. VALUE  
  5. ------------------------------  
  6. dispatchers              string  
  7. (PROTOCOL=TCP)  
  8. max_dispatchers              integer  
  9. SQL> alter system set dispatchers = '' scope=both;  
  10. System altered.  
  11. SQL> show parameter shared_server  
  12. NAME                     TYPE  
  13. ------------------------------------ ----------------------  
  14. VALUE  
  15. ------------------------------  
  16. max_shared_servers           integer  
  17. shared_server_sessions           integer  
  18. shared_servers               integer  
  19. 1  
  20. SQL> alter system set shared_servers = 0 scope=both;  
  21. System altered  

然後再檢視資料庫的程序的時候,就不會出現D000程序和S000程序了

為何建立的是專有模式的資料庫,資料庫卻自動配置了dispatchers參數,暫時無解!!!!