生产排故_ORA-01000: maximum open cursors exceeded

【引言】
项目组今天来找,反馈应用程序日志记录了一连接在昨晚发生连接中断现象,让查一查数据库端有何异常。对应昨晚异常发生时间点,在库alert日志中找到相应时间段的报错信息,报错信息如下:

【报错信息】

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x337FA00010000] [PC:0x400000000714AE40, $cold_kqdReleaseACursor()] [flags: 0x0, count: 1]
Errors in file /oracle/diag/diag/rdbms/ethandb/ethandb/trace/ethandb_ora_8260.trc  (incident=766554):
ORA-07445: exception encountered: core dump [kqdReleaseACursor()] [SIGSEGV] [ADDR:0x337FA00010000] [PC:0x400000000714AE40] [Address not mapped to object] []
ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
Incident details in: /oracle/diag/diag/rdbms/ethandb/ethandb/incident/incdir_766554/ethandb_ora_8260_i766554.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

问题现象也很明显:见上述alert日志报错“ORA-01000: maximum open cursors exceeded”。

原因分析
Oracle 使用 OPEN_CURSORS 参数指定一个session会话一次最多可打开的游标数。超过此数量时,Oracle 将报ORA-01000 错误。当此错误反应在 WebLogic Server 时,显示为抛出 SQLException。

之前的一篇微信推文
《排故篇:ADG实例被LGWR进程宕掉?!》介绍过cursor。

【分析过程】

查询数据库定义的单个session可以打开游标的最大数

SYS@ethandb> show parameter open_cursors
-----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值