zoukankan      html  css  js  c++  java
  • oracle的shared server模式和dedicated server模式

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

    shared server 连接方式



    dedicated  server 连接方式


    2、shared server process

    在服务器上进行ps -ef| grep shared从而得到所有的oracle后台进程如下:

    oracle    4476     1  0 19:18 ?        00:00:00 ora_pmon_shared
    oracle    4478     1  0 19:18 ?        00:00:00 ora_psp0_shared
    oracle    4480     1  0 19:18 ?        00:00:00 ora_mman_shared
    oracle    4482     1  0 19:18 ?        00:00:01 ora_dbw0_shared
    oracle    4484     1  0 19:18 ?        00:00:01 ora_lgwr_shared
    oracle    4486     1  0 19:18 ?        00:00:03 ora_ckpt_shared
    oracle    4488     1  0 19:18 ?        00:00:02 ora_smon_shared
    oracle    4490     1  0 19:18 ?        00:00:00 ora_reco_shared
    oracle    4492     1  0 19:18 ?        00:00:02 ora_cjq0_shared
    oracle    4494     1  0 19:18 ?        00:00:04 ora_mmon_shared
    oracle    4496     1  0 19:18 ?        00:00:00 ora_mmnl_shared
    oracle    4498     1  0 19:18 ?        00:00:00 ora_d000_shared
    oracle    4500     1  0 19:18 ?        00:00:00 ora_s000_shared
    oracle    4520     1  0 19:18 ?        00:00:00 ora_qmnc_shared
    oracle    4535     1  0 19:18 ?        00:00:00 ora_q002_shared
    oracle    4537     1  0 19:18 ?        00:00:00 ora_q003_shared
    oracle   15255     1  0 23:36 ?        00:00:00 ora_j000_shared

    在客户端连接oracle数据库时,不会分配新的进程
    客户端程序先连接到监听,然后监听程序通过调度器d000将任务放倒request Queue中,然后由空闲的共享进程s000来进行处理,处理完成之后把结果放倒response Queue中,然后调度器进程d000将结果返回给客户端程序 

    在服务器端用sqlplus连接的进程

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

    当在远程指定用DEDICATED方式连接时,也会分配一个单独的用户进程进行连接,如下

    客户端的tnsnames.ora文件中,在connect_data中添加一行,(SERVER = DEDICATED),从而指定用DEDICATED方式进行连接,连接的进程如下

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

    2、dedicated server process

    常见进程如下:

    oracle   17596     1  0 00:37 ?        00:00:00 ora_pmon_dedicated
    oracle   17598     1  0 00:37 ?        00:00:00 ora_psp0_dedicated
    oracle   17600     1  0 00:37 ?        00:00:00 ora_mman_dedicated
    oracle   17602     1  0 00:37 ?        00:00:00 ora_dbw0_dedicated
    oracle   17604     1  0 00:37 ?        00:00:00 ora_lgwr_dedicated
    oracle   17606     1  0 00:37 ?        00:00:00 ora_ckpt_dedicated
    oracle   17608     1  0 00:37 ?        00:00:00 ora_smon_dedicated
    oracle   17610     1  0 00:37 ?        00:00:00 ora_reco_dedicated
    oracle   17612     1  0 00:37 ?        00:00:00 ora_cjq0_dedicated
    oracle   17614     1  0 00:37 ?        00:00:00 ora_mmon_dedicated
    oracle   17616     1  0 00:37 ?        00:00:00 ora_mmnl_dedicated
    oracle   17618     1  0 00:37 ?        00:00:00 ora_d000_dedicated
    oracle   17620     1  0 00:37 ?        00:00:00 ora_s000_dedicated
    oracle   17639     1  0 00:38 ?        00:00:00 ora_qmnc_dedicated
    oracle   17661     1  0 00:38 ?        00:00:00 ora_q001_dedicated
    oracle   17663     1  0 00:38 ?        00:00:00 ora_q002_dedicated
    oracle   18086     1  0 00:50 ?        00:00:00 ora_j000_dedicated
    客户端连接进去之后,服务器会给你分配一个新的进程,在不指定或者指定为dedicated连接方式之后,进程如下:

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

    服务器登陆连接进程如下:

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

    当指定为shared方式连接dedicated server时,会出现如下错误:

    C:\Users\Administrator>sqlplus system/orcl@dedicated
    
    SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 20 15:56:47 2013
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    ERROR:
    ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序
    
    
    请输入用户名:
    
    说明,如果服务连接方式为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.

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


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

    SQL> show parameter dispatcher
    
    NAME				     TYPE
    ------------------------------------ ----------------------
    VALUE
    ------------------------------
    dispatchers			     string
    (PROTOCOL=TCP)
    max_dispatchers 		     integer
    
    SQL> alter system set dispatchers = '' scope=both;
    
    System altered.
    
    SQL> show parameter shared_server
    
    NAME				     TYPE
    ------------------------------------ ----------------------
    VALUE
    ------------------------------
    max_shared_servers		     integer
    
    shared_server_sessions		     integer
    
    shared_servers			     integer
    1
    SQL> alter system set shared_servers = 0 scope=both;
    
    System altered

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


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

    for linux and python
  • 相关阅读:
    Mysql问题1862
    S3TC IAP15F2K61S2点亮一个发光二极管keil和stc-isp软件操作
    .NET练习计算平方根
    求一个整数以内的素数(函数实现)
    判断一个数是不是素数(函数实现)
    #号在进制输出值的作用,美化输出
    分类——决策树模型(附有决策树生成步骤)
    分类:贝叶斯分类之新闻组数据组学习(查看数据类型的方法)(环境:Pycharm)
    分类:K-近邻分类之鸢尾花数据集学习(包含数据预处理中的标准化)(环境:Pycharm)
    编写一个程序,求2~n间的素数,n由键盘输入,循环变量分别 从2到n、2到(int)sqrt(n),分别测出两个循环的所用时间。
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525195.html
Copyright © 2011-2022 走看看