Oracle 专用服务器与共享服务器的区别

PyTorch实战:用FGSM攻击MNIST分类器(附可视化对比) 本文通过PyTorch实战演示了如何使用FGSM对抗攻击方法攻击MNIST手写数字分类器。文章详细解析了FGSM攻击原理,提供了从环境搭建、模型准备到攻击实施、可视化对比的完整代码实战流程,并探讨了对抗样本的生成与模型鲁棒性评估。 阅读详情

专用服务器:一个客户端连接对应一个服务器进程
共享服务器:多个客户端连接对应一个服务器进程,服务器端存在一个进程调度器来管理。
Oracle缺省用的是专用服务器模式,Oracle可以同时支持共享服务器和专用服务器模式,可以指定一个会话使用专用服务器,另一个会话使用共享服务器。

共享服务器具有以下一些缺点:

1)共享服务器的代码路径比专用服务器长,所以它天生就比专用服务器慢。

2)存在人为死锁的可能,因为它是串行的,只要一个连接阻塞,则该服务器进程上的所有用户都被阻塞,并且极可能死锁。

3)存在独占事务的可能,因为如果一个会话的事务运行时间过长,它独占共享资源,其它用户只能等待,而专用服务器,每个客户端是一个会话。

4)共享服务器模式限制了某些数据库特性,例如:不能单独启动和关闭实例,不能进行介质恢复,不能使用Log Miner,并且SQL_TRACE没有意义(因为是共享而不是当前会话的)。

MTS减少的内存实际上是专用服务器模式下每个用户连接到操作系统进程所需的内存,但它却使用SGA的Large_Pool来分配UGA,拆东墙补西墙,所减少的内存是很少的。

如果用户会话的连接和断开很频繁,数据库进程的创建和删除的开销会非常大,这种情况最好采用共享服务器模式(否则,应该使用连接池技术)。

如果客户端一次连接终身使用(会话生命周期内),使用共享服务器模式的意义不大。因为大部分时间,一个会话就连接到一个服务器进程,无法共享服务器进程。


      在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者10g 中,可以看到有2种连接模式,一种叫做专用服务器连接 (dedicated server) ,另外一种叫做共享服务器连接(shared server)。
下面我们来分类说一下这两种连接方式的不同点:
      专用服务器模式就是说每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后会为这个访问创建一个新的进程来进行服务。所以说,对于每一个客户端的访问,都会生成一个新的进程进行服务,是一种类似一对一的映射关系。这种连接模式的一个很重要的特点就是 UGA(用户全局域)是存储在PGA(进程全局域)中的,这个特性也很好说明了当前用户的内存空间是按照进程来进行分配的。
  而另外的共享服务器连接则是一种在程序编写的时候通常会用到的连接池(pool)的概念。采用这种模式的话,在数据库的初始化的时候就会创建一批服务器连接的进程,然后把这些连接进程放入一个连接池来进行管理。初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的。在连接建立的时候,Listener首先接受到客户端的建立连接的请求,然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接。调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中,然后再共享服务器连接池中查找有无空闲的连接,然后让这个空闲的服务器进行处理。处理完毕以后再把处理结果放在SGA的相应队列中。调度器通过查询相应队列,得到返回结果,再返回给客户端。这种连接模式的优点在于服务器进程的数量可以得到控制,不大可能出现因为连接人数过多而造成服务器内存崩溃。但是由于增加了复杂度以及请求相应队列,可能性能上有所下降。


        总之,在开发阶段中,用第一种专用服务器可能好一些,因为少了一些中间的复杂度,而且开发的时候一般连接的数量也少。而在多个应用同时使用一个数据库的实际应用环境下,采用第二种方法可能好一些,因为如果到时候突然有1000个或者10000个请求连接的话,数据库服务器如果同时建立10000 个连接,肯定要受不了的。当然,也要看到时候的实际情况如何再做决定,两者没有绝对的哪种好哪种不好的差别

      关于这两者的比较"假如你来到一个城市,要在这个城市的不同的地方办几件事情,在交通方面你有两种选择:一个是雇一辆专车,这辆专车将会把你从A带到B,一直等你把在B的事情办完,在把你从B带到C。。。。。。另一种选择是给出租车公司打电话订辆出租车,先把你从A带到B,然后你和出租车该干嘛干嘛,你去办你的事情,出租车去接别的生意,等你在B的事情办完了,你再跟出租车公司订车,出租车公司将会联系当时在B附近的其他出租车去接你。。。。。。


