联系:手机/微信(+86 17813235971) QQ(107644445)
标题:由于bootstrap$异常导致数据库启动报ORA-03113 ORA-07445 lmebucp
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库无法正常启动,报ORA-03113
SQL> startup ORACLE 例程已经启动。 Total System Global Area 5016387584 bytes Fixed Size 2011136 bytes Variable Size 905969664 bytes Database Buffers 4093640704 bytes Redo Buffers 14766080 bytes 数据库装载完毕。 ORA-03113: 通信通道的文件结束
alert日志报错ORA-07445 lmebucp
Mon Aug 27 15:31:37 2018 Thread 1 advanced to log sequence 21691 Thread 1 opened at log sequence 21691 Current log# 2 seq# 21691 mem# 0: /data/oracle/orcl/redo02.log Successful open of redo thread 1 Mon Aug 27 15:31:37 2018 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Mon Aug 27 15:31:37 2018 SMON: enabling cache recovery Mon Aug 27 15:31:37 2018 Errors in file /home/oracle/oracle/product/10.2.0/db_1/admin/orcl/udump/orcl_ora_5827.trc: ORA-07445: exception encountered: core dump [lmebucp()+24] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
跟踪启动10046 trace
WAIT #1: nam='instance state change' ela= 822 layer=2 value=1 waited=1 obj#=-1 tim=1499370211971345 WAIT #1: nam='db file sequential read' ela= 29 file#=1 block#=257 blocks=1 obj#=-1 tim=1499370211971896 ===================== PARSING IN CURSOR #2 len=188 dep=1 uid=0 oct=1 lid=0 tim=1499370211972625 hv=2809067040 ad='b5fe2d00' create table bootstrap$ ( line# number not null, obj# number not null, sql_text varchar2(4000) not null) storage (initial 50K objno 41 extents (file 1 block 257)) END OF STMT PARSE #2:c=0,e=598,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1499370211972621 BINDS #2: EXEC #2:c=1000,e=195,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1499370211972873 ===================== PARSING IN CURSOR #2 len=55 dep=1 uid=0 oct=3 lid=0 tim=1499370211973429 hv=2111436465 ad='b7bd0530' select line#, sql_text from bootstrap$ where obj# != :1 END OF STMT PARSE #2:c=0,e=472,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1499370211973426 BINDS #2: kkscoacd Bind#0 oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 kxsbbbfp=2b8c5d50a4d0 bln=22 avl=02 flg=05 value=41 EXEC #2:c=1000,e=838,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1499370211974375 WAIT #2: nam='db file sequential read' ela= 27 file#=1 block#=257 blocks=1 obj#=-1 tim=1499370211974522 WAIT #2: nam='db file sequential read' ela= 21 file#=1 block#=258 blocks=1 obj#=-1 tim=1499370211974855 FETCH #2:c=1000,e=479,p=2,cr=3,cu=0,mis=0,r=0,dep=1,og=4,tim=1499370211974908 Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x0, PC: [0x348772c, lmebucp()+24] *** 2018-08-27 15:31:37.074 ksedmp: internal or fatal error ORA-07445: exception encountered: core dump [lmebucp()+24] [SIGSEGV] [Address not mapped to object] [0x000000000] [] [] Current SQL statement for this session: alter database open ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- Cannot find symbol Cannot find symbol Cannot find symbol ksedst()+31 call ksedst1() 000000001 ? 000000001 ? 000000000 ? 000000000 ? 000000000 ? 000000001 ? ksedmp()+610 call ksedst() 000000001 ? 000000001 ? 000000000 ? 000000000 ? 000000000 ? 000000001 ? ssexhd()+630 call ksedmp() 000000003 ? 000000001 ? 000000000 ? 000000000 ? 000000000 ? 000000001 ? <0x336800eca0> call ssexhd() 00000000B ? 2B8C5D238D70 ? 2B8C5D238C40 ? 000000000 ? 000000000 ? 000000001 ? --------------------- Binary Stack Dump ---------------------
通过这里发现,数据库启动执行select line#, sql_text from bootstrap$ where obj# != :1然后报ORA-07445 lmebucp错误。这样的错误比较诡异,一般可能是由于bootstrap异常导致,但是这里再往上跟踪发现 create bootstrap$表指定的记录为file 1 block 257,根据经验知道数据库的bootstrap$表记录一般是377 或者520比较常见.通过工具对于file 1进行分析
DUL> dump datafile 1 block 257 Block Header: block type=0x10 (data segment header block (unlimited extents)) block format=0xa2 (oracle 10) block rdba=0x00400101 (file#=1, block#=257) scn=0x0000.0000007e, seq=1, tail=0x007e1001 block checksum value=0xe75c=59228, flag=4 Data Segment Header: Extent Control Header ------------------------------------------------------------- Extent Header:: extents: 1 blocks: 7 last map: 0x00000000 #maps: 0 offset: 4128 Highwater:: 0x00400103 (rfile#=1,block#=259) ext#: 0 blk#: 1 ext size:7 #blocks in seg. hdr's freelists: 0 #blocks below: 1 mapblk: 0x00000000 offset: 0 Map Header:: next: 0x00000000 #extents: 1 obj#: 41 flag: 0x40000000 Extent Control Header ------------------------------------------------------------- 0x00400102 length: 7 nfl = 1, nfb = 1, typ = 2, nxf = 0, ccnt = 0 SEG LST:: flg:UNUSED lhd: 0x00000000 ltl: 0x00000000
发现异常比较明显,block 257为data_object_id=41,也就是
41|41|CREATE UNIQUE INDEX I_FILE1 ON FILE$(FILE#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 41 EXTENTS (FILE 1 BLOCK 257))
这里看数据库的引导异常或者bootstrap$表中记录异常.通过修复bootstrap相关内容,数据库完美启动