• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

Linux环境下Oracle数据库连接数超过默认设置导致iMC以及数据库出错的解决办法

2013-01-31 发表
  • 0关注
  • 1收藏 1493浏览
粉丝: 关注:

Linux环境下Oracle数据库连接数超过默认设置导致iMC以及数据库出错的解决办法

一、组网:

二、问题描述:

Linux系统下iMC平台服务器集中式部署多组件或者某些分布式部署的环境,在服务器运行一段时间以后可能会出现部署监控代理中各平台组件进程异常、运行环境中显示数据库连接失败以及iMCweb界面各业务连接出错等问题。

三、过程分析:

Linux环境下安装完Oracle数据库以后,Oracle所使用的进程数processes和会话数sessions默认设置的大小分别为150170processessessions简单的区别如下:每个sql login称为一个连接(connection),而每个连接,可以产生一个或多个会话(session)。如果数据库运行在专用服务器方式,一个会话(session)对应一个服务器进程(process);如果数据库运行在共享服务器方式,一个服务器进程(process)可以为多个会话(sessions)服务。具体来说,一个process可以有0个,1个或者多个sessions;一个session也可以存在这个或者那个process中。

如果iMC服务器上安装部署了多个组件,在各组件进程启动直至稳定的过程中,由于各个进程需要与Oracle数据库通信并建立连接,所以进程数和会话数会不断增加,可能会超过默认150170的大小,进而导致各组件进程无法与数据库通信,造成组件进程显示异常以及数据库连接失败等问题的发生。

四、解决方法:

由于连接数超出了默认的设置,所以需要增大系统默认连接数的大小,保证各组件进程有足够的连接数与Oracle数据库建立连接并正常通信。具体方法参考如下步骤:

1,首先判断是否可以正常进入Oracle数据库。

打开终端,执行命令:

sqlplus sys/password@网络服务名 as sysdba

(注:1,使用sys密码代替上述password2iMC使用网络服务名连接数据库,它包含网络服务名称、主机名称、使用协议和连接端口、数据库服务器全局数据库名等参数。当iMC服务器使用非本地数据库服务器时,需要配置网络服务名,以便iMC可以连接数据库服务器。具体配置可以参见《Oracle 11g安装配置指导书(带数据库分离式安装)》中“5 配置网络服务名”)

或者切换为Oracle账户并使用sys用户登录:

su – oracle

sqlplus sys/password as sysdba

如果通过上述两种方法都无法正常连接数据库并且显示如下ERROR信息:

maximum number of processes(%s) exceeded,说明目前连接数已经达到或者超过了默认设置的连接数大小,此时需要打开部署监控代理(通过命令./opt/iMC/deploy/dma.sh),在不影响业务的前提下,关闭一到多个plat的基础组件进程(例如:imcacldm.exe以及imcvlandm.exe等),然后再使用上述方法就可以重新登录Oracle数据库了。

2,在连接到Oracle数据库以后,可以通过如下命令查看默认设置的进程(process)和会话(session)连接数:

show parameter processes

show parameter sessions

此时可以看到processessessionsTYPEintegerVALUE的值分别为150170

继续查看当前数据库已经使用的进程和会话数:

select count(*) from v$process

select count(*) from v$session

此时可以看到当前实际使用的连接数的大小。

3,对比默认设置的和实际使用的连接数可以发现问题所在。通过如下命令修改系统默认设置的进程数:

alter system set processes=400 scope = spfile

注意:上述设置的400即是想要修改的进程数process大小,实际设置中可以根据组件部署情况灵活调整大小,推荐设置为300400左右。此处只需修改进程数processes,不需修改会话数sessions,因为实际中processessessions有对应关系,系统可以通过如下公式自动计算:sessions = (1.1*processes) + 5,在修改完processes并生效以后,sessions会自动计算出来。

然后保存配置:

commit

此时需要重启Oracle数据库,在不影响业务的前提下,通过命令:shutdown immediate关闭数据库,再通过startup命令重启数据库。

说明:

1,导致数据库连接失败的原因以及其解决办法不仅限于此,本文只根据一种常见的原因提出解决思路和方法。

2,此方法使用的前提:Oracle数据库监听器(Listener)正常启用并工作;需要保证服务器有足够的磁盘空间,因为磁盘空间剩余很小的情况下,会导致系统产生大量的僵尸进程占用连接数并无法自动释放,也会导致各组件进程以及数据库系统无法正常使用。

3,重启数据库以及操作系统需谨慎,务必确保不影响业务。

4,因其他原因导致数据库连接失败等的问题请联系业务软件二线人员进行技术支援和问题定位。

 


若您有关于案例的建议,请反馈:

作者在2019-06-12对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作