首先,dedicated servers的设置非常简单-----不需要设置,这个是oracle的默认选项

而对于shared servers,你就要需要做一些额外的设置,当让按照administrator guide并不难,关键是你需要决定到底需要多少个shared server servers和多少个dispatcher,这不仅仅需要经验的积累,还需要持续的观察和调整。
在dedicated servers里,你所有的等待都是数据库本身的等待,而在shared servers里你有可能需要等待一个available的shared server process。

        很明显,当用户并发的连接数很大的时候,dedicated servers的server process个数也会变得很大,对于操作系统来说多一个process就意味着多一点管理负担,要知道操作系统支持的同时并发数可不是无限的。这意味着,在dedicate servers里,当你有大量的用户连接(比如,同一时间超过5000个用户连上来),你的系统负担就会相当大。而这种情况shared servers就可以处理的相对好一些,因为加入同时有5000个用户连上来而且我们知道一般只有1%的连接是active,那我们只需要设置50个 shared servers就可以把所有的用户请求处理得很好,并节省了系统资源。

      作为一个好处,shared servers可以用来控制concurrent。要知道用户的并发数和系统的处理能力决不是成正比的(可以下面的图),当用户并发数超过一个阀值,系统的处理能力会明显下降。通过shared servers可以控制系统的concurrent不超过这个阀值。

在引入PGA的自动管理以前,shared servers是要比dedicated servers节省内存的,然后在自动管理的PGA引入之后,shared servers的这个优势已经不像我们想象的那么不明显了。

dedicate servers一个server process为了一个较大的request而长时间的工作而不影响其它的users,然而在shared servers,一些较大的request会影响其它的用户。

      还需要考虑其他的因素,比如,如果在前端使用了weblogic的 connecting pool,那么你在database level再使用shared servers可能就不是很必要,因为这时你的用户连接已经在weblogic层面上得到了控制。

       shared servers还有一个所谓的伪死锁的问题,这点大家参考一下tom的新书就知道了。

        关于dedicated servers和shared servers的话题我们就讨论这么多,最后给大家一个小提示:其实dedicated servers和shared servers是可以并存的,实际上,即使你使用了shared servers,某些管理操作也是必须在dedicated 模式下来做的,比如startup或shutdown database。如果你实在难以选择,如果你的应用可能一部分是OLTP的(用户量也很大),一部分是DW的,其实你可以考虑同时使用 dedicated servers和shared servers。

查看运行情况:

idle> show parameter shared_server mts_servers

NAME_COL_PLUS_SHOW_PARAM TYPE
---------------------------------------------------------------- -----------
VALUE_COL_PLUS_SHOW_PARAM
-----------------------------------------------------------------------------------------------------------------------------------
max_shared_servers integer
20
shared_server_sessions integer
165
shared_servers integer
1

--如果VALUE_COL_PLUS_SHOW_PARAM大于0为dedicated模式
idle> select p.program,s.server from v$session s , v$process p
2 where s.paddr = p.addr
3 ;

PROGRAM SERVER
------------------------------------------------ ---------
oracle@infa (PMON) DEDICATED
oracle@infa (DBW0) DEDICATED
oracle@infa (LGWR) DEDICATED
oracle@infa (CKPT) DEDICATED
oracle@infa (SMON) DEDICATED
oracle@infa (RECO) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED

15 rows selected.

模式切换:

客户端建立的连接。
如果服务器是专用模式,客户端再怎么修改也没有用。
服务器切换专有和共享模式的方法是修改参数文件中的参数。

sample:

trace:http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/manproc.htm#sthref630

大多数情况下我们更倾向或习惯专用模式,两种模式下,对sga等分配都会有不同,所以如果转换成mts模式,别忘了sga也是需要调整的。最典型的是mts模式需要较大的large_pool_size。如果真想转换还是仔细看看oracle关于mts的文档。共享连接只是把连接 SESSION信息放在LARGE POOL,所以LARGE POOL要大一些。而专用连接的SESION信息放在PGA。

Note:
1. 如果是dedicated server,则客户端只能创建dedicated server connection
2. 如果是shared server,则客户端能创建dedicated server connection和shared server connection,只要在service name中指定server=dedicated or server=shared.


