tns-12518,12540错误,导致应用部分会话无法连接数据库

作者简介:李飞目前就职过北京海天起点技术服务股份有限公司,提供Oracle内蒙区域技术支持;超过十年的ORACLE SUPPORT从业经验。ORACLE 10g OCP,ORACLE 11g OCP,ORACLE 11g OCM。擅长Oracle数据库各种场景问题处理,熟悉Oracle的调优,排错,实施等。主要服务:金融,通信,政府等客户。

服务背景:

2016.09.02 09:35-09:40 crmdb数据库监听程序出现异常部分会话无法连接数据库。

问题处理情况:

问题描述

内容

解决结果

潜在影响及后续措施计划

监听日志报tns-12518,12540错误,导致应用部分会话无法连接数据库。

查看2016.09.02 09:35–2016.09.02 09:40 查看alert日志无报错。

查看2016.09.02 09:35–2016.09.02 09:40 查看listener日志报,tns-12518

Tns-12540错误。

已分析问题期间系统运行情况及可能存在的问题。对影响crm数据库性能的问题已找到对应的程序和进程。

首先对已经找到问题这部分sql进行相应的优化。

故障分析

Alert日志分析

查看alert_crmdb.log日志:


查看alert日志无报错。

看数据库系统负载和等待事件。




从等待事件中可以看到latchlibrary cachelatch free 等待事件等待次数和占用cpu百分比事件都比较高。

分析listener日志


数据库在09:36:12至09:36:22期间时候活动会话数突然直接从95暴涨到590。而且一直增长到09:38:42后才释放,从而导致数据库无法处理大量并发连接。

分析问题事件段会话


通过分析dba_hist_active_sess_history数据字典信息可以发现,在9月2日9:36:00至9:36:59一分钟之内,发生被堵塞会话信息。

堵塞会话的会话对应的sql_id


通过sql_id获取的sql语句:




访问序列SEQ_CO_NBR次数分析可发现,2号此序列的访问明显增加。



发现在09:35-09:40数据库在library cache中发生了大量栓锁争用。



根据等待事件latch:library cache 可知sql_id为dv9vb636hj8wn,3aqyzcuwncm6w,9b5cb5ng98r7c,92cj9xtuk83zn,g35m7vksmgkg7,5fxawj5nwwrzz 执行次数比较高是引发该异常的主要原因。

查看当时时间点会话连接情况

发现当时时间点数据库系统中有大量会话不停的登陆和退出。

意见与建议

意见1

建议优化字面sql,来降低library cache硬解析。从而提高library cache解析和缓存能力

意见2

crm系统中存在大量会话连接登陆和退出没有使用weblogic缓存连接池给数据库增加了系统压力。建议外围系统使用中间件的方式来访问crm数据库。

–5gvx5618t6h12 ,1tj5cbz6b67x8 ,b5ftsjthvxsww

–bsbjm8dbz0u7z 98gdu7a3ntd15 b6aj6rn7srd10 b5ftsjthvxsww

未经允许不得转载:Oracle一体机用户组 » tns-12518,12540错误,导致应用部分会话无法连接数据库

相关推荐