收集关于Oracle Server专用模式和共享模式的论述

时间:2023-01-04 03:40:55
收集关于Oracle Server专用模式和共享模式的论述 收集关于Oracle Server专用模式和共享模式的论述 新一篇: Merge Into 语句代替Insert/Update在Oracle中的应用实战 来源一:      
        专用模式和共享模式的本质区别就是:用户进程对ORACLE服务器所在的计算机的内存区里”服务器进程“是专用还是共享。
        具体表现在:
        1、在共享模式下,多个用户进程共享一个服务器进程;在专用模式下,ORACLE为每一个用户进程准备一个服务器进程。
        2、在实际情况中,应用系统与数据库的连接请求总是很多,导致用户进程也很多,如果你的内存和CPU是有限的,同时,用户进程对数据库的操作占用空间不 多,那你就把数据库连接模式设置为共享模式,这样,ORACLE内存区的服务器进程只是有限的几个,这几个服务器进程会通过一个调度程序来应付若干用户进 程的请求。
        3、如果你的硬件资源比较好,就设置成专用模式,每一个用户进程都有一个服务器进程对应,这样,你的用户进程对数据的处理会非常快! 

        简单的说,连接客户数少,需要长时间占用数据库的,建议用专有模式,如果连接客户数众多,使用共享模式。

来源二:
        共享服务器体系:客户进程最终与一个调度程序连接,PMON进程注册了调度程序的位置和负荷,使监听器能够提交到负荷最小的调度程序。一个调度程序能并发地支持多重的客户连接。  
        专用服务器体系:每个客户进程与专用服务器进程连接。服务器进程没被任何另外的客户共享。  
   
        另:专用服务器体系结构不支持HTTP和IIOP客户,仅支持TTC客户。

来源三:
        专用是指一个用户进程对应一个服务器进程,也就是说,每个服务器进程被特定用户进程所独占。如果有50个用户进程,则会对应50个服务器进程。  
        共享是多个用户进程可以共享一个服务器进程,中间是通过一个调度进程实现的,由于共享,所以服务器消耗较小。具体的配置,需要配置mts参数。

来源四:
        建议不要选共享的!  
        就是配置MTS而已  
        专用的安装好后也可以配置的  
        再说了,mts不能乱用的 

来源五:
        1、是否为配置为共享服务器,最主要的参数是
        8i mts_servers
        9i shared_server
        show parameter shared_server mts_servers
     如果数值 > 0 ,就是enable了共享服务器.

     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'方式。

来源六:(ORACLE用户文档)
In Dedicated Server Mode, there is a dedicated server process for each user process.

Select this option when the number of total clients is expected to be small, or when

database clients will make persistent, long-running requests to the database.


In Shared Server Mode, several client connections share a database-allocated pool of

resources. Use this mode when a large number of users need to connect to the

database. It is also useful when database memory is limited and for better

performance, since you can have more client connections to the database than in

dedicated server mode with the same memory. If you choose shared server mode, you

must also indicate the number of server processes you want to create when an instance

is started up. For more information about setting this parameter, click Help.

来源七:
        在建立了instance后,如果想修改这个模式,直接通过dbassist可以修改。但现在我们的用户数一般都不是很多,所以,目前的用户表现不明显。
来源八:        要修改和查看工作模式,通过以下方式来进行。
      1、修改工作模式
      在init参数中设置(8i,MTS_dispatchers, 9i, dispatchers ) ,如果要起用共享模式,把mts_dispatchers = "(protocol=TCP)" 行前面的#号去掉,如果要禁止,就加一个#屏蔽这一行。当然,对这个共享模式,有很多参数,请用DBACA来修改。
    2、如果查看是否起用了共享模式
    如果下面的记录为空,表示没有起用共享,是专用模式。
        SQL> select * from v$dispatcher;
        no rows selected
     SQL>
    否则,就是共享模式,并有相关的值。 
来源九:        ORA-12571:TNS 包写入程序失败。
    这个错误与启用了MTS_dispatchers,出现错误只要按楼上的方法修改INIT参数即可。
来源十:        对于启用了共享模式后,客户端不能连接到服务器,
        出现 ORA-12545 连接因对象主机或对象不存在而失败.
        查看帮助:
        TNS-12545 Connect failed because target host or object does not exist
  
        Cause:
The address specified is not valid, or the program being connected to does not exist.
      
        Action: Ensure the ADDRESS parameters have been entered correctly; the most likely incorrect parameter is the node name. Ensure that the executable for the server exists (perhaps "oracle" is missing). If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the host name to a numeric IP address and try again.
    根据上面的要求修改,还是不行,后来修改了HOST文件,在其中增加了服务器的主机对应IP地址,问题得以解决.
    WINDOWS XP的HOST文件在c:windows/system32/drivers/etc 下面.文件名就叫HOST,没有扩展名.
        我的机器以前的HOST如下:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host


127.0.0.1 localhost

后在最后一行增加服务器ZLTECHCENTER的IP地址后,如下:
127.0.0.1 localhost
192.168.0.210 zltechcenter

注意,是在客户端修改HOST文件。
当然,如果客户端的TNSNAME的连接类型选为专用模式,就可以不用修改HOST,也可以使用.
注意:默认连接类型是根据服务器的连接类型来判定的.如果服务器是共享,那么默认的连接类型:缺省数
据库,就是共享,否则,就是专用。