案例环境:

               操作系统版本: Red Hat Enterprise Linux ES release 4

               数据库版本  : 10.2.0.4.0 32 bit

案例介绍:

今天我执行stop_oracle.sh脚本关闭数据库时遭遇了ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], [], [], [], [], [], []. 其中stop_oracle.sh脚本内容如下

lsnrctl stop LISTENER
 
sleep 15
 
sqlplus /nolog <<EOF
 
conn / as sysdba;
 
alter system switch logfile;
 
alter system checkpoint;
 
shutdown immediate;
 
exit
 
EOF
 

 

具体细节如下所示:

 

./stop_oracle.sh 
 
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 08-JUL-2014 23:52:13
 
Copyright (c) 1991, 2007, Oracle. All rights reserved.
 
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
 
The command completed successfully
 
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jul 8 23:52:32 2014
 
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
 
SQL> Connected.
 
SQL> 
 
System altered.
 
SQL> 
 
System altered.
 
SQL> Database closed.
 
Database dismounted.
 
ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], [], [], [], [], [], []
 
SQL> Disconnected from Oracle Database 10g Release 10.2.0.4.0 - Production
 

 

搜索了一下metalink,发现这个是ORACLE 10g/ 11g特别版本中的一个bug来的,原因是当数据库关闭后,仍然有对象在库缓存中。 这并不表示系统中有任何损坏或有问题。可以忽略或打补丁升级。这个bug在10.2.0.5, 11.2.0.1中被修复了。

CAUSE

 

This may be due to unpublished Bug 4483084 - ORA-600 [LIBRARYCACHENOTEMPTYONCLOSE]

This is a bug in that an ORA-600 error is reported during shutdown, after database close because there are still objects in the library cache.

It does not indicate any damage or a problem in the system.

There is a separate issue,

Bug 7572335 - ORA-600 [LIBRARYCACHENOTEMPTYONCLOSE] / ORA-600 [730] DURING SHUTDOWN

which can occur if child cursors are still marked 'KEPT' in the library cache at shutdown.

If you are not sure which issue you are encountering, please submit your traces to Global Software Support.

Bug 4483084 is fixed in 11.1.0.6.

Please refer to

Note 4483084.8 - Bug 4483084 - ORA-600 [LibraryCacheNotEmptyOnClose] on shutdown

Due to the nature of the fix, it is not possible to backport to earlier releases.

Bug 7572335 is fixed in 11.2 and 10.2.0.5 but there are also interim patches available on top of 10.2.0.4 and 11.1.0.7.

Please refer to

Note 7572335.8 - Bug 7572335 - ORA-600 [LibraryCacheNotEmptyOnClose] during shutdown

SOLUTION

The error can be safely ignored as it does not indicate a problem with the database.

If the database appears hung on the shutdown, or to avoid the error, use the following shutdown commands:

shutdown abort

startup restrict

shutdown immediate

To addres Bug 7572335, you can also apply interim Patch 7572335 if available for your platform and Oracle version.

To check for conflicting patches, please use the MOS Patch Planner Tool

Please refer to

Note 1317012.1 - How To Use MOS Patch Planner To Check And Request The Conflict Patches?

 

 

Bug 7572335  ORA-600 [LibraryCacheNotEmptyOnClose] during shutdown

This note gives a brief overview of bug 7572335.  The content was last updated on: 14-AUG-2012
Click here for details of each of the sections below.

Affects:

Product (Component)

Oracle Server (Rdbms)

Range of versions believed to be affected

Versions BELOW 11.2

Versions confirmed as being affected

Platforms affected

Generic (all / most platforms affected)

Fixed:

Description

ORA-600 [LibraryCacheNotEmptyOnClose] / ORA_600 [730] error may occur if  cursors are marked kept in the shared pool.

Rediscovery Notes:

Check a library_cache dump to see if objects are marked as kept (KEP).

Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.

References

        Bug:7572335 (This link will only work for PUBLISHED bugs)
                 Note:245840.1 Information on the sections in this article