oracle dedicated server (),shared server使用与配置

Dedicated Server Process

56075825_1.png

56075825_2.png

客户端连接只需建立一次tcp:

56075825_3.png

但根据在实际实验时看到的现象,dedicated server process并不是listener的子进程,如下所示:

$ ps -ef | grep oracle

oracle    3242 3201 0 03:52 pts/0    00:00:00 sqlplus  (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

oracle   3956   1 0 04:07 pts/0    00:00:00 /u01/oracle/bin/tnslsnr LISTENER -inherit

oracle    5563     1 4 12:46 pts/0   00:00:00 oraclelty (LOCAL=NO)

oracle    5564 3871 0 12:46 pts/0    00:00:00 ps -ef

oracle    5565 3871 0 12:46 pts/0    00:00:00 grep oracle

Shared Server

56075825_4.png

56075825_5.png

客户端连接须建立两次tcp:

56075825_6.png

56075825_7.png

56075825_8.png

推荐将队列缓存区置于larg pool里,须设置large_pool_size 参数值。

一个dispatcher最多可以支持的连接数与操作系统平台有关。

Configuring Oracle Shared Server

·Required initialization parameters

–DISPATCHERS

–SHARED_SERVERS

·Optional initialization parameters

–MAX_DISPATCHERS

–MAX_SHARED_SERVERS

–CIRCUITS

–SHARED_SERVER_SESSIONS

56075825_9.png

dispatcher启动个数是静态的,初始化启动个数由DISPATCHERS决定。通过alter system命令改变启动个数。而shared servers的个数可以动态增加,初始启动个数由SHARED_SERVERS决定。

Tips:

在调试时如有需要,可以将MAX_SHARED_SERVERS值设为0(不能再内存中修改),关闭shared server模式。即使将shared_servers值设为0,当有客户端链接进来时oracle会自动产生share server进程。

dispatcher与shared server的通信链路称为一条virtual circuit,分inbound和outbound。即dispatcher—--request queue----shared server是inbound虚链路,shared server----response queue----dispatcher为outbound虚链路。

CIRCUITS参数值决定了虚链路(包括inbound和outbound)总数。这个值也影响了整个SGA的大小。

SHARED_SERVER_SESSIONS值决定了所有shared server所能同时处理的session数。这里是对整个oracle而言的,不是对单个shared server。

初始化参数中有个参数sessions,这个值决定了oracle能同时处理的session数,所以这个参数值与SHARED_SERVER_SESSIONS的值也就决定了留给dedicated servers能同时处理的session数。

注意:如果listener监听端口不是默认值1521时,必须配置local_listener参数或者在dispatchers参数值中指定tnsname。

配置举例:

SQL> show parameter dispat

NAME                      TYPE        VALUE

------------------------- ----------- -------------------

dispatchers               string      (PROTOCOL=TCP) (SERVICE=ltyXDB)

max_dispatchers           integer     5

SQL> alter system set dispatchers='(protocol=tcp)(dispatchers=1)';

System altered.

SQL> show parameter disp

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

dispatchers                          string      (protocol=tcp)(dispatchers=1)

max_dispatchers                      integer     5

mts_dispatchers                      string      (protocol=tcp)(dispatchers=1)

#注意:如果原来spfile中没有配置dispatchers这个参数,则有可能在oracle启动后修改dispatchers值。这个一旦定义就不能在spfile中被修改,如:

SQL> alter system set dispatchers='(protocol=tcp)(dispatchers=2)' scope=spfile;

alter system set dispatchers='(protocol=tcp)(dispatchers=2)' scope=spfile

*

ERROR at line 1:

ORA-02065: illegal option for ALTER SYSTEM

解决方法是,先由spfile创建pfile。在pfile中更改后再由pfile创建spfile。

另外,在修改这些值前最好先启动listener。否则可能出现修改这些值后无法同步在listener中注册的情况。

SQL> !

[oracle@localhost ~]$ ps -ef | grep oracle

……

oracle    3360     1 0 04:01 ?        00:00:00 ora_s000_lty     #shared server进程。

oracle    3362     1 0 04:01 ?        00:00:00 ora_d000_lty              #dispatcher进程。

……

SQL> show parameter disp

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

dispatchers                          string      (protocol=tcp)(dispatchers=1)

max_dispatchers                      integer     5

mts_dispatchers                      string      (protocol=tcp)(dispatchers=1)

mts_max_dispatchers                  integer     5

SQL> alter system set dispatchers='(protocol=tcp)(dispatchers=4)';

System altered.

SQL> show parameter shared_ser

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

max_shared_servers                   integer     20

shared_server_sessions               integer     165

shared_servers                       integer     1

SQL> alter system set shared_servers=3;

System altered.

SQL> !

[oracle@localhost ~]$ ps -ef | grep oracle

……

oracle    3360     1 0 04:01 ?        00:00:00 ora_s000_lty

oracle    3362     1 0 04:01 ?        00:00:00 ora_d000_lty

oracle    3364     1 0 04:01 ?        00:00:00 ora_arc0_lty

oracle    3366     1 0 04:01 ?        00:00:00 ora_arc1_lty

oracle    7109     1 0 17:04 ?        00:00:00 ora_d001_lty

oracle    7111     1 0 17:04 ?        00:00:00 ora_d002_lty

oracle    7113    1 0 17:04 ?        00:00:00 ora_d003_lty

……

[oracle@localhost admin]$ lsnrctl service

Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))

