9i 下的共享服务器 Shared Server(8i 中的多线程服务器 MTS )主要用在 OLTP 业务中,服务器进程每次处理业务只需很短的时间,大多在空闲状态,在这种情况下,可以用较少的资源,处理较多的用户请求。

共享服务器的配置
1.设置 DISPATCHERS 参数:
    在 pfile 中添加:

*.DISPATCHERS='(PROTOCOL=TCP)(SERVICE=SKYSH)(DISPATCHERS=2)(PROTOCOL=IPC)(DISPATCHERS=1)'

以上方法启动之后,DISPATCHER 的端口是随机分配的,如果要固定每个 DISPATCHER 的端口,可以用一下方法:
    使用不同端口:

*.DISPATCHERS='(ADDRESS=(PROTOCOL=TCP)(PORT=5000))(DISPATCHERS=1)','(ADDRESS=(PROTOCOL=TCP)(PORT=5001))(DISPATCHERS=1)'

使用相同端口:

*.dispatchers='(ADDRESS=(PROTOCOL=TCP)(PORT=5130))(SERVICE=SKYSHR)(DISPATCHERS=1)'

如果是 spfile 启动,先用 create pfile from spfile 创建 pfile,修改好之后,再用 create spfile from pfile 创建 spfile。
    注:虽然 DISPATCHERS 是动态参数,但只能用 alter system set DISPATCHERS 来临时添加删除 dispatcher,重启之后又恢复原值,且不能使用 scope 参数。
    其中,SERVICE=SKYSH 参数可以不指定,如果不指定,则需要指定 service_names 和 instance_name 初始参数,当 instance 启动时,PMON 会动态将 SERVICE 或者 service_names 指定的值邦定到 LISTENER,并生成 dispatchers。
    DISPATCHERS=2 如果不指定,那么默认值是 1。
    PROTOCOL:当使用 Shared Server 连接时,必须通过 Oracle Net Services,即使客户端和数据库在同一台机子上,如果在 Windows NT 上,dispatchers 只能使用 TCP/IP 协议。

2.设置客户端 tnsnames.ora 文件:

SKY3 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SKYSH.heysky.net)
      (SERVER = SHARED)
    )
  )

其中,SERVICE_NAME = SKYSH.heysky.net 中的值必须是动态邦定的 service_name.db_domain,否则会产生 ORA-12523 错误:

ERROR:
ORA-12523: TNS:listener could not find instance appropriate for the client connection

使用共享服务器连接,必须指定 (SERVER = SHARED),如果不指定,则作为 DEDICATE 连接。

3.SHARED_SERVERS 参数:
    该参数指定当 instance 启动时,初始生成的共享服务器进程数量,如果要使用共享服务器,该值必须大于 0,否则将产生 ORA-12520 错误:

ERROR:
ORA-12520: TNS:listener could not find available handler for requested type of server

通过动态改变该参数,可以增加减少默认的共享服务器进程数量,或者在不停止数据库的情况下禁止共享服务器。当动态将其设置为 0 时,共享服务器进程在完成所有工作,并空闲一段时间之后终止,可以通过查看 v$shared_server 动态视图来查看共享服务器的状态。

4.其他一些相关参数:
    MAX_DISPATCHERS:最大 DISPATCHER 数量,默认值是 5,如果 DISPATCHERS 中设置的所有 DISPATCHER 数量之和大于 5,那么 MAX_DISPATCHERS 等于这个和数。

MAX_SHARED_SERVERS:最大共享服务器进程,当初始分配的 SHARED_SERVERS 不够时,Oracle 会继续生成 共享服务器,直到这个最大值,当空闲时,Oracle 会终止空闲的进程,直到 SHARED_SERVERS 中指定的值为止。

CIRCUITS:改值一般等于 SESSIONS 的数量。

SHARED_SERVER_SESSIONS:共享服务器连接所能用的最大 SESSION 值,一般可以设置为小于 CIRCUITS and SESSIONS -5 的值,以便给 DEDICATE 连接留下一定的 SESSION 数。

