Oracle BUG:ORA-00600[kmgs_parameter_update_timeout_1][17510]
现象:
Oracle数据库在启动的时候alert日志中报错:
SUCCESS: diskgroup DATADG was mounted
Errors in file /oracle/app/11gR1/diag/rdbms/rac/rac2/trace/rac2_mmon_1066.trc (incident=240612):
ORA-00600: internal error code, arguments: [kmgs_parameter_update_timeout_1], [17510], [], [], [], [], [], [], [], [], [], []
ORA-17510: Attempt to do i/o beyond file size
Incident details in: /oracle/app/11gR1/diag/rdbms/rac/rac2/incident/incdir_240612/rac2_mmon_1066_i240612.trc
Tue Dec 31 14:23:25 2013
Trace dumping is performing id=[cdmp_20131231142325]
Completed: ALTER DATABASE MOUNT
推荐阅读:
ORA-01172、ORA-01151错误处理
ORA-00600 [2662]错误解决
ORA-01078 和 LRM-00109 报错解决方法
ORA-00471 处理方法笔记
ORA-00314,redolog 损坏,或丢失处理方法
ORA-00257 归档日志过大导致无法存储的解决办法
修改参数的时候报错ORA-17510:
SQL> alter system set control_files='current.303.835627291' scope=spfile;
alter system set control_files='current.303.835627291' scope=spfile
*
ERROR at line 1:
ORA-17510: Attempt to do i/o beyond file size
SQL>
SQL>
SQL> alter system set log_archive_dest_1='location= DATADG/';
alter system set log_archive_dest_1='location= DATADG/'
*
ERROR at line 1:
ORA-17510: Attempt to do i/o beyond file size
rac2_mmon_1066_i240612.trc文件信息:
*** 2013-12-31 14:23:24.392
Incident 240612 created, dump file: /oracle/app/11gR1/diag/rdbms/rac/rac2/incident/incdir_240612/rac2_mmon_1066_i240612.trc
ORA-00600: internal error code, arguments: [kmgs_parameter_update_timeout_1], [17510], [], [], [], [], [], [], [], [], [], []
ORA-17510: Attempt to do i/o beyond file size
KEBM: MMON action policy violation. 'SGA memory tuning parameter update' viol=0; err=600
error 0 detected in background process
OPIRIP: Uncaught error 447. Error stack:
ORA-00447: fatal error in background process
ORA-00600: internal error code, arguments: [kmgs_parameter_update_timeout_1], [17510], [], [], [], [], [], [], [], [], [], []
ORA-17510: Attempt to do i/o beyond file size
SQL>
rac2_mmon_1066_i240612.trc:
2013-12-31 14:23:23.993826 :80008ADE:db_trace:ksl2.c@9123:ksliwat(): [10005:23:876] KSL POST RCVD 海报=15 loc= 'ksa2.h LINE:282 ID:ksasnd' id1=0 id2=0 name= type=0 fac#=0 facpost=1
2013-12-31 14:23:23.993838 :80008ADF:db_trace:ksb.c @1808:ksbabs(): [10254:23:876] KSBABS: (MMON) : (请求的操作) : acnum=[50] comment=[SGA 内存调整参数更新]
2013-12-31 14:23 :23.995501 :80008AF6:KFNU:kfn.c@1719:kfnUStart():kfnUStart (IN):
2013-12-31 14:23:23.995503 :80008AF7:KFNU:kfn.c@1728:kfnUStart():需要ASM后台进程。 (pid=196; state=3; bootstrap=1, running=2)
----- 会话打开游标 -----
-------- --------------------------------
光标#1(0x2b2949861980) state=BOUND curiob=0x2b294987cc48
curflg=d fl2=200000 par=(nil) ses=0x2a5a2fe30
----- 转储游标 sql_id=8p447s6p0rv6b xsc=0x2b294987cc48 cur=0x2b2949861980 -----
转储父游标 sql_id=8p447s6 p0rv6b phd=0x2a3538bb8 plk=0x2a38f6c10
sqltxt(0x2a3538bb8)=选择 java_pool_size_for_estimate s, java_pool_size_factor * 100 f, estd_lc_load_time l, 0 来自 v$java_pool_advice
哈希=8b1cd0e04050e97a8a9087c1aa0beccb
父=0x287fe4758 maxchild=01 plk=0x2a38f6c10 ppn=n
光标实例化=0x2b294987cc48 使用=1388471003 exec_id=0 exec=0
child#0(0x2a35389d8) pcs=0x287fe3db0
clk=0x2a38f6b18 ci=0x287fe3a50 pn=0 x2a38f6818 ctx=0x283faf250
kgsccflg=0 llk[ 0x2b294987cc50,0x2b294987cc50] idx=0
xscflg=100076 fl2=40000000 fl3=22004 fl4=100
帧 pfr (nil) size=2120 efr (nil) size=2104
光标帧转储
enxt : 2.0x000000b8 enxt: 1.0x00000780
pnxt: 1.0x00000010
---------------------------- ----------
光标#3(0x2b2949861aa0) state=BOUND curiob=0x2b294987c908
curflg=d fl2=200000 par=(nil) ses=0x2a5a2fe30
-----转储游标 sql_id=aykvshm7zsabd xsc=0x2b294987c908 cur=0x2b2949861aa0 -----
转储父游标 sql_id=aykvshm7zsabd phd=0x2a3536398 plk=0x2a38f6a20
sqltxt( 0x2a3536398)=选择 size_for_estimate, size_factor * 100 f, estd_physical_read_time, estd_physical_reads来自 v$db_cache_advice,其中 id = '3'
hash=e6a0c9e759694930af4b7884cffc296d
parent=0x287fdec20 maxchild=01 plk=0x2a38f6a20 ppn=n
光标实例化=0x2b294987c 908 使用=1388471003 exec_id=0 exec=0
子#0(0x2a35361b8) pcs=0x287fde278
clk=0x2a38f6898 ci=0x287fddf18 pn=0x2a3537e78 ctx=0x283fa0f90
kgsccflg=0 llk[0x2b294987c91 0,0x2b294987c910] idx=0
xscflg=100076 fl2=40000000 fl3= 22004 fl4=100
帧 pfr (nil) siz=7176 efr (nil) siz=7160
光标帧转储
enxt: 3.0x00000b78 enxt: 2.0x00000250 enxt: 1.0x00000e30
pnxt:1.0x00000010
----------------------------------------------------
光标#4(0x2b2949861b30) state=BOUND curiob=0x2b294987c5c8
curflg=d fl2=200000 par=(nil) ses=0x2a5a2fe30
----- 转储游标 sql_id=772s25v1y0x8k xsc=0x2b2949 87c5c8 cur=0x2b2949861b30 --- --
转储父游标 sql_id=772s25v1y0x8k phd=0x2a3533e18 plk=0x2a35385a8
sqltxt(0x2a3533e18)=select shared_pool_size_for_estimate s, shared_pool_size_factor * 100 f, estd_lc_load_time l, 0 来自 v$shared_pool_advice
hash=ae5675c671b365c6738b022ec3e07512
parent=0x287fd7f88 maxchild=01 plk=0x2a35385a8 ppn=n
光标实例化=0x2b294987c5c8 使用=1388471003 exec_id=0 exec=0
child#0(0x2a3533c38) 75e0
clk=0x2a35384b0 ci=0x287fd7280 pn=0x2a3537eb0 ctx=0x283f872c0
kgsccflg=0 llk[0x2b294987c5d0,0x2b294987c5d0] idx=0
xscflg=100076 fl2=40000000 fl3=22004 fl4=10 0
帧 pfr (nil) 大小=2120 efr (nil ) size=2104
光标帧转储
帧 pfr (nil) siz=2120 efr (nil) siz=2104
光标帧转储
enxt: 2.0x000000b8 enxt: 1.0x00000780
pnx时间: 1.0x00000010
----------------------------------------------------
Cursor#5(0x2b2949861bc0) state=BOUND curiob=0x2b294987c288
curflg=d fl2=200000 par=(nil) ses=0x2a5a2fe30
----- 转储游标 sql_id=g6gu1n3x0h1h4 xsc=0x2b294987c288 cur=0x2b2949861bc0 -----
转储父游标 sql_id=g6gu1n3x0h1h4 phd=0x2a35326d8 plk=0x2a35383b8
sqltxt(0x2a35326d8)=选择streams_pool_size_for_estimate s, Streams_pool_size_factor * 100 f, estd_spill_time estd_unspill_time, 0 来自 v$streams_pool_advice
hash=78ee9a4289ed2031f33f41a0fa080604
parent=0x287fd2450 maxchild=01 plk=0x2a35383b8 ppn=n
光标实例化=0x2b294987c288 使用=1388471003 exec_id=0 exec=0
孩子#0(0x2a35324f8) pcs=0x287fd1aa8
clk=0x2a35382c0 ci=0x287fd1748 pn=0x2a3537ee8 ctx=0x283f79000
kgsccflg=0 llk[0x2b29498 7c290,0x2b294987c290] idx=0
xscflg=100076 fl2=40000000 fl3 =22004 fl4=100
帧 pfr (nil) siz=2208 efr (nil) siz=2192
光标帧转储
enxt: 2.0x000000e8 enxt: 1.0x000007a8
pnxt: 00010
----------------------------------------------------
光标#6( 0x2b2949861c50) state=BOUND curiob=0x2b294987bf48
curflg=d fl2=200000 par=(nil) ses=0x2a5a2fe30
----- 转储游标 sql_id=5yv7yvjgjxugg xsc=0x2b294987bf 48 cur=0x2b2949861c50 ------
转储父游标 sql_id=5yv7yvjgjxugg phd=0x2a352b990 plk=0x2a3538138
sqltxt(0x2a352b990)=从 V$SYSTEM_EVENT 选择 TIME_WAITED_MICRO,其中 event = '共享 IO 池内存'
hash=b 670d0be0c8dd4595f6cfedc5f1ee9ef
父=0x287fcc918 maxchild =01 plk=0x2a3538138 ppn=n
光标实例化=0x2b294987bf48 使用=1388471003 exec_id=0 exec=0
child#0(0x2a352b7b0) pcs=0x287fcbf70
clk=0x2 a3538040 ci=0x287fcbc10 pn=0x2a35341d8 ctx= 0x283f6d198
kgsccflg=0 llk[0x2b294987bf50,0x2b294987bf50] idx=0
xscflg=100076 fl2=40000000 fl3=22004 fl4=100
帧数 (nil)大小=5008 efr(无)大小=4992
光标帧转储
enxt: 3.0x00000390 enxt: 2.0x00000298 enxt: 1.0x00000d58
pnxt: 1.0x00000010
----- 会话缓存光标转储 - ----
----- 通用会话缓存游标转储 -----
-------------------------------- ---------------------------
-------------- 通用会话缓存游标转储 - -------
-------------------------------------
----- 存档运行时状态结束 -----
----- 恢复上下文信息 -----
--------- 恢复上下文 ----- --
找不到恢复上下文
-----------恢复上下文结束----------
dbkedDefDump:没有当前上下文区域
-------------------------------------------------- -----------------------------
跟踪存储桶转储开始:进程 23 的默认存储桶(osid:1066,MMON)
时间(*=大约):SEQ:COMPONENT:FILE@LINE:FUNCTION:SECT/DUMP: [EVENT#:PID:SID] 数据
--------------- -------------------------------------------------- --------------
2013-12-31 14:23:23.566604 :8000798B:db_trace:kjcv.c@1541:kjcvg0():[10425:23:876] kjss2m跳过([0x7da8296d][0x7bf71d2a],[LB])[所有者1507330][持有模式5]
2013-12-31 14:23:23.566608 :8000798C:db_trace:kjcv.c@1541:kjcvg0() : [10425:23:876] kjss2m 跳过([0x6029d4ac][0x7cdfa2ab],[NB])[所有者 1507330][hold-mode 3]
2013-12-31 14:23:23.566611 :8000798D:db_trace: kjcv.c@1541:kjcvg0(): [10425:23:876] kjss2m Skip([0x6029d4ac][0x7cdfa2ab],[LB])[所有者 1507330][hold-mode 3]
2013-12-31 14 :23:23.567056 :8000798F:db_trace:ksxp.c@3220:ksxpvsnd(): [10401:23:876] KSXPVSND: 客户端 2 tid(1,257,0x19befaa1) buf 0x2a7800cc8 sz 128
2013- 12-31 14: 23:23.569694 :800079AC:db_trace:ksxp.c@4354:ksxpwait(): [10401:23:876] KSXP_SND_CALLBACK: 请求 0x2b294941e908,状态 30
2013-12-31 14:23:23.569 697:800079AD:db_trace: ksxp.c@4382:ksxpwait(): [10401:23:876] KSXPWAIT:发送 compl 被抑制且无请求。 proc 0x2a4e3c9c8 haswrk 0
2013-12-31 14:23:23.570021 :800079B0:db_trace:ksl2.c@9123:ksliwat(): [10005:23:876] KSL POST RCVD 海报=11 loc='kji。 h LINE:2330 ID:kjata: 唤醒队列所有者' id1=0 id2=0 name= type=0 fac#=3 facpost=1
2013-12-31 14:23:23.570047 :800079B1:db_trace:ksxp .c@3220:ksxpvsnd(): [10401:23:876] KSXPVSND: 客户端 2 tid(1,257,0x19befaa1) buf 0x2a7800cc8 sz 128
2013-12-31 14:23:23.571416 :800079CA:db _trace:ksxp。 c@4354:ksxpwait(): [10401:23:876] KSXP_SND_CALLBACK: 请求 0x2b294941e350,状态 30
2013-12-31 14:23:23.571418 :800079CB:db_trace:ksxp.c@4382:ksxp等待(): [10401:23:876] KSXPWAIT:发送 compl 被抑制且无请求。过程 0x2a4e3c9c8 haswrk 0
2013-12-31 14:23:23.571794 :800079CE:db_trace:ksl2.c@9123:ksliwat(): [10005:23:876] KSL POST RCVD 海报=11 loc='kji.h LINE:2330 ID:kjata : 唤醒队列所有者' id1=0 id2=0 name= type=0 fac#=3 facpost=1
2013-12-31 14:23:23.573076 :800079DA:db_trace:kjcv.c@1541:kjcvg0( ): [10425:23:876] kjss2m 跳过([0x574dcc5e][0x6a750b5f],[NB])[所有者 1507330][持有模式 3]
2013-12-31 14:23:23.573079 :800079DB:db_trace :kjcv.c@1541:kjcvg0(): [10425:23:876] kjss2m Skip([0x574dcc5e][0x6a750b5f],[LB])[所有者 1507330][持有模式 3]
2013-12-31 14:23:23.573726 :800079DD:db_trace:kjcv.c@1541:kjcvg0():[10425:23:876] kjss2m 跳过([0x574dcc5e][0x6a750b5f],[NB])[所有者 1507330][持有模式 3 ]
2013-12-31 14:23:23.573729 :800079DE:db_trace:kjcv.c@1541:kjcvg0(): [10425:23:876] kjss2m 跳过([0x574dcc5e][0x6a750b5f],[LB]) [所有者 1507330][hold-mode 3]
2013-12-31 14:23:23.574191 :800079F6:db_trace:ksxp.c@3220:ksxpvsnd(): [10401:23:876] KSXPVSND:客户端 2 tid (1,257,0x19befaa1) buf 0x2a7800cc8 sz 128
2013-12-31 14:23:23.575912 :80007A0A:db_trace:ksxp.c@4354:ksxpwait(): [10401:23:876] _CALLBACK:请求 0x2b294941dd98,状态30
2013-12-31 14:23:23.575915 :80007A0B:db_trace:ksxp.c@4382:ksxpwait(): [10401:23:876] KSXPWAIT:发送 compl 被抑制且无请求。 proc 0x2a4e3c9c8 haswrk 0
分析:
这是Oracle的一个BUG,就如Oracle错误提示所说的,此时spfile无法扩展空间,导致无法修改参数值增加或者新的参数。
解决方法:
重建spfile,重建步骤:
1.先根据spile将pfile创建出来;
create pfile='' from spfile='';
再根据pfile创建spfile:
create spfile from pfile='';
其实从mmon进程的dump信息,我们可以看到在DB启动的过程中(准确的说是在NOMOUNT阶段),MMON会查询v$*_advice系列修改内存建议图,获得各个内存池的建议大小信息,之后再做2件事:
1.将查询到的建议值到spfile中(因此此时spfile不能扩展大小,所以报错ORA-00600) 。
2.根据查询到的建议值去初始化各个内存池大小。