Current Open Cursors Count growing and growing

Current Open Cursors Count appears to be a cumulative count and always growing since instance is started.
Warning threshold of 1200 occurs quickly and regular warnings appears on OEM.
(Oracle 10.1.0.4 on RHEL4AS Linux fresh install)
The value reported on OEM correspond to:
select name,value from v$sysstat where name like '%cursors current%';
result: opened cursors current 194209
Current open cursors are not
select count(*) from v$open_cursor;
which returns a more reasonable value: 293
Any ideas about that ?
Nicolas

i have a tar opened on this .. its a bug with the database.
After finding the query that OEM runs against the db, you
will find that the stats the db is gathering at the database level are wrong .. they are cumulative. So until they patch the db, the metric in OEM is useless. Remove the warning/critical levels in the manage metric screen.
NOTE: they dont use v$open_cursors .. that would be to easy :-)

Similar Messages

  • Metrics " Current Open Cursors Count "

    Hi,
    I get an Alert message Metrics " Current Open Cursors Count is at 1201 '" on 10g database version 10.2.0.1.0 . Can anyone help me to solve this.
    Thanks
    Sree

    Sree,
    The Metric corresponds to the number of records in V$OPEN_CURSOR internal view.
    The number of open cursors is a function of the number of concurrent users and the application code ,so 1201 may not necessaryly indicate a problem – it could be that you system is genuinely very busy.
    You should start worrying if the number of open cursors consistently grows over time (while the workload is steady). In this case you may have a “cursor leak” – a piece of code that opens a cursor, but does not close it.
    You can check that with
    select substr(sql_text,1,30) , count(*) cnt
    from v$open_cursor
    group by substr(sql_text,1,30)
    order by 2 desc
    If the current open cursor are getting close to the max allowed(OPEN_CURSOR parameter), you may reset them using share pool flush (note that the shared pool flush may have some small performance impact on the system).
    Hope that helps,

  • "Current Open Cursors Count" Warning

    I am getting this warning lately in my Grid Control repository database
    Metrics "Current Open Cursors Count" is at 1563
    Open cursors value fluctuates between 1400 and 2300.
    Is my open cursor threshold set too low (warning: default 1200, critical: not defined) and this is normal Grid Control behavior or I have some kind of problem here?
    Oracle 10g Grid Control (10.2.0.5)
    Linux x86

    Actually, it is just a message telling you that the Open Cursor Count has exceeded the threshold limit. If the number of open cursors continues to increase over time (from day to day, and constantly gets larger and larger, never gets smaller) then it may indicate a problem.
    I would suggest that you set the threshold to at least 2300, then wait and see if the alert shows up again. If it does then further analysis may be required to determine the root cause.
    I hope this helps!
    Edited by: CowTown_dba on Sep 22, 2010 10:01 AM

  • Current Open Cursors Count

    That I have to make to correct this error
    Las métricas "Current Open Cursors Count" están en 1405
    my database sends me many messages like these. That I would have to make?
    thanks
    [email protected]

    HI,
    I had once read the following from Tom's site... I hope it will help you.
    ops$tkyte@ORA920LAP> select name, value
    2 from v$mystat a, v$statname b
    3 where a.statistic# = b.statistic#
    4 and b.name = 'opened cursors current'
    5 /
    NAME VALUE
    opened cursors current 1
    ops$tkyte@ORA920LAP>
    ops$tkyte@ORA920LAP> variable x refcursor
    ops$tkyte@ORA920LAP> variable y refcursor
    ops$tkyte@ORA920LAP> variable z refcursor
    ops$tkyte@ORA920LAP>
    ops$tkyte@ORA920LAP> exec open :x for select * from dual;
    PL/SQL procedure successfully completed.
    ops$tkyte@ORA920LAP> /
    NAME VALUE
    opened cursors current 2
    ops$tkyte@ORA920LAP> exec open :y for select * from dual;
    PL/SQL procedure successfully completed.
    ops$tkyte@ORA920LAP> /
    NAME VALUE
    opened cursors current 3
    ops$tkyte@ORA920LAP> exec open :z for select * from dual;
    PL/SQL procedure successfully completed.
    ops$tkyte@ORA920LAP> /
    NAME VALUE
    opened cursors current 4

  • Problem in  Oracle EM (Database Limits - Current Open Cursors)

    Hi everyone,
    I have a problem in Oracle Enterprise Manager in All Metrics.
    When I select in All Metrics e.g. Health Check > Maintenance it work's fine and I see a chart.
    If I select in All Metrics > Database Limits > Current Open Cursors Count I got following error:
    Error
    oracle.sysman.dbTarget.db.emSDKOverride.page.mtrx.GetDataException: ORA-06550: Zeile 79, Spalte 16: PL/SQL: ORA-00942: Tabelle oder View nicht vorhanden ORA-06550: Zeile 51, Spalte 7: PL/SQL: SQL Statement ignored
    What's the problem?
    In this database instance i drop these users (schemas): dbuser, mddata, ordplugins, ordsys, si_informtn_schema!!
    Can this lack of user to cause an error?
    Oracle Enterprise Manager Database Control 10.2.0.0
    Database instance: myDB > All Metrics > Database Limits > Current Open Cursors Count
    Thanks.
    Mark

    Hello Mark,
    personally I don;t think it is a good idea to drop schema's from the database that have been installed as part of the activation of a certain Database Option. If you don't want the option, then don't instal it.
    For a complete description of the schema's you are refering to, check: http://download.oracle.com/docs/cd/E11882_01/server.112/e10575/tdpsg_user_accounts.htm#BABGIBBA
    Regards
    Rob
    http://oemgc wordpress.com

  • SpamAssassin's AWL database growing and growing

    I know that this is a known problem, but maybe someone has found a solution in the meantime that did not came to my attention:
    I'm using the auto whitelist feature of SpamAssassin. Unfortunately I'm forced to erase the entire database from time to time, since there seems to be no auto maintenance - it grows and grows (reaches quickly 20 MB+).
    Is there a way to search the AWL list for e-mail addresses used only one or two times and remove exactly these ?

    I know that this is a known problem, but maybe someone has found a solution in the meantime that did not came to my attention:
    I'm using the auto whitelist feature of SpamAssassin. Unfortunately I'm forced to erase the entire database from time to time, since there seems to be no auto maintenance - it grows and grows (reaches quickly 20 MB+).
    Is there a way to search the AWL list for e-mail addresses used only one or two times and remove exactly these ?

  • Oracle.exe grows and grows tdaily till the system must be restarted

    Hello,
    I must restart the XE almost daily because oracle.exe grow and grow (from about 300M at the begining till more than 1G). the system is slowly and slowly.
    Instalaltion on Windows 2000 SP4 was witout any errors
    there are not default parameters (alertXE.log)
    Fri Sep 15 05:24:00 2006
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on.
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    ksdpec: called for event 13740 prior to event group initialization
    Starting up ORACLE RDBMS Version: 10.2.0.1.0.
    System parameters with non-default values:
    processes = 150
    sessions = 170
    cpu_count = 1
    shared_pool_size = 130023424
    __large_pool_size = 16777216
    large_pool_size = 16777216
    java_pool_size = 41943040
    control_files = D:\ORAXE\ORADATA\XE\CONTROL.DBF
    __db_cache_size = 113246208
    db_cache_size = 113246208
    compatible = 10.2.0.1.0
    log_archive_start = FALSE
    log_archive_format = XE_%s_%r_%t.arc
    db_file_multiblock_read_count= 16
    db_recovery_file_dest = D:\oraxe\app\oracle\flash_recovery_area
    db_recovery_file_dest_size= 53687091200
    fast_start_mttr_target = 0
    undo_management = AUTO
    undo_tablespace = UNDO
    undo_retention = 3600
    O7_DICTIONARY_ACCESSIBILITY= FALSE
    remote_login_passwordfile= EXCLUSIVE
    dispatchers = (PROTOCOL=TCP) (SERVICE=XEXDB)
    session_cached_cursors = 180
    job_queue_processes = 10
    audit_file_dest = D:\ORAXE\APP\ORACLE\ADMIN\XE\ADUMP
    background_dump_dest = D:\ORAXE\APP\ORACLE\ADMIN\XE\BDUMP
    user_dump_dest = D:\ORAXE\APP\ORACLE\ADMIN\XE\UDUMP
    max_dump_file_size = 20000000
    core_dump_dest = D:\ORAXE\APP\ORACLE\ADMIN\XE\CDUMP
    sort_area_size = 1048576
    db_name = XE
    open_cursors = 300
    os_authent_prefix =
    star_transformation_enabled= FALSE
    query_rewrite_enabled = FALSE
    pga_aggregate_target = 251658240
    statistics_level = TYPICAL
    aq_tm_processes = 1
    Can anyone help please?
    regards and Thanks
    Jacek

    I had something similar with 9i a long time ago. I was just using it locally, but it repeatedly kept trying to access the internet, but was blocked, so it kept retrying and writing to the alert log until it grew so big that it filled the hard drive. You might check your files and see exactly what is growing, check your alert log, then deal with the problem, by either disabling something or granting access or whatever is appropriate.

  • Each Time Machine backup grows and grows. How do I stop this?

    Hi everyone. In basic terms, let's say that my external LaCie 3TB hard drive has 2TB of data. This 2TB includes my Time Machine backup. That means that I have 1TB of free space. My last backup was one week ago (I don't keep my external HD hooked up because of travel and I don't care for so many frequent backups). Right now I am backing up, and the backup is 30GB larger than last week. THERE IS NO WAY I MADE 30GB OF CHANGES IN THIS PAST WEEK! At the most, I probably made 1GB of changes. This situation has happened before, so it seems that with each backup (every time I reconnect my external HD for the sole purpose of backing up... Again, I don't leave my HD connected so I back up manually whenever I feel like it, instead of automatic), my data seems to have grown by dozens of GB. Dozens! I'm gonna run outta space soon if this keeps up.
    I've read a number of threads on this topic and checked out Pondini.org but my one question does not seem to be answered:
    How do I stop my backups from growing so big when I know for a fact I did not make big changes?
    This does not equate. If I made 1GB of changes (I'm guessing), then why does Time Machine back up an additional 29GB?
    I'm considering ditching Time Machine and backing up totally manually, like, dragging/copying/pasting files and folders from my laptop into my external HD. At least that way I can control and understand that 2TB of data means 2TB, not: "Surprise! 2.03TB... 2.5TB... 2.75TB and mysteriously growing!"
    Any help would be appreciated, please. Also, I don't know code and I can't do open-source stuff and I don't know jargon. I also don't do advanced stuff like Parallel (I don't know what that is). If you could please help a dummy like me with plain-speak, that would be beyond awesome. Thanks!
    ***MacBook Pro from late 2011, OSX 10.7.5, LaCie Porsche external HD 3TB***

    Some good options are:
    Carbon Copy Cloner
    Data Backup
    Deja Vu
    SuperDuper!
    Synk Pro
    Tri-Backup
    Each provides a trial version before paying.

  • Mail.app and AB Memory Usage Growing and Growing

    I've noticed this over the past week, but I don't know what could have triggered it. Both Address Book's and Mail's memory usage are growing out of control. Since I can easily not run AB much, it's not a big deal, but Mail.app is my preferred email application and I need to run it all the time.
    When I start Mail.app, it's around 65M RSIZE, but if I leave it running for a few hours, it quickly balloons up to 2+GB in RSIZE. I'm sure it'd keep getting bigger if I didn't restart it.
    This is with one account (Exchange) on a 6,2 MacBook Pro. I'm not currently using any plugins for Mail.app.
    Any idea what might be causing these problems, how I can help diagnose it, and how I might be able to fix them?
    Thanks,
    Pete

    Check out this conversation, there are some potential solutions:
    http://discussions.apple.com/thread.jspa?messageID=11446708&#11446708

  • Open cursor for string and select from partition (cannot bind)

    Hi,
    i don't manage to use a bind variable for a select ... from ... PARTITION(...).
    It doesn't work to use something like
    open cur for 'select ... from ... PARTITION(:1) where ...' using 'NDAY_20120301';So i have to create the cursor string with string functions each time i change the partition.
    But that means, that the string changes each time.
    Doesn't that prevent from re-use in library_cache?
    best regards,
    Frank

    >
    So i have to create the cursor string with string functions each time i change the partition.
    But that means, that the string changes each time.
    >
    Yes it does.
    Doesn't that prevent from re-use in library_cache?
    >
    Yes it does.
    So why do you care? Unless you have large numbers of partitions what difference does it make? Bind variables are useful to keep Oracle from doing hard parses of queries that are basically the same but use different filter values. Such as an INSERT statement that uses different values FOR EACH ROW rather
    You are just constructing the main (non-filter) part of the query one time and need a single value for the entire query regardless of how many rows - that isn't really a use case for bind variables and isn't going to provide any real benefit.
    So the real question is why do you even care about something that wouldn't provide any benefit to you even if you could do it?
    Looks like you just want to 'roll your own' parallel processing rather that use, and pay for, Oracle's parallel functionality.
    If each partition uses its own tablespace you could filter on the FILE Id of the ROWIDs since the file number will be different for each tablespace and datafile.
    1. Determine the list of file numbers for each partitions tablespace.
    2. Use a WHERE DBMS_ROWID.ROWID_RELATIVE_FNO (ROWID) = :n filter (or use IN (:n1, :n2))to filter rows based on file number(s) for the partition you want
    See DBMS_ROWID.ROWID_RELATIVE_FNO in the PL/SQL Packages and Types doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_rowid.htm#i1004259

  • TBTCO grows and grows

    Hello guys,
    today I get a lot of short dumps with:
    "ORA-01631: max # extents (300) reached in table
    SAPR3.TBTCO?"
    --> I have raised up the extents but now my question:
    How I can reduce the size of this table???
    Thanks
    Christian

    You need to delete the old background jobs by scheduling SAP_REORG_JOB, is part of the housekeeping jobs, these will trigger program RSBTCDEL.
    Read,
    http://help.sap.com/saphelp_nw70/helpdata/en/c4/3a7fef505211d189550000e829fbbd/content.htm
    And
    http://help.sap.com/saphelp_nw70/helpdata/en/c4/3a7ede505211d189550000e829fbbd/content.htm
    Regards
    Juan

  • Huge numbers of open cursors mistakenly reported

    Hi,
    We recently received an alert stating:
    Metrics "Current Open Cursors Count" is at 4294966978
    I'm trying to ascertain the source of the erroneous number of open cursors. There also seems to be a very strange graph on the alert page in EM. The graph shows the entire Y axis as: 4294966978, yet the plot moves up and down.
    Investigating the issue, I encountered a statistic even more bizarre. In EM, clicking on the Performance tab, and then selecting "Instance Activity" from the list at the bottom of the page, brings up a chart, and a radio button to switch to "Tabular" view. The Tabular view reports that:
    "opened cursors current" is 2^63-1
    Which is plainly impossible. Has anyone else noted this behavior, or have any insight into the cause of it? Viewing the v$ tables doesn't give anything like the bizarre numbers here.
    Thanks,
    Matt

    Do you see a version number in what you posted?
    Neither do I.
    Surely you don't expect people working an anything from 7.0.12 to 11.1.0.6 to have anything relevant to say with respect to your specific problem without know your operating system and version.
    What metalink docs have you searched looking or the answer?

  • Understanding Open Cursor

    Hi All, I am confused on this open cursor as I would like to understand further if I am hitting my limit. Currently I do not see the error that my open cursor exceeded.
    If I add up the a.value on the second sql, I am getting more than 10k, but my open cursor is only set to 5000. I must be calculating this wrongly here.
    open cursor = 5000
    session_cached_cursors 200
    select max(a.value), a.sid, b.program
    from v$sesstat a, v$session b, v$statname c
    where a.sid = b.sid
    and a.statistic# = c.statistic#
    and c.name = 'opened cursors current'
    group by a.sid, b.program
    order by 1 desc
    MAX(A.VALUE) SID PROGRAM
    2201 596
    516 514 abc@server1 (TNS V1-V3)
    401 720 abc@server1 (TNS V1-V3)
    602 670 abc@server1 (TNS V1-V3)
    578 445 abc@server1 (TNS V1-V3)
    129 rows selected.
    Would like to know what is the current open cursor count?
    If I get the sid like above, can I know what SQL is holding it up?

    What total do you get if you use the query from this article? See 'Monitoring open cursors'. Note that it includes serial#
    http://www.orafaq.com/node/758
    --total cursors open, by session
    select a.value, s.username, s.sid, s.serial#
    from v$sesstat a, v$statname b, v$session s
    where a.statistic# = b.statistic#  and s.sid=a.sid
    and b.name = 'opened cursors current';
    If I sum up the a.value it is again more than 10k but the highest a.value is only 2000+
    OPEN_CURSORS specifies the maximum number of open cursors (handles to private SQL areas) a session can have at once. Since it is saying open cursor by a single session. I would suppose my max value now is 2000+ while my max_cursor set is 5000. Am I right?

  • How to get highest number of open cursors within the current calendar day

    Hi all ,
    i need to know how to get the highest number of open cursors within the current calendar day.
    Thanks ,

    823030 wrote:
    the issue is my customer is getting the error ORA-01000: maximum open cursors exceeded and we need an sql statment that gets the following values :
    -highest number of open cursors experienced in the current calendar day.
    -current open cursors
    -and maximum open cursorsThis error is rare. It happens when
    a) the value of the open cursor parameter is set extremly low (default is something like 1000). Low would be something like 10.
    b) <strike>you have many concurrent users(=sessions) and </strike>the application does not use bind values
    In this case each select will open a new cursor, instead of reusing it.
    c) you have a select that opens a cursor for each line. This can happen with a statement where you have the CURSOR keyword somewhere in the select or where clause. Those cursors will be closed when the select is finished. But during the run time of the select, all cursors stay open.
    To track the number of "open cursors" during the day you would need to implement some monitoring. Maybe based on the view that was already mentioned.
    Edited by: Sven W. on May 16, 2011 2:30 PM - since the parameter is on session level, other open cursors should not influence it much.

  • Keeping track of count of open cursors

    Is there a way to ask the API for a list of open cursors (or at least a count of) ?

    Hi Linda,
    Again, thanks for the reply.
    Yes, I wanted to use it to manage cursors while closing a database. At the moment I maintain a count of open cursors myself, I do this so that I can manage the close database process.
    I do this if I want to close the database:
    1. Prevent new cursors from being opened (reject all db updates & queries)
    2. Wait till open cursor count is zero
    3. close db
    However, it does mean having to wrap every query/update method in such a way that I can maintain the cursor count. I was setting up a few new databases and was just wondering if i'd missed something in the API to do this for me.
    Thanks,
    Joel
    Edited by: JoelH on 17-Dec-2009 08:57

Maybe you are looking for