5.一些注意事项:
    当 sysdba 已 shared server 连接时,不能执行 start up、shut down 或者 recovery 命令,否则可能出现如下错误:

ORA-00106: cannot startup/shutdown database when connected to a dispatcher

当使用共享服务器的时候,需要设置 LARGE_POOL_SIZE 参数,并且要足够,因为,当使用共享服务器的时候,本来在 PGA 中的 cursor state、User session data 信息会放到 LARGE POOL 中,如果 LARGE_POOL_SIZE 没有设置,就会放到 SHARE POOL 这将会使 SHARE POOL 产生碎片,影响性能。

6.一些相关动态视图:
    V$CIRCUIT
    V$SHARED_SERVER
    V$DISPATCHER
    V$SHARED_SERVER_MONITOR
    V$QUEUE
    V$SESSION

例子:查看使用哪种方式连接数据库

SQL> select sid from v$mystat where rownum=1;

SID
----------
         9

SQL> select server from v$session
  2  where sid=9;

SERVER
---------
SHARED

7.查看 listener 信息:
    使用 Shared Server 时,当 Instance 启动时,PMON 会动态将 service_names 参数,或 DISPATCHERS 中的 SERVICE 参数设定的值邦定到 LISTENER,并为该 SERVICE 分配相应的 DISPATCHER,这些信息可以通过 LSNRCTL 命令来获得:

C:/Documents and Settings/Administrator>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.3.0 - Production on 17-MAY-2006 23:22:58

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=heysky)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 9.2.0.3.0 - Produc
tion
Start Date                17-MAY-2006 21:41:12
Uptime                    0 days 1 hr. 46 min. 13 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   E:/oracle/ora92/network/admin/listener.ora
Listener Log File         E:/oracle/ora92/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=heysky)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC0ipc)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "SKYSHARED.heysky.net" has 1 instance(s).
  Instance "sky", status READY, has 4 handler(s) for this service...
Service "SKYTEST" has 1 instance(s).
  Instance "SKY", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL> service
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=heysky)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "SKYSHARED.heysky.net" has 1 instance(s).
  Instance "sky", status READY, has 4 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
      "D002" established:0 refused:0 current:0 max:1002 state:ready
         DISPATCHER <machine: HEYSKY, pid: 3600>
         (ADDRESS=(PROTOCOL=tcp)(HOST=heysky)(PORT=2312))
      "D001" established:0 refused:0 current:0 max:1002 state:ready
         DISPATCHER <machine: HEYSKY, pid: 2748>
         (ADDRESS=(PROTOCOL=tcp)(HOST=heysky)(PORT=2311))
      "D000" established:0 refused:0 current:0 max:1002 state:ready
         DISPATCHER <machine: HEYSKY, pid: 684>
         (ADDRESS=(PROTOCOL=tcp)(HOST=heysky)(PORT=2309))
Service "SKYTEST" has 1 instance(s).
  Instance "SKY", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
The command completed successfully

如果 LISTENER 启动,数据库的任何动态改变,比如,DISPATCHERS、SERVICE_NAMES 都会动态邦定到 LISTENER,从 LSNRCTL 可以看到这些改变,如果 LISTENER 没有启动,改变之后,再启动 LISTENER,那么这些改变不会邦定到 LISTENER 上。所以一般建议,先启动 LISTENER,再启动数据库,以便能够动态邦定。

