客户的11.2数据库测试环境中碰到了ORA-7445(kcrfw_update_blk_list)错误。
详细的错误信息如下:
Tue Dec 20 22:00:02 2011
Begin automatic SQL Tuning Advisor run for special tuning task
"SYS_AUTO_SQL_TUNING_TASK"
Tue Dec 20 22:00:46 2011
Exception [type: SIGBUS, Non-existent physical address] [ADDR:0x62652000]
[PC:0x216E0C4, kcrfw_update_blk_list()+196] [flags: 0x0, count: 1]
Errors in file
/u01/app/oracle/diag/rdbms/fhacdb/fhacdb/trace/fhacdb_lgwr_24506.trc
(incident=140173):
ORA-07445: exception encountered: core dump [kcrfw_update_blk_list()+196]
[SIGBUS] [ADDR:0x62652000] [PC:0x216E0C4] [Non-existent physical address] []
Incident details in:
/u01/app/oracle/diag/rdbms/fhacdb/fhacdb/incident/incdir_140173/fhacdb_lgwr_24506_i140173.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Tue Dec 20 22:00:48 2011
Dumping diagnostic data in directory=[cdmp_20111220220048], requested by
(instance=1, sid=24506 (LGWR)), summary=[incident=140173].
Tue Dec 20 22:00:49 2011
PMON (ospid: 24482): terminating the instance due to error 470
System state dump requested by (instance=1, sid=24482 (PMON)),
summary=[abnormal instance termination].
System State dumped to trace file
/u01/app/oracle/diag/rdbms/fhacdb/fhacdb/trace/fhacdb_diag_24492.trc
Tue Dec 20 22:00:50 2011
ORA-1092 : opitsk aborting process
Tue Dec 20 22:00:50 2011
License high water mark = 45
Dumping diagnostic data in directory=[cdmp_20111220220049], requested by
(instance=1, sid=24482 (PMON)), summary=[abnormal instance termination].
Instance terminated by PMON, pid = 24482
USER (ospid: 17228): terminating the instance
Instance terminated by USER, pid = 17228
Tue Dec 20 22:01:03 2011
Adjusting the default value of parameter parallel_max_servers
from 960 to 685 due to the value of parameter processes (700)
Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires
the /dev/shm file system to be mounted for at least 7868514304 bytes. /dev/shm
is either not mounted or is mounted with available space less than this size.
Please fix this so that MEMORY_TARGET can work as expected. Current available
is 7857356800 and used is 562315264 bytes. Ensure that the mount point is
/dev/shm for this directory.
memory_target needs larger /dev/shm
Wed Dec 21 09:34:59 2011
Adjusting the default value of parameter parallel_max_servers
from 960 to 685 due to the value of parameter processes (700)
Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires
the /dev/shm file system to be mounted for at least 7784628224 bytes. /dev/shm
is either not mounted or is mounted with available space less than this size.
Please fix this so that MEMORY_TARGET can work as expected. Current available
is 7742439424 and used is 677232640 bytes. Ensure that the mount point is
/dev/shm for this directory.
memory_target needs larger /dev/shm
对应的详细信息为:
*** 2011-12-20 22:00:46.889
*** SESSION ID:(586.1) 2011-12-20 22:00:46.889
*** CLIENT ID:() 2011-12-20 22:00:46.889
*** SERVICE NAME:(SYS$BACKGROUND) 2011-12-20 22:00:46.889
*** MODULE NAME:() 2011-12-20 22:00:46.889
*** ACTION NAME:() 2011-12-20 22:00:46.889
Dump continued from file:
/u01/app/oracle/diag/rdbms/fhacdb/fhacdb/trace/fhacdb_lgwr_24506.trc
ORA-07445: exception encountered: core dump [kcrfw_update_blk_list()+196]
[SIGBUS] [ADDR:0x62652000] [PC:0x216E0C4] [Non-existent physical address] []
========= Dump for incident 140173 (ORA 7445
[kcrfw_update_blk_list()+196]) ========
----- Beginning of Customized Incident Dump(s) -----
Exception [type: SIGBUS, Non-existent physical address] [ADDR:0x62652000]
[PC:0x216E0C4, kcrfw_update_blk_list()+196] [flags: 0x0, count: 1]
Registers:
%rax: 0x0000000000015ffc %rbx: 0x0000000000000000 %rcx: 0x0000000000033908
%rdx: 0x000000006263c000 %rdi: 0x0000000000001d55 %rsi: 0x000000000000eaa8
%rsp: 0x00007fff89e18410 %rbp: 0x00007fff89e18440 %r8: 0x0000000000000002
%r9: 0x0000000000015ffc %r10:
0x000000006263c000 %r11: 0x000000000000eaa8
%r12: 0x0000000000001d55 %r13: 0x00007fc19ece10b8 %r14: 0x0000000000000002
%r15: 0x0000000000000000 %rip: 0x000000000216e0c4 %efl: 0x0000000000010212
kcrfw_update_blk_list()+170 (0x216e0aa)
mov 0x5deb4677(%rip),%r12d
kcrfw_update_blk_list()+177 (0x216e0b1)
mov 0x5deb4660(%rip),%rdx
kcrfw_update_blk_list()+184 (0x216e0b8) lea
0x0(,%r12,8),%r11
kcrfw_update_blk_list()+192 (0x216e0c0)
lea (%r11,%r12,4),%rax
> kcrfw_update_blk_list()+196 (0x216e0c4) mov %ebx,0x4(%rax,%rdx)
kcrfw_update_blk_list()+200 (0x216e0c8)
mov 0x5deb465a(%rip),%edx
kcrfw_update_blk_list()+206 (0x216e0ce)
mov 0x78(%r13),%rcx
kcrfw_update_blk_list()+210 (0x216e0d2)
mov 0x34(%rcx,%r15),%r15d
kcrfw_update_blk_list()+215 (0x216e0d7)
lea 0x0(,%rdx,8),%rax
*** 2011-12-20 22:00:46.901
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x3, level=3,
mask=0x0)
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
skdstdst()+36 call kgdsdst() 000000000 ? 000000000 ?
7FC19EEA4098 ? 000000001 ?
000000001 ? 000000003 ?
ksedst1()+98 call skdstdst() 000000000 ? 000000000 ?
7FC19EEA4098 ? 000000001 ?
000000000 ? 000000003 ?
ksedst()+34 call ksedst1() 000000001 ? 000000001 ?
7FC19EEA4098 ?
000000001 ?
000000000 ? 000000003 ?
dbkedDefDump()+2741 call ksedst() 000000001 ? 000000001 ?
7FC19EEA4098 ? 000000001 ?
000000000 ? 000000003 ?
ksedmp()+36 call dbkedDefDump() 000000003 ? 000000003 ?
7FC19EEA4098 ? 000000001 ?
000000000 ? 000000003 ?
ssexhd()+2366 call ksedmp() 000000003 ? 000000003 ?
7FC19EEA4098 ? 000000001
?
000000000 ? 000000003 ?
__sighandler() call ssexhd() 000000007 ? 7FC19EEACD70 ?
7FC19EEACC68 ? 000000001 ?
000000000 ? 000000003 ?
kcrfw_update_blk_li signal __sighandler() 000001D55 ? 00000EAA8 ?
st()+196
06263C000 ? 000033908 ?
000000002
? 000015FFC ?
kcrfw_post()+284 call kcrfw_update_blk_li 7FC19ECE10B8 ? 00000EAA8 ?
st() 06263C000 ? 000033908 ?
000000002 ? 000015FFC ?
kcrfw_redo_write()+ call kcrfw_post() 7FFF89E18FB8 ? 00000EAA8 ?
2528
06263C000 ? 000033908 ?
000000002 ? 000015FFC ?
ksbabs()+771 call kcrfw_redo_write() 7FFF89E18FB8 ? 000000018 ?
06263C000 ? 000033908 ?
000000002 ? 000015FFC ?
ksbrdp()+971 call
ksbabs() 7FFF89E18FB8
? 000000018 ?
06263C000 ? 000033908 ?
000000002 ? 000015FFC ?
opirip()+618 call ksbrdp() 7FFF89E18FB8 ? 000000018 ?
06263C000 ? 000033908 ?
000000002 ? 000015FFC ?
opidrv()+598 call opirip() 000000032 ? 000000004 ?
7FFF89E1A178 ? 000033908 ?
000000002 ? 000015FFC ?
sou2o()+98 call opidrv() 000000032 ? 000000004 ?
7FFF89E1A178 ? 000033908 ?
000000002 ? 000015FFC ?
opimai_real()+261 call sou2o() 7FFF89E1A150 ? 000000032 ?
000000004 ?
7FFF89E1A178 ?
000000002 ? 000015FFC ?
ssthrdmain()+252 call opimai_real() 000000000 ? 7FFF89E1A340 ?
000000004 ? 7FFF89E1A178 ?
000000002 ? 000015FFC ?
main()+196 call ssthrdmain() 000000003 ? 7FFF89E1A340 ?
000000001 ? 000000000 ?
000000002 ? 000015FFC ?
__libc_start_main() call main() 000000003 ? 7FFF89E1A4E0 ?
+253
000000001 ? 000000000 ?
000000002 ? 000015FFC ?
_start()+36 call __libc_start_main() 000A07804 ? 000000001 ?
7FFF89E1A4D8 ? 000000000 ?
000000002 ? 000015FFC ?
--------------------- Binary Stack Dump ---------------------
虽然这个错误信息在MOS上没有任何记录,根据错误信息和TRACE信息不难判断,导致问题的原因是由于内存空间不足所致。
由于配置的MEMORY_TARGET的值大于/dev/shm的值,导致Oracle在处理内存地址时出现了异常,从而导致数据库的崩溃。
那么解决问题的方法很简单,缩小MEMORY_TARGET的值,或增大/dev/shm的设置,确保MEMORY_TARGET小于/dev/shm,数据库即可正常启动。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-713918/ ,如需转载,请注明出处,否则将追究法律责任。