0

0

Oracle客户端Dedicated和Shared连接模式

php中文网

php中文网

发布时间:2016-06-07 15:53:57

|

2191人浏览过

|

来源于php中文网

原创

Dedicated(专用模式)用户进程和服务器进程是分开的。每个用户进程都有自己的服务器进程。用户进程和服务器进程可在不同的机器上

dedicated(专用模式)
用户进程和服务器进程是分开的。
每个用户进程都有自己的服务器进程。
用户进程和服务器进程可在不同的机器上运行,以利用分布式处理的优势。
用户进程和服务器进程的比率是1 比1。
即使用户进程不发出数据库请求,专用服务器也存在,只是保持空闲状态。
此处所用的程序接口取决于用户进程和专用服务器进程是否在同一台机器上。如果在同一
机器上,进程间的程序接口将使用主机操作系统的交互进程通信(ipc) 机制。
下图展示了oracle专用服务模式下的客户进程连接状态:

Oracle客户端Dedicated和Shared连接模式

Oracle客户端Dedicated和Shared连接模式


 
Shared(共享模式)
减少针对某一例程的进程数目
增加可服务的用户数
实现负载平衡
减少空闲服务器进程的数目
减少内存占用和系统开

Oracle客户端Dedicated和Shared连接模式

Oracle客户端Dedicated和Shared连接模式

默认情况下数据库创建的连接模式为专享模式,但即使修改成共享连接模式以下几种情况也必定是以专享模式连接的:
当批量提交的job时(对于服务进程,一个job几乎没有空闲时间)。

使用RMAN进行备份,恢复或修复数据库时。

 
除了Dedicated和Shared,Oracle还提供了常驻连接池模式(Database Resident Connection Pooling)。这种模式主要用于web应用的请求
通过一个简单的例子来对比三种连接模式下对内存的需求:
考虑一个应用每一个会话请求的内存大小为400K,而每一个服务进程需要使用4M的内存,当pool size为100并且共享模式最大连接数为100。
 
专享模式下
Memory used = 5000 X (400 KB + 4 MB) = 22 GB
共享模式下
Memory used = 5000 X 400 KB + 100 X 4 MB = 2.5 GB
超出2.5G,2G来自于SGA区
常驻连接池
Memory used = 100 X (400 KB + 4 MB) + (5000 X 35KB)= 615 MB
这里每一个代理进程的消耗内存接近35k
 
配置共享模式
共享模式下涉及到的参数有:
SHARED_SERVERS 指定共享服务进程启动时的最小数值。
MAX_SHARED_SERVERS 指定可同时运行的共享服务进程的最大值。
SHARED_SERVERS_SESSIONS 指定可同时连接共享进程的用户会话总数。
DISPATCHERS 为共享模式配置调度进程
MAX_DISPATCHERS 指定允许同时运行的调度进程的最大数,该参数现在可能被忽略了。
CIRCUITS 指定网络会话流入流出可用的总的虚拟环路。
 
因为要开启共享模式,SHARED_SERVERS设置的值必须大于0,而其他相关配置可以不需要,当SHARED_SERVERS值大于0时,调度进程也会启动,即使没有配置dispatchers参数
 
在DBCA创建数据库的过程中,Oracle会自动创建一个用于XML DB(XDB)的调度进程。该配置仅允许会话以共享模式连接数据库,但要进行一些常规的操作(如提交SQL语句),用户必须额外的配置调度或替换XDB调度配置
 
alter system set shared_servers=5;
 
关于MAX_SHARED_SERVERS没有默认值,,如果该值为空,PMON进程会根据请求开启足够多的共享服务进程。但也要受到以下参数的限制:
process 的限制

Cutout.Pro
Cutout.Pro

AI驱动的视觉设计平台

下载

空闲process槽的最小值(至少1/8的总进程槽数,或为2当process设置的值小于24时)

系统资源

SHARED_SERVERS_SESSIONS用于限制并发共享服务的用户会话最大数,该参数是动态变化的,其中还保留了用于专享服务的数据库会话。这确保管理任务如备份,还原和恢复数据库时不会占用共享服务的会话。
 
CIRCUITS 都没有默认值,该值取决于调度参数的值和系统资源。因此尽量对其作出限制。
alter system set circuits=;
 
关于DISPATCHERS的设置:
限定地址协议和最小启用调度进程数
dispatchers='(address=(pro=tcp) (host=10.x.x.x) (dispatchers=2))'
dispatchers='(description=(address=(pro=tcp) (host=10.x.x.x) (dispatchers=2)))'
限制dispatchers的最大网络连接和会话数
dispatchers='(pro=tcp) (dispatchers=2) (conn=100) (sess=100)'
为dispatchers指定别名和服务名,用于PMON进程注册调度信息。
dispatchers='(pro=tcp) (dispatchers=2) (list=orcl) (serv=orcl)'
允许多路复用和连接池
dispatchers='(pro=tcp) (dispatchers=2) (multi=on) (poo=on)'
 
dispatchers可以多在配置文件中写多行,但是必须放在一起。或者以逗号分隔放在同一行配置中。
dispatchers='(pro=tcp) (dispatchers=2) (multi=on) (poo=on)','(pro=tcps) (dispatchers=2)'
or
dispatchers='(pro=tcp) (dispatchers=2) (multi=on) (poo=on)'
dispatchers='(pro=tcps) (dispatchers=2)'
 
如何决定调度进程的多少:
dispatchers=ceil(max_concurrent_sessions / connections for each dispatcher)
connections for each dispatcher由系统决定,一个系统允许单个进程的最大连接数即为connections for each dispatcher的取值。
 
配置TNSNAME.ORA文件,将客户端连接的SERVER方式修改成SHARED模式。
 
配置好上述参数后,就可以通过共享方式连接数据库了。连接时需要指明实例名
通过lsnrctl services命令观察实例的注册信息
sqlplus user/password@sid
 
可以通过下列视图来验证和观察性能:
select name, paddr, network, status, accept, messages, listener, conf_indx from v$dispatcher;
select maximum_connections,maximum_sessions,servers_started from v$shared_server_monitor;
select circuit,dispatcher,server,waiter,saddr,status,queue,messsages,bytes from v$circuit;
v$dispatcher_config
v$shared_server
v$queue
v$shared_pool_reserved
v$dispatcher_rate
v$sga
v$sgastat
 
修改dispatchers参数可以通过以下方式:
alter system set dispatchers=‘(index=0) (pro=tcp) (dispatchers=2) (multi=on) (poo=on)','(index=1) (pro=tcps) (dispatchers=2)';
这里的index后的值表示调度进程的序列,可以在v$dispatcher_config中获得
 
关闭特定的dispatchers进程
alter system shutdown immediate ‘name of dispatchers’
这个dispatchers的名称来自于v$dispatcher表的name字段。

本文永久更新链接地址

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

9

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

3

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号