Oracle 服务端进程模式

2023年 10月 11日 76.4k 0

Oracle的连接模式有两种:
(1)DEDICATED(专用模式)
优点:能够快速的与客户端建立连接,无需等待;
缺点:消耗服务器资源较多;
(2)SHARED(共享模式)
优点:大大减少了资源消耗,适用于高并发场景;
缺点:有可能拿不到连接而导致客户端访问失败,比专用模式要慢;

两种模式关于内存使用对比如下:
假如一个应用产生的每个会话需要400KB内存,每个server process占用4MB内存,shared server使用了100个,当有5000个客户端连接时,两种方式内存使用如下:
专用模式内存 = 5000*(400KB + 4MB)=22GB
共享模式内存 = 5000*400KB + 100*4MB = 2.5GB

1、配置专用模式:
a.配置TNS:
ZHAN_DEDICATED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = zhan)
)
)
b.验证连接模式:
通过v$session视图的server列可以看出是哪种模式。
[oracle@dbmon ~]$ ps -ef | grep LOCAL=NO | grep -v grep
******思考:通过Easy Connect建立的连接是哪种模式?

2、配置共享模式:
a.配置TNS:
ZHAN_SHARED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.50.100)(PORT = 1521))
(CONNECT_DATA =
(server = shared)
(SERVICE_NAME = zhan)
)
)
b.参数配置:
alter system set shared_server_sessions =10; ---最大同时处理的会话数,允许你为专用模式预留会话
alter system set shared_servers=3; ---实例启动时创建的共享进程数,是最少要保留的进程数;一般情况下,每10个连接对应一个shared server
alter system set max_shared_servers=10; ---指定可以同时运行的最大共享进程数
alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=3)'; ---设置调度进程
alter system set max_dispatchers=5; ---最大调度进程数,可由dispatchers参数的设置所覆盖
c.相关视图:
v$shared_server
v$shared_server_monitor
v$dispatcher
d.查看server进程:
[oracle@dbmon ~]$ ps -ef | grep s00 | grep -v grep
e.关闭其中一个dispatcher进程:
① [oracle@zhan ~]$ ps -ef|grep ora_|grep ora_d00 | grep -v grep
oracle 3315 1 0 16:26 ? 00:00:00 ora_d000_zhan
oracle 4250 1 0 18:05 ? 00:00:00 ora_d001_zhan
oracle 4252 1 0 18:05 ? 00:00:00 ora_d002_zhan
② SQL> ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002';
f.关闭共享模式:
SQL> ALTER SYSTEM SET SHARED_SERVERS=0; ----执行此语句时,已建立的连接不受影响,但是无法建立新的共享连接

****************************************************************
思考:区分connect、session、process???
****************************************************************

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论