author:skate
time:2010-09-09
我的数据库版本是: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], []
, [], [], [], [], []
SQL>
alertlog文件内容如下:
。。。。。。
Shutting down instance: further logons disabled
EMN0 started with pid=28, OS id=6132
Thu Sep 09 16:24:08 2010
Stopping background process QMNC
Thu Sep 09 16:24:08 2010
Stopping background process CJQ0
Thu Sep 09 16:24:09 2010
Stopping background process MMNL
Thu Sep 09 16:24:10 2010
Stopping background process MMON
Thu Sep 09 16:24:12 2010
Shutting down instance (immediate)
License high water mark = 11
Thu Sep 09 16:24:12 2010
Stopping Job queue slave processes, flags = 7
Thu Sep 09 16:24:12 2010
Job queue slave processes stopped
All dispatchers and shared servers shutdown
Thu Sep 09 16:24:41 2010
ALTER DATABASE CLOSE NORMAL
Thu Sep 09 16:24:41 2010
SMON: disabling tx recovery
SMON: disabling cache recovery
Thu Sep 09 16:24:42 2010
Shutting down archive processes
Archiving is disabled
Thu Sep 09 16:24:47 2010
ARCH shutting down
ARC1: Archival stopped
Thu Sep 09 16:24:52 2010
ARCH shutting down
ARC0: Archival stopped
Thu Sep 09 16:24:53 2010
Thread 1 closed at log sequence 535
Successful close of redo thread 1
Thu Sep 09 16:24:53 2010
Completed: ALTER DATABASE CLOSE NORMAL
Thu Sep 09 16:24:53 2010
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
System State dumped to trace file e:/oracle/product/10.2.0/admin/test/udump/test_ora_812.trc
Thu Sep 09 16:24:56 2010
Errors in file e:/oracle/product/10.2.0/admin/test/udump/test_ora_812.trc:
ORA-00600: 内部错误代码, 参数: [LibraryCacheNotEmptyOnClose], [], [], [], [], [], [], []
根据错误信息,通过“LibraryCacheNotEmptyOnClose”可以知道, library缓存在实例关闭时,没有正常释放,根据oracle关闭和启动的原理可以知道这个错误不会引起任何错误,为什么呢?因为library缓存中保存都是sql语句、sql语句的相关解析树、pl/sql/程序块以及他们转换后可以被oracle执行的代码。而oracle在正常shutdown时只需要把这部分内存释放,而不需要保存,数据库open时不要验证。
这是oracle的一个bug
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Applies to:
Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.4 - Release: 10.2 to 10.2
Information in this document applies to any platform.
Symptoms
o ORA-600 [LibraryCacheNotEmptyOnClose] is reported in the alert.log on shutdown.
The trace file shows following call stack trace and will also include a System State:
kglshu kqlnfy kscnfy ksmshu
opistp_real opistp opiodr ttcpip opitsk opiino opiodr opidrv
sou2o opimai_real main libc_start_main
o Using the mechanism described in Note 301171.1 to pin objects in the Shared Pool
might cause the error. The problem disappears when the pinning of objects is stopped by
deactivating the associated triggers.
Cause
This is due to unpublished Bug 4483084 'ORA-600 [LIBRARYCACHENOTEMPTYONCLOSE]'
This is a bug in that an ORA-600 error is reported when it is found that something is still going on during shutdown.
It does not indicate any damage or a problem in the system.
Solution
This problem is fixed in 11.1.0.6.
Due to the nature of the fix, it is not possible to backport to earlier releases.
The error can be safely ignored as it does not indicate a problem with the database.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
也可以用“ALTER SYSTEM FLUSH SHARED_POOL”这个sql在shutdown前把libray pool清空来解决问题
-----end-----