在使用Linux大页内存的配置中,使用drop_cache时导致的ORA-600 [KGHLKREM1]问题
来源于:
ORA-600 [KGHLKREM1] On Linux Using Parameter drop_cache On hugepages Configuration (文档 ID 1070812.1)
适用于:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Generic Linux
***Checked for relevance on 29-Jul-2013***
症状:
你正在运行一个Oracle database,单实例数据库或者rac。你使用基于大页内存的sga
你遇到下面的问题:
ORA-00600: internal error code, arguments: [KGHLKREM1], [0x06BC00020] with stack trace similar to: kghnerror kghadd_reserved_ext kghgex -- or also ORA-07445: exception encountered: core dump [kglhdal()+1105][SIGSEGV] [Address not mapped to object] [0x000000008] [] [] ORA-07445: exception encountered: core dump [kghfnd()+2328] [SIGSEGV] [Address not mapped to object] [0xFFFFFFFFFFFFFFF0] [] []
对侵犯地址(在上面的例子中是0x6bc00020)进行SGA heap dump显示,被清零(zeroed out)
asm1_lmd0_8600.trc ~~~~~~~~~~~~~~~~~~ *** 2010-02-08 15:57:38.274 ***** Internal heap ERROR KGHLKREM1 addr=0x6c400020 ds=0x60000058 ***** ***** Dump of memory around addr 0x6c400020: 06C3FF020 00000000 00000000 00000000 00000000 [................] Repeat 511 times
变化:
1.
在你的系统中,你正在运行vm.drop_caches=1 (or 3),drop_cache被设置为一个非零值,或者你在执行:
echo 3 > /proc/sys/vm/drop_caches
如下关于drop_caches的解释,不做翻译,原文如下:
/proc/sys/vm/drop_caches (since Linux 2.6.16) Writing to this file causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagecache: * echo 1 > /proc/sys/vm/drop_caches To free dentries and inodes: * echo 2 > /proc/sys/vm/drop_caches To free pagecache, dentries and inodes: * echo 3 > /proc/sys/vm/drop_caches As this is a non-destructive operation, and dirty objects are not freeable, the user should run "sync" first in order to make sure all cached objects are freed.
2.
已经使用Linux的大页内存。
原因:
这是Linux 内核的问题
使用Linux内核drop_cache参数和大页内存时,内存损坏会发生。
Per internal Bug 9461825, executing vm.drop_caches corrupts Oracle Database SGA hugepages.
This is fixed in Linux Kernel version 2.6.18-194.0.0.0.4.EL5
解决方案:
1. As a workaround when hugepages are set avoid any vm.drop_cache settings. - OR - 2. Upgrade to Linux Kernel version 2.6.18-194.0.0.0.4.EL5
参考:
BUG:9358381 - ASM INSTANCE IS CRASHING AS ORA-600[KGHLKREM1] WHEN HUGEPAGES ARE IN USE