转载:oracle的shared server模式和dedicated server模式

2 篇文章 0 订阅
1 篇文章 0 订阅

转载地址:http://blog.csdn.net/kellyseeme/article/details/8959980

1、shared server和dedicated server连接方式比较


shared 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.   
  3. (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/orcl@dedicated  
  2.   
  3. SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 20 15:56:47 2013  
  4.   
  5. Copyright (c) 1982, 2010, Oracle.  All rights reserved.  
  6.   
  7. ERROR:  
  8. ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序  
  9.   
  10.   
  11. 请输入用户名:  
说明,如果服务连接方式为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.   
  3. NAME                     TYPE  
  4. ------------------------------------ ----------------------  
  5. VALUE  
  6. ------------------------------  
  7. dispatchers              string  
  8. (PROTOCOL=TCP)  
  9. max_dispatchers              integer  
  10.   
  11. SQL> alter system set dispatchers = '' scope=both;  
  12.   
  13. System altered.  
  14.   
  15. SQL> show parameter shared_server  
  16.   
  17. NAME                     TYPE  
  18. ------------------------------------ ----------------------  
  19. VALUE  
  20. ------------------------------  
  21. max_shared_servers           integer  
  22.   
  23. shared_server_sessions           integer  
  24.   
  25. shared_servers               integer  
  26. 1  
  27. SQL> alter system set shared_servers = 0 scope=both;  
  28.   
  29. System altered  

然后再查看数据库的进程的时候,就不会出现D000进程和S000进程了


为何创建的是专有模式的数据库,数据库却自动配置了dispatchers参数,暂时无解!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值