Services Summary...

Service "lty.suny.com" has 1 instance(s).

Instance "lty", status READY, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:0 refused:0 state:ready

LOCAL SERVER

Service "ltyXDB.suny.com" has 1 instance(s).

Instance "lty", status READY, has 1 handler(s) for this service...

Handler(s):

"D000" established:0 refused:0 current:0 max:1002 state:ready

DISPATCHER

(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1468))

The command completed successfully

验证:

使用客户端链接后,

SQL> select circuit,dispatcher,status from v$circuit;

CIRCUIT DISPATCH STATUS

-------- -------- ----------------

5AEFBAF8 5A290E48 NORMAL

或者:

$ netstat -anp | more

……

tcp        0      0 192.168.1.10:1521           192.168.1.200:51013         ESTABLISHED 5151/ora_d001_lty

同时使用专用服务器和Oracle Shared Server

客户端tnsnames.ora配置

ORACLE =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = lty.suny.com)

)

)

#在常规配置模式下,如上。Oracle优先使用shared server。

ORACLE_SHARED =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = lty.suny.com)

(SERVER = shared)

)

)

#在此模式下使用shared模式,在dispatchers不可用时链接将被拒绝。

ORACLE_DEDI =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = lty.suny.com)

(SERVER = dedicated)

)

)

#在此模式下将使用dedicated模式链接。

验证:

[oracle@localhost admin]$ netstat -anp | more

……

tcp        0      0 127.0.0.1:1521              127.0.0.1:46663             ESTABLISHED 6249/tnslsnr

tcp        0      0 127.0.0.1:46663             127.0.0.1:1521              ESTABLISHED 6096/ora_pmon_lty

tcp        0      0 192.168.1.10:1521           192.168.1.200:51468         ESTABLISHED 6114/ora_d000_lty

tcp        0      0 192.168.1.10:1521           192.168.1.200:51467         ESTABLISHED 6114/ora_d000_lty

tcp        0      0 192.168.1.10:1521           192.168.1.200:51474         ESTABLISHED 6325/oraclelty

何时使用专用服务器

·提交批作业(预计很少有或没有空闲时间)

·以sysdba 身份连接以启动、关闭或执行恢复

·在三层架构中,中间件与oracle服务器之间。

启动关闭数据库时不能以shared方式链接,否则出错:ORA-00106: cannot startup/shutdown database when connected to a dispatcher

相关视图:

·V$CIRCUIT

·V$SHARED_SERVER

·V$DISPATCHER

·V$SHARED_SERVER_MONITOR

·V$QUEUE

·V$SESSION

问题:listener.ora如下无法同时启动shared server,无法再listener中注册?

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = lty.suny.com)

(ORACLE_HOME = /u01/oracle)

(SID_NAME = lty)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

蓝色部分改成如下情况下可以使用shared server:

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Valheim专用服务器是由开发人员为了满足玩家需求而推出的一项功能。它允许玩家在没有他人参与的情况下独立托管游戏。通过Valheim专用服务器,玩家可以创建一个只属于他们自己或一群朋友的虚拟世界。 使用Valheim专用服务器,玩家可以完全掌控游戏环境。他们可以自行选择世界的设置,如生成地图的大小、资源的数量等等。玩家还可以设定游戏的难度,并决定是否启用创造模式或死亡惩罚等选项。这个服务器也提供了许多管理工具,如封禁玩家、重置世界等。通过这些工具,玩家可以保持游戏的秩序并确保公平竞争的环境。 Valheim专用服务器还提供了更好的游戏性能和稳定性。与共享服务器相比,它更容易处理大量玩家的连接和游戏崩溃的情况。此外,专用服务器也提供了更多的自定义选项和一些特殊功能,如mod支持和备份功能。这些功能可以让玩家根据自己的需求来增强游戏体验。 值得一提的是,Valheim专用服务器的设置和运行需要一定的技术知识。玩家需要通过设置端口转发、防火墙等来确保服务器的正常运行。同时,他们还需要了解服务器管理和维护等方面的知识。为了方便玩家搭建和管理服务器,开发人员还提供了一些官方文档和指南供参考。 总之,Valheim专用服务器为玩家提供了一个自由定制、高性能、稳定可靠的游戏环境。它让玩家可以更好地享受游戏,并与朋友一起创造属于自己的独特世界。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值