查看日志后报错信息为“Reached the max session limit”,且告知当前日志中也一直报错,如下图。
排查过程:
①检查当前会话数是否超过数据库最大会话数:
select para_value from v$dm_ini where para_name='MAX_SESSION_STATEMENT';
--返回值10000
select count(*) from v$sessions;--返回值为3000
结论:当前未超设置的最大会话数。
②检查服务器的句柄数是否超过了服务器的资源限制
ll /proc/$(pidof dmserver)/fd | wc -l --返回值2064
more /proc/$(pidof dmserver)/limits --返回值65535
结论:当前未超过服务器资源限制。
③检查连接用户的资源限制是否设置
结论:未进行用户的资源限制。
问题原因:
经过上述的排查未发现问题,v$session视图只能查询到当前的会话情况,经过现场人员的持续的跟踪发现在突然出现大量的startup状态会话连接,十几分钟上涨了一两千会话。
通过继续排查,发现是由于其中一个应用程序中写错了数据库用户名的密码,报错后也在持续申请连接,导致startup状态的会话暴增。
文章
阅读量
获赞