在某客户Oracle 9i,9.2.0.4 RAC环境中,忽然遇到如下ORA-600错误和ORA-07445错误:
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0x4FA21E38], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [smbput()+10979] [SIGSEGV] [Address not mapped to object] [0x31303200] [] []

oracle ocm根据内部代码kghasp1,可以看出,其问题位于Heap层面,MOS上的解释如下:
We are computing the total amount of allocated memory in a heap.
If one of the chunks in the heap has a size of zero, then this internal error is raised.

oracle ocm 也就是说,当数据库去计算已经分配Heap内存时,发现某一Heap大小为0,出现内部错误。这实际上是PGA的内存管理出现了问题。

oracle ocm Bug 2805580 PGA memory corruption possible using PGA_AGGREGATE_TARGET 与此有关。

升级到9205,该BUG即被修正。ORA-600 [kghasp1] 引致的PGA内存故障