Oracle共享服务器配置相关推荐

  1. Oracle 共享磁盘阵列 双机热备 实战 配置教程 配置手册

    Oracle 11g共享存储双机热备配置手册 本文介绍 通过ServHA Cluster配置Oracle共享磁盘阵列双机容错集群. 集群软件下载地址:http://www.microcolor.net ...

  2. oracle12c双机热备方案,Oracle 共享磁盘阵列 双机热备 实战 配置教程 配置手册

    Oracle 11g共享存储双机热备配置手册 本文介绍 通过ServHA Cluster配置Oracle共享磁盘阵列双机容错集群. 主要步骤: 一.防火墙配置. 二.安装Oracle  11g. 三. ...

  3. oracle共享内存设置spfile,IPC 资源、kernel.shmmax和Oracle 共享内存的调整

    ㈠ IPC 资源查看与释放 [root@david ~]# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms b ...

  4. Linux释放内存及手动释放Oracle共享内存段

    free -m #echo 3 > /proc/sys/vm/drop_caches#cat /proc/sys/vm/drop_caches3 free -m 手动删除Oracle共享内存段 ...

  5. oracle 共享磁盘阵列,Oracle 共享磁盘阵列 双机热备 实战 配置教程 配置手册

    Oracle 11g共享存储双机热备配置手册 本文介绍通过ServHA Cluster配置Oracle共享磁盘阵列双机容错集群. 集群软件下载地址:http://www.doczj.com/doc/6 ...

  6. oracle 共享磁盘阵列,共享磁盘阵列双机热备实战配置教程配置手册.docx

    共享磁盘阵列双机热备实战配置教程配置手册 Sql Server共享存储双机热备配置教程 本文以Sql Server 2008为例,介绍通过MicroColor ServHA Cluster配置SqlS ...

  7. oracle共享时监听,Oracle监听---共享连接参数配置介绍

    设置数据库启动几个dispatcher(启动3个dispatcher) SQL>alter system set dispatchers='(protocol=tcp) (dispatchers ...

  8. oracle共享内存不足,Oracle数据库共享内存分配不足怎么办

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Oracle数据库中,共享内存分配不足时,因为没有有效的利用保留区,就会造成无法分配合适的共享区的问题.cuug总结,一个ORACLE例程的系统全局区域( ...

  9. oracle共享内存系统全局,Oracle10g 管理系统全局区简介

    你对Oracle10g 管理系统全局区(SGA)的实际应用是否了解?对其的一些相关步骤的运行是否了如指掌?如果你对Oracle10g 管理系统全局区(SGA)的相关内容感兴趣的话,你就可以浏览我们的文 ...

最新文章

  1. Windows+Nginx+IIS做图片分布式存储详细步骤
  2. python3实现字符串的全排列的方法(无重复字符)
  3. 从DevOps到AIOps,阿里如何实现智能化运维?
  4. Prosjecni(构造)
  5. 【转载】OpenStack Swift学习笔记
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (一) ——开发原则
  7. 动态库注入--APC注入
  8. javascript权威指南(6) - 对象
  9. Comet OJ - Contest #11 题解赛后总结
  10. 华为 HMS 上线独立搜索服务;苹果 App Store 出现 Bug ;Ant Design 4.2.5 发布| 极客头条...
  11. Tensorflow API(一)
  12. 树莓派制作语音对话机器人
  13. matlab中的fig文件怎么编辑,matlab fig文件的操作
  14. 使用PRSice进行多基因风险评分分析
  15. PO,VO,DAO,BO,POJO之间的区别与解释
  16. windows 10微软拼音输入法变成繁体
  17. 彻底解决Android 拍照 内存溢出 Out of Memory的问题
  18. SMSAlarm短信猫语音猫快速连接
  19. 信息系统项目管理师 - 项目范围管理
  20. 电路分析十四:红外避障模块

热门文章

  1. JavaScript二十四节气算法的实现(附源码)
  2. matlab lyapunov指数,lyapunov指数matlab
  3. ‘adb‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。(android studio)
  4. 论文精讲 | 神经网络从数据中学习空气动力学物理定律
  5. Syntax Error: Error: No ESLint configuration found
  6. blender节点实例 凸壳的应用
  7. 给我一份电商行业的员工考核表
  8. 如何用Jenkins通过SSH远程控制主机执行命令
  9. STM32单片机(五)第二节:EXTI外部中断练习1(对射式红外传感器计次)
  10. 计算机配置时间怎么查,怎么看自己电脑的配置是哪一年的?