oracle10g的em里出现Metrics "Current Open Cursors Count" is at 1486 的告警
检查数据库如下:
SQL> select count(*) from v$open_cursor;  COUNT(*)
----------
      3436SQL> show parameter open_cursorNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     800请问数据库是否有问题?是否open_cursor参数设置小了?应该设成多少合适?

解决方案 »

  1.   

    没问题,open_cursor参数设置的是一个实例能打开的最大数,Current Open Cursors Count是指一个时段cursor打开的平均值,不是指某一个实例。
      

  2.   

    open_cursors是每个session最多打开的数目
    show parameter open_cursor 
    NAME                                TYPE        VALUE 
    ------------------------------------ ----------- ------------------------------ 
    open_cursors                        integer    800 这里意味着你的单个session最多不能打开800个cursorcurrent open cursors count是指当前实例的某个时刻的打开的cursors数目所以两者是不一样的概念。
     
      

  3.   

    #3对的,前面800是一个session,不是实例。
      

  4.   

    但是select count(*) from v$open_cursor; 查出的结果是3400,远大于1486,是否可能是程序代码有问题,有游标没有被释放?
      

  5.   


    检查应用和procedure,应该是有游标没有关闭,或者程序的resultset没有close整理到blog里了
    http://topic.csdn.net/u/20090909/21/bb9a4c0d-2bdd-47ef-bf9c-68f64dcd325b.html?21883http://blog.csdn.net/inthirties/archive/2009/09/09/4537190.aspx
      

  6.   

    3400是缓存的游标数量http://adian.itpub.net/post/22879/293659