判断oracle是共享模式还是专用模式有以下方法:

1) show parameter shared_server;  (注:8i应为:show parameter 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

select p.program,s.server from v$session s , v$process p where s.paddr = p.addr

如果program为...(S0NN)的,则是shared方式,并且正有shared_server_process为其服务

如果program为...(D0NN)的,则是shared方式,并且当前没有shared_server_process为其服务

如果program为其它的,则是'DEDICATED'方式

Jupyter Lab 无法启动 Kernel 问题排查与解决总结 使用 curl,telnet,或 Python websocket-client 库可以本地模拟 WebSocket 握手行为,帮助分析服务端响应状态。避免使用 http:// + ws:// 组合方式部署 Jupyter Lab,特别是在远程或跨域访问场景。建议统一采用 https:// + wss:// 方式部署,确保浏览器信任并兼容。确认 WebSocket 已升级为 wss://,内核可正常启动。但在远程访问时,浏览器出于安全策略,默认拒绝 ws:// 协议。 阅读详情

相关推荐

2021.11.23 Covins 多机器人单目协同建图 跑Euroc数据集 更新

近日,一直在调试如何使用Covins跑通数据集,因为是初学者,所以很多bug出来的时候原理都不懂,只能复制——百度——尝试解决的过程。 现分享一下近日的结果以及与Covins作者帮助解答的一些问题。 使用代码行跑依次跑Euroc多数据集 这里的意思是使用作者提供的covins_examples文件夹中的euroc_examples_mh123_vigba.sh文件,这个文件是将三个Euroc数据集依次运行,跑完第一个数据集,第二个数据集运行的时候在第一个数据集生成地图的基础上继续绘制,由于我只下载了两个数据

qq_42614598的博客 2474

dbsnmp用户执行 per@dbserver(TNS V1-V3) 任务导致数据库变慢

有人反应系统变慢, 打开数据库控制台:EM查看发现: dbsnmp用户执行 per@dbserver(TNS V1-V3) 任务导致数据库变慢,如图: SQL语句为: SELECT TO_CHAR(current_timestamp AT TIME ZONE 'GMT', 'YYYY-MM-DD HH24:MI:SS TZD') AS curr_timestamp, COUNT

pengpengfly_jhp的专栏 3716

主流几个JDK版本:JDK 8、JDK 11、JDK 17 和 JDK 21 的区别

主流几个JDK版本:JDK 8、JDK 11、JDK 17 和 JDK 21 的区别

技术分享 1724

oracle工具箱

--ORACLE日常维护工具箱 DECLARE k1 pls_integer; begin k1 := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE ( sql_id=>'58mxk9xtg9h0u', plan_hash_value=>3617692013, fixed=>'NO', enabled=>'YES'); end; / select

kfc_技术基础博客 1532

AI游戏制作07——波次计时器,敌人按波次生成

AI游戏制作07——波次计时器,敌人按波次生成

qq_40572023的博客 47

Autosar配置——导入DBC后配置SecOC同步报文和同步请求报文

在Autosar中,安全性是一个重要的考虑因素,而SecOC(Secure On-Board Communication)是一种用于保护通信数据完整性和安全性的安全机制。在上述示例中,我们配置了同步报文和同步请求报文的属性。接下来,我们需要在Autosar中配置同步报文和同步请求报文。同步报文用于在通信双方之间同步SecOC状态,而同步请求报文用于请求SecOC的状态信息。通过以上配置,我们成功地导入了DBC文件,并在Autosar系统中配置了SecOC同步报文和同步请求报文。希望以上信息对您有所帮助!

CyberSphinx的博客 649

oracle专有模式,oracle专有与共享模式 - strayeagle - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

名词解释专有服务器模式(DEDICATED):一个客户端连接对应一个服务器进程。共享服务器模式(SHARE):多个客户端连接对应一个服务器进程,服务器端存在一个进程调度器来管理。说明:共享服务器模式必须使用netservices.也就是必须配置tns信息(即使客户端与服务端为同一台机器,也要配置TNS,且通过IPC协议进行通讯)。它适合用于高并发,事务量小,如果此时采用了共享模式,可以大大减少由...

weixin_34529812的博客 285

电磁场仿真软件:CST Studio Suite_(25).案例分析与实践

在电磁场仿真中,材料属性的设置至关重要。通过API,您可以轻松地设置和修改材料属性,以适应不同的仿真需求。通过以上案例分析和实践,您已经学会了如何在CST Studio Suite中进行二次开发。自动化仿真流程:批量创建和运行仿真项目、优化设计参数、生成报告。自定义仿真设置:设置材料属性、边界条件和激励源。数据处理与分析:读取仿真结果、数据可视化和数据导出。高级脚本开发:多线程仿真、集成机器学习和云仿真。这些技能将帮助您更高效地进行电磁场仿真,提高设计质量和工作效率。

kkchenjj的博客 1386

Oracle 进程 说明

Oracle中的各个进程要完成某个特定的任务或一组任务,每个进程都会分配内部内存(PGA 内存)来完成它的任务。Oracle实例主要有3 类进程: (1)服务器进程(serverprocess):这些进程根据客户的请求来完成工作。我们已经对专用服务器和共享服务器有了一定的了解。它们就是服务器进程。 (2)后台进程(backgroundprocess):这些进程随数据库而启动,用于完成各种维...

ijavagos 612

基于ESP32的智能厨房控制系统开发

随着智能家居技术的发展,越来越多的家庭开始将传统的厨房设备进行智能化改造,以提高烹饪效率和生活质量。智能厨房控制系统是物联网(IoT)应用的重要组成部分,它将家居设备、传感器和网络结合起来,提供便捷的控制与监测功能,使厨房的烹饪过程更加智能、便捷和安全。基于ESP32的智能厨房控制系统不仅能够实现远程控制和监控,还能实现温度、湿度、烹饪状态的实时反馈,甚至具备智能化的推荐和自动化控制能力。ESP32是一款功能强大、集成度高的嵌入式开发平台,具有Wi-Fi和蓝牙双模通信能力,广泛应用于物联网设备的开发。

2201_76125393的博客 658

YOLO11 改进 - C2PSA | C2PSA融合HEWL(高频增强小波层):小波逆变换+双通道注意力增强+高频显式增强 | TGRS 2026

本文介绍了高频增强小波层(HEWL),一种专为解决红外小目标检测中边缘退化与语义模糊问题设计的上采样模块。该方法结合小波逆变换与交替通道注意力(ALCA),通过显式增强高频细节并优化特征融合,实现精准的边缘重建与语义对齐。我们将 HEWL 融入 PSABlock 结构构建了 C2PSA_HEWL 模块,并成功集成进 YOLO11 的骨干网络,替代原有的 C2PSA 模块。实验证明,结合 HEWL 的 YOLO11 在检测任务中表现优异,有效提升了模型对细节特征的捕捉能力。

魔改工程师的博客 102

oracle v$context,如何诊断Oracle数据库运行缓慢或hang住的问题

实例级别的跟踪注意:在实例级别启用跟踪因为每一个会话都会被跟踪这样对性能是有影响的在设置这个跟踪参数后产生的每一个会话都会被跟踪断开的会话将不会被跟踪设置系统级别的10046跟踪是用于当出现了一个问题会话但不能提前识别这个会话的情况下.在这种情况下跟踪可以被短时间地启用,这个问题可能会记录到跟踪文件中然后禁用跟踪在生成的跟踪文件中找到这个问题的原因启用系统级别的10046跟踪:alter syst...

weixin_32327615的博客 187

05 Transformer 到底解决了什么问题

Transformer 是现代大语言模型的底层骨架。本文不推公式,而是从 CNN、RNN/LSTM 的瓶颈讲起,解释 Transformer 如何通过自注意力同时解决长距离依赖和并行训练问题,并说明它为什么能支撑 GPT、BERT 和现代大模型的规模化。

老于的笔记的专栏 245

Oracle专用服务器与共享服务器的区别

1、原理===================================================================在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者1

robbie的专栏 1693

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

创建oracle数据库的时候:专用服务器模式和共享服务器模式的区别

在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server)。下面我们来分类说一下这两种连接方式的不同点。   专用服务器模式就是说每次在对Oracle进行访问的

程序与人生 2150

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Oracle专用服务器和共享服务器有什么区别

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

woshilipengfei的博客 275

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Oracle 表连接方式分析
下一篇: 关于rowid的小小研究
小灰狼W
博客等级 码龄18年 908粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值