设为首页 收藏本站
查看: 425|回复: 0

[经验分享] Configuring Oracle Database for Shared Server(updating)

[复制链接]

尚未签到

发表于 2015-11-7 12:45:12 | 显示全部楼层 |阅读模式
  Configuring Oracle Database for Shared Server(updating)
  当数据库采用共享服务器形式的时候,客户端请求与数据库的连接分为如下几个步骤:
DSC0000.jpg
1)客户端请求与数据库进行连接,监听接受请求,然后分配一个负载比较低的dispatcher进行处理。
2)dispatcher接受到请求后就会把该客户端的请求放入sga的请求队列中。
3)位于large pool或是share pool的共享服务器进程进行开始处理请求队列中的客户端请求信息
4)共享服务器进行把处理完成的请求信息在放入相应队列中
6) 然后再把处理完毕的信息传达给dispatcher进程并开启了客户端与数据库的连接。
The dispatcher can support multiple client connections concurrently. Each client connection is bound to avirtual circuit, which is a piece of shared memory used by the dispatcher for client database connection requests and replies. The dispatcher places a virtual circuit on a common queue when a request arrives.
另外监听器在共享服务器模式中担任了很大的角色,那就是pmon会定期检查dispatcher的负载情况,然后把地址信息和负载信息给监听进行注册,当客户端在进行连接的时候,监听起会分配一个负载相对较小的dispatcher进行处理。
share server 进程就是通过idle virtual circuit进行inbound和outbound的。
二)设置共享服务器常用的参数;
服务器内存允许在数据库运行状态下对相关参数进行动态修改(alter system)
1)shared_servers;设置共享服务器的最小进程,对于启动共享服务器这是必须要设置的参数,其他可以进行有效选择
2)max_shared_servers;设置共享服务器的最大可以同时启动的共享进程个数,如果指定了该参数,那么数据库会动态通过pmon进程动态开启一定数量和终止一定数据量的进程,但是不能高于该最大值,不能低于shared_servers设置的最小进程。如果没有指定该参数,那么数据库会根据系统memory和请求负载进行动态创建该进程,无最大要求。
3)shared_server_sessions;允许 共享服务器进程可以同时处理session的数量,该参数要和sessions参数具有相关性,如果设置了该参数,那么数据库也可以启动专用服务器模式进行客户端的请求处理工作。
4)dispatchers; 设置有多少个调度进程参与客户端的请求,该参数不能像share server进程那样可以自动管理。
5)max_dispatchers; 目前该参数被保留后续版本使用,设置调度进程的最大值。
6)circuits; 指定一个相当数据的虚电路来进行传输客户端链接的会话处理信息。
三) 开启共享服务器
1)只要shared_servers参数设置为一个非零的数字,那么共享服务器模式就会启动了,如果在参数文件中没有这个静态参数,查看该参数为1,那么共享服务器就开启了,并且会启动一个dispatcher进程。
eg:
SYS@conn#alter system reset shared_servers;
系统已更改。SYS@conn#show parametershared_servers;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer 3
shared_servers integer 1
SYS@conn#alter system reset max_shared_servers;
系统已更改。SYS@conn#show parametermax_shared_serversNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer 3
SYS@conn#startup force
ORACLE 例程已经启动。
Total System Global Area322240512 bytes
Fixed Size 1299652 bytes
Variable Size 197135164 bytes
Database Buffers 113246208 bytes
Redo Buffers 10559488 bytes
数据库装载完毕。
数据库已经打开。
SYS@conn#show parameter shared_servers;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 1
SYS@conn#
oracle@gbh-oracle:~> ps -ef | grep ora_s000_ORCL
oracle 23122 1 0 14:45 ? 00:00:00 ora_s000_ORCL
oracle 23505 23358 0 14:50 pts/0 00:00:00 grep ora_s000_ORCL
oracle@gbh-oracle:~>
eg:
oracle@gbh-oracle:~> exit
exit
SYS@conn#altersystem set shared_servers=0;系统已更改。SYS@conn#!ps-ef | grep ora_s000_ORCL
oracle 23686 10911 0 14:53 pts/0 00:00:00 /bin/bash -c ps -ef | grep ora_s000_ORCL
oracle 23688 23686 0 14:53 pts/0 00:00:00 grep ora_s000_ORCL
SYS@conn#
注意: 1,为了版本兼容,如果shared-servers参数没有在参数文件中进行设置,但是dispatcher信息在参数文件中设置,那么共享服务器进程也会自动开启,默认值为1。可以再这个时候手动执行alter system命令设置为0,进行关闭。
2,如果shared_servers参数和dispatcher参数没有在参数文件中进行设置,那么通过alter system 设置dispatcher是无法启动共享服务器的,还必须设置shared_servers为一个不为0的数。上面的测试就是验证了这个信息。
2)对于max_shared_servers参数指定shared server进程被pmon创建的最大数量,如果没有指定该参数,那么这个数量基于两个限制,1个事process进程数目设置,第2个是系统资源。shared server j进程默认不会超过该数目,但是我们可以通过手动设置让pmon进程强制创建该进程数目。
eg:
SYS@conn#show parameter shared_servers
NAMETYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 0
SYS@conn#show parameter max_shared_servers
NAMETYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
SYS@conn#alter system set shared_servers=2;
系统已更改。SYS@conn#altersystem set max_shared_servers=4;系统已更改。SYS@conn#showparameter shared_serversNAMETYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer 4
shared_servers integer 2
SYS@conn#!ps -ef | grep ora_s
oracle 25295 1 0 15:13 ? 00:00:00 ora_smon_ORCL
oracle 25309 1 0 15:13 ? 00:00:00 ora_smco_ORCL
oracle 27409 1 0 15:45 ? 00:00:00 ora_s000_ORCL
oracle 27411 1 0 15:45 ? 00:00:00 ora_s001_ORCL
oracle 27450 27330 0 15:45 pts/0 00:00:00 /bin/bash -c ps -ef | grep ora_s
oracle 27452 27450 0 15:45 pts/0 00:00:00 /bin/bash -c ps -ef | grep ora_s
SYS@conn#altersystem set shared_servers=10;系统已更改。SYS@conn#showparameter shared_servers;NAMETYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer 4
shared_servers integer 10
SYS@conn#!ps -ef | grep ora_s
oracle 25295 1 0 15:13 ? 00:00:00 ora_smon_ORCL
oracle 25309 1 0 15:13 ? 00:00:00 ora_smco_ORCL
oracle 27409 1 0 15:45 ? 00:00:00 ora_s000_ORCL
oracle 27411 1 0 15:45 ? 00:00:00 ora_s001_ORCL
oracle 27489 1 0 15:46 ? 00:00:00 ora_s002_ORCL
oracle 27491 1 0 15:46 ? 00:00:00 ora_s003_ORCL
oracle 27493 1 0 15:46 ? 00:00:00 ora_s004_ORCL
oracle 27495 1 0 15:46 ? 00:00:00 ora_s005_ORCL
oracle 27497 1 0 15:46 ? 00:00:00 ora_s006_ORCL
oracle 27499 1 0 15:46 ? 00:00:00 ora_s007_ORCL
oracle 27501 1 0 15:46 ? 00:00:00 ora_s008_ORCL
oracle 27503 1 0 15:46 ? 00:00:00 ora_s009_ORCL
oracle 27506 27330 0 15:46 pts/0 00:00:00 /bin/bash -c ps -ef | grep ora_s
SYS@conn#l另外提的是,session=(1.1*processes)+5,在这里shared_server_sessions设置的同样和max_shared_servers受process限制一样。
3) 调度进程的设置。
AttributeDescriptionADDRESSSpecify the network protocol address of the endpoint on which the dispatchers listen.DESCRIPTIONSpecify the network description of the endpoint on which the dispatchers listen, including the network protocol address. The syntax is as follows: (DESCRIPTION=(ADDRESS=...))PROTOCOLSpecify the network protocol for which the dispatcher generates a listening endpoint. For example: (PROTOCOL=tcp)CONNECTIONSSpecify the maximum number of network connections to allow for each dispatcher.SESSIONSSpecify the maximum number of network sessions to allow for each dispatcher.TICKSSpecify the duration of a TICK in seconds. A TICK is a unit of time in terms of which the connection pool timeout can be specified. Used for connection pooling.LISTENERSpecify an alias name for the listeners with which the PMON process registers dispatcher information. Set the alias to a name that is resolved through a naming method.MULTIPLEXUsed to enable the Oracle Connection Manager session multiplexing feature.POOLUsed to enable connection pooling.SERVICESpecify the service names the dispatchers register with the listeners.DISPATCHERSSpecify the initial number of dispatchers to start.
eg:
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136211-1-1.html 上篇帖子: Oracle Database Server Messages(一) 下篇帖子: Oracle DB 性能优化:概览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表