ORA-600(17147)和ORA-7445(__lwp_kill)错误

客户10.2.0.4 RAC环境出现ORA-600[17147]和ORA-7445[__lwp_kill]错误。
错误信息为:

Fri DEC 14 16:05:56 2012
Errors IN file /oraclelog/admin/orcl/bdump/orcl2_diag_27263.trc:
ORA-07445: exception encountered: core dump [__lwp_kill()+48] [SIGIOT] [UNKNOWN code] [0x000006A7F] [] []
ORA-00600: internal error code, arguments: [17147], [0x9FFFFFFFFD3E6BB8], [], [], [], [], [], []
Fri DEC 14 16:06:06 2012
Restarting dead background process DIAG
DIAG started WITH pid=6, OS id=12243

报错的进程是DIAG进程,出现错误后引发了ORA-7445错误,这个__lwp_kill函数在MOS中没有记录,但是在SUN的文档中找到了相关函数说明,这是操作系统关闭轻量级进程(lightweight process)是的函数调用。因此问题应该是diag出现了ORA-600[17147]错误,随后Oracle尝试通过系统函数调用__lwp_kill结束进程,但是引发了错误。
根据MOS文档Bug 7028176 – Memory corruption / OERI:17147 in DIAG in RAC [ID 7028176.8],当前的错误是10.2.0.4上的BUG,在RAC环境中出现私有内存错误导致DIAG进程出现ORA-600[17147]错误。
Oracle在10.2.0.4.4和10.2.0.5解决了这个错误。这种内存异常导致的错误一般并不会重现,出现的几率相对较低,因此如果没有大量报错也可以选择忽略。如果确实报错比较频繁,Oracle还在多个平台上都提供了这个BUG的单独PATCH。

This entry was posted in BUG and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *