首页 > Linux操作系统 > Linux操作系统 > ora-01000错误
前几天数据库出现数据库出现ora-01000错误(Maximum open cursors exceeded),应用的工作人员联系我解决,我当时我把open_cursors参数调整500(alter system set open_cursors=500;),但是过几天又出现ora-01000错误,现在总结一下处理过程:
1、查看数据库服务cursor参数
show parameter cursor
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 500
session_cached_cursors integer 20
2、查看了一下v$open_cursor表
select * from v$open_cursor 中有sid、sql_text列
3、查询一下session用户用了那些sql
select o.sid, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where user_name = '&用户名' and o.sid=s.sid
group by o.sid, osuser, machine
order by num_curs desc;
找到num_curs最多的sid
4、然后找出来四张动态表:v$session、v$oper_cursor 、v$sqlarea 写出了如下sql:
select *
from v$open_cursor o, v$session s
where user_name = '用户名称' and o.sid=s.sid
注:v$sqlarea可以查看具体sql内容
5、我发现每个oper_cursor都是一个sql,并且insert、delete、select、update都有,我觉得应该是前台应用数据库连接池的问题。联系前台应用工程师,找出连接池参数,修改参数,问题等到解决。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12272958/viewspace-677901/ ,如需转载,请注明出处,否则将追究法律责任。