13_深入解析Oracle資料庫bootstrap
一、概念介紹
Oracle 資料庫中 bootstrap 是一組表,告訴我們其餘的表在哪裡。類似於資料字典的資料字典。它位於一個固定的位置 -- 如磁碟驅動器上的 “ 引導記錄 ” 。我們總能在一個已知的地點找到它。 --by Tom Kyte
通常, Bootstrap 是一種將計算機程式的前幾條指令載入到活動記憶體中,然後使用它們來載入程式的其餘部分的技術 , 在 Oracle 中, Bootstrap 指的是在開啟資料庫之前載入後設資料 ( 資料字典 ),Oracle 資料庫中 object_id 小於 59(11g: 59,10g: 56) 的為 Bootstrap objects ,其中包括表 / 索引 / 叢集物件 ,Bootstrap objects 包含資料庫中最重要的後設資料,是啟動例項的必需物件。 Bootstrap objects 物件解析結果如下所示,
圖 1 Bootstrap objects 物件解析表
二、 資料庫啟動過程除錯
STARTUP MOUNT;
ALTER SESSION SET EVENTS '10046 TRACE NAMECONTEXT FOREVER,LEVEL 12';
ALTER DATABASE OPEN;
ALTER SESSION SET EVENTS '10046 TRACE NAMECONTEXT OFF';
SHOW PARAMETER USER_DUMP_DEST
ORADEBUG SETMYPID
ORADEBUG TRACEFILE_NAME
圖 2 建立及查詢 Bootstrap$ 表
--- 建立bootstrap 物件: 59 個
[oracle@sourcedb ~]$ egrep -in '^create' /u01/app/oracle/diag/rdbms/epmsn/epmsn/trace/epmsn_ora_21827.trc 167:create table bootstrap$ ( 252:CREATE ROLLBACK SEGMENT SYSTEM STORAGE( INITIAL 112K NEXT 56K MINEXTENTS 1MAXEXTENTS 32765 OBJNO 0 EXTENTS (FILE 1 BLOCK 128)) 259:CREATE CLUSTER C_OBJ#("OBJ#"NUMBER) PCTFREE 5 PCTUSED 40 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 136K NEXT 200K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 2 EXTENTS (FILE 1 BLOCK 144)) SIZE800 266:CREATE INDEX I_OBJ# ON CLUSTER C_OBJ#PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 3 EXTENTS (FILE 1 BLOCK 168)) 276:CREATE TABLE TAB$("OBJ#" 283:CREATE TABLE CLU$("OBJ#" 290:CREATE CLUSTER C_TS#("TS#"NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 6 EXTENTS (FILE 1 BLOCK 176)) 297:CREATE INDEX I_TS# ON CLUSTER C_TS#PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 7 EXTENTS (FILE 1 BLOCK 184)) 307:CREATE CLUSTERC_FILE#_BLOCK#("TS#" NUMBER,"SEGFILE#" NUMBER,"SEGBLOCK#"NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 24K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 8 EXTENTS (FILE 1 BLOCK 192)) SIZE225 314:CREATE INDEX I_FILE#_BLOCK# ON CLUSTERC_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 9 EXTENTS (FILE 1 BLOCK 200)) 324:CREATE CLUSTERC_USER#("USER#" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255STORAGE ( INITIAL 64K NEXT 1024KMINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 10 EXTENTS (FILE 1 BLOCK208)) SIZE 372 331:CREATE INDEX I_USER# ON CLUSTER C_USER#PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 11 EXTENTS (FILE 1 BLOCK 216)) 341:CREATE TABLE FET$("TS#" N 348:CREATE TABLE UET$("SEGFIL 355:CREATE TABLE SEG$("FILE#" 362:CREATE TABLE UNDO$("US#" 369:CREATE TABLE TS$("TS#" NU 376:CREATE TABLE FILE$("FILE# 383:CREATE TABLE OBJ$("OBJ#" 390:CREATE TABLE IND$("OBJ#" 397:CREATE TABLE ICOL$("OBJ#" 404:CREATE TABLE COL$("OBJ#" 411:CREATE TABLE USER$("USER# 418:CREATE TABLE PROXY_DATA$( 425:CREATE UNIQUE INDEX I_PROXY_DATA$ ONPROXY_DATA$(CLIENT#,PROXY#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 24 EXTENTS (FILE 1 BLOCK 256)) 435:CREATE TABLE PROXY_ROLE_D 442:CREATE INDEX I_PROXY_ROLE_DATA$_1 ONPROXY_ROLE_DATA$(CLIENT#,PROXY#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 26 EXTENTS (FILE 1 BLOCK 272)) 452:CREATE UNIQUE INDEXI_PROXY_ROLE_DATA$_2 ON PROXY_ROLE_DATA$(CLIENT#,PROXY#,ROLE#) PCTFREE 10INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 27 EXTENTS (FILE 1 BLOCK 280)) 462:CREATE TABLE CON$("OWNER# 469:CREATE CLUSTER C_COBJ#("OBJ#"NUMBER) PCTFREE 0 PCTUSED 50 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 56K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 29 EXTENTS (FILE 1 BLOCK 296)) SIZE300 476:CREATE INDEX I_COBJ# ON CLUSTER C_COBJ#PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 30 EXTENTS (FILE 1 BLOCK 304)) 486:CREATE TABLE CDEF$("CON#" 493:CREATE TABLE CCOL$("CON#" 500:CREATE INDEX I_TAB1 ON TAB$(BOBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 33 EXTENTS (FILE 1 BLOCK 312)) 510:CREATE UNIQUE INDEX I_UNDO1 ONUNDO$(US#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 34 EXTENTS (FILE 1 BLOCK 320)) 520:CREATE INDEX I_UNDO2 ON UNDO$(NAME)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 35 EXTENTS (FILE 1 BLOCK 328)) 530:CREATE UNIQUE INDEX I_OBJ1 ONOBJ$(OBJ#,OWNER#,TYPE#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 36 EXTENTS (FILE 1 BLOCK 336)) 540:CREATE UNIQUE INDEX I_OBJ2 ONOBJ$(OWNER#,NAME,NAMESPACE,REMOTEOWNER,LINKNAME,SUBNAME,TYPE#,SPARE3,OBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 16K NEXT 104K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 37 EXTENTS (FILE 1 BLOCK 344)) 550:CREATE INDEX I_OBJ3 ON OBJ$(OID$)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 38 EXTENTS (FILE 1 BLOCK 352)) 560:CREATE INDEX I_OBJ4 ONOBJ$(DATAOBJ#,TYPE#,OWNER#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 39 EXTENTS (FILE 1 BLOCK 360)) 570:CREATE UNIQUE INDEX I_OBJ5 ONOBJ$(SPARE3,NAME,NAMESPACE,TYPE#,OWNER#,REMOTEOWNER,LINKNAME,SUBNAME,OBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 40 EXTENTS (FILE 1 BLOCK 368)) 580:CREATE UNIQUE INDEX I_IND1 ONIND$(OBJ#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 41 EXTENTS (FILE 1 BLOCK 376)) 592:CREATE INDEX I_ICOL1 ON ICOL$(OBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 42 EXTENTS (FILE 1 BLOCK 384)) 602:CREATE UNIQUE INDEX I_FILE1 ONFILE$(FILE#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 43 EXTENTS (FILE 1 BLOCK 392)) 612:CREATE UNIQUE INDEX I_FILE2 ONFILE$(TS#,RELFILE#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 44 EXTENTS (FILE 1 BLOCK 400)) 622:CREATE UNIQUE INDEX I_TS1 ON TS$(NAME)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 45 EXTENTS (FILE 1 BLOCK 408)) 632:CREATE UNIQUE INDEX I_USER1 ONUSER$(NAME) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 46 EXTENTS (FILE 1 BLOCK 416)) 642:CREATE UNIQUE INDEX I_USER2 ONUSER$(USER#,TYPE#,SPARE1,SPARE2) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 47 EXTENTS (FILE 1 BLOCK 424)) 652:CREATE UNIQUE INDEX I_COL1 ONCOL$(OBJ#,NAME) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 32K NEXT 104K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0 OBJNO 48 EXTENTS (FILE 1 BLOCK 432)) 662:CREATE INDEX I_COL2 ON COL$(OBJ#,COL#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 32K NEXT 104K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 49 EXTENTS (FILE 1 BLOCK 440)) 672:CREATE UNIQUE INDEX I_COL3 ONCOL$(OBJ#,INTCOL#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 32K NEXT 104K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0 OBJNO 50 EXTENTS (FILE 1 BLOCK 448)) 682:CREATE UNIQUE INDEX I_CON1 ONCON$(OWNER#,NAME) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 51 EXTENTS (FILE 1 BLOCK 456)) 692:CREATE UNIQUE INDEX I_CON2 ONCON$(CON#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 52 EXTENTS (FILE 1 BLOCK 464)) 702:CREATE UNIQUE INDEX I_CDEF1 ONCDEF$(CON#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 53 EXTENTS (FILE 1 BLOCK 472)) 712:CREATE INDEX I_CDEF2 ON CDEF$(OBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 54 EXTENTS (FILE 1 BLOCK 480)) 722:CREATE INDEX I_CDEF3 ON CDEF$(ROBJ#)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 55 EXTENTS (FILE 1 BLOCK 488)) 732:CREATE INDEX I_CDEF4 ON CDEF$(ENABLED)PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0OBJNO 56 EXTENTS (FILE 1 BLOCK 496)) 742:CREATE INDEX I_CCOL1 ONCCOL$(CON#,COL#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 57 EXTENTS (FILE 1 BLOCK 504)) 752:CREATE UNIQUE INDEX I_CCOL2 ONCCOL$(CON#,INTCOL#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0 OBJNO 58 EXTENTS (FILE 1 BLOCK 512)) [oracle@sourcedb ~]$ egrep -in '^create'/u01/app/oracle/diag/rdbms/epmsn/epmsn/trace/epmsn_ora_21827.trc|wc -l 59
***** 查詢extent 佔用情況
[oracle@sourcedb ~]$ set linesize 200 pagesize 200 col owner for a10 col segment_name for a20 col segment_type for a20 selectowner,segment_name,segment_type,EXTENT_ID,file_id,block_id,BLOCKS fromdba_extents where file_id=1 and 520 between block_id and block_id + blocks -1; OWNER SEGMENT_NAME SEGMENT_TYPE EXTENT_ID FILE_ID BLOCK_ID BLOCKS ------------------------------ -------------------- ---------- ---------- -------------------- SYS BOOTSTRAP$ TABLE 0 1 520 8 SQL>
三、 bootstrap$物件解析
bootstrap$ 表 物件解析sql:
--bootstrap$表物件解析.sql by 惠星星 2020.3.2 select line#, obj#, substr(sql_text, 1, 30) t_sql_1, case when substr(sql_text,8,instr(sql_text, ' ',1,2)-8)='ROLLBACK' then'SYSTEM' when substr(sql_text,8,instr(sql_text, ' ',1,2)-8) in('CLUSTER','TABLE') then substr(sql_text, instr(sql_text,'',1,2)+1,instr(sql_text,'(',1,1)-instr(sql_text,' ',1,2)-1) when substr(sql_text,8,instr(sql_text, ' ',1,2)-8)='INDEX' then substr(sql_text,instr(sql_text,' ',1,2)+1,instr(sql_text,' ',1,3)-instr(sql_text,' ',1,2)-1) when substr(sql_text,8,instr(sql_text, ' ',1,2)-8)='UNIQUE' thensubstr(sql_text, instr(sql_text,' ',1,3)+1,instr(sql_text,'',1,4)-instr(sql_text,' ',1,3)-1) else '' end name, substr(sql_text,8,instr(sql_text, ' ',1,2)-8) type, case when instr(sql_text, 'OBJNO ')<>0 then substr(sql_text,instr(sql_text, 'OBJNO '), 8) else ''end obj_no, case when instr(sql_text, 'TABNO ')<>0 then substr(sql_text,instr(sql_text, 'TABNO '), 7) else ''end TABNO, --sql_text, case when instr(sql_text, 'TABNO ')<>0 then substr(sql_text,instr(sql_text, 'CLUSTER '), instr(sql_text, ')',-1)-instr(sql_text, 'CLUSTER')+1) else '' end clus, case when instr(sql_text, 'FILE 1 ')<>0 then substr(sql_text,instr(sql_text, 'FILE 1 '), 6) else ''end file#, case when instr(sql_text, 'BLOCK ')<>0 then substr(sql_text,instr(sql_text, 'BLOCK '), 9) else ''end block# from bootstrap$ order by 2;
|
bootstrap$ 表物件解析結果:
請見,圖 1 Bootstrap objects 物件解析表
四、 bbed解析bootstrap$表
BBED> set dba 1,520 DBA 0x00400208(4194824 1,520) BBED> p ktetb struct ktetb[0], 8 bytes @108 --extent map 表示從file#1,block# 521開始的7個blocks ub4 ktetbdba @108 0x00400209 ub4 ktetbnbk @112 0x00000007 [oracle@sourcedb ~]$ ora_rdba0x00400209 *******Welcome to use ora_rdba toolauthored by orastar.******* *******weixin: xidoublestar******* rdba is: 0x400209 datafile# is: 1 datablock is: 521 dump command:alter system dump datafile 1block 521; [oracle@sourcedb ~]$ BBED> p ktemh struct ktemh, 16 bytes @92 ub4 count_ktemh @92 0x00000001 --只有一個extent map ub4 next_ktemh @96 0x00000000 ub4 obj_ktemh @100 0x0000003b --obj#: 59 ub4 flag_ktemh @104 0x40000000 BBED> BBED> p hwmark_ktech struct hwmark_ktech, 32 bytes @48 ub4 extno_ktehw @48 0x00000000 ub4 blkno_ktehw @52 0x00000003 ub4 extsize_ktehw @56 0x00000007 ub4 blkaddr_ktehw @60 0x0040020c --高水位 dba 1,524,全表掃描查詢:524以下的block. ub4 mapblk_ktehw @64 0x00000000 ub4 offset_ktehw @68 0x00000000 ub4 flblks_ktehw @72 0x00000001 ub4 blkcnt_ktehw @76 0x00000003 BBED> [oracle@sourcedb ~]$ ora_rdba 0x0040020c *******Welcome to use ora_rdba toolauthored by orastar.******* *******weixin: xidoublestar******* rdba is: 0x40020c datafile# is: 1 datablock is: 524 dump command:alter system dump datafile 1block 524; [oracle@sourcedb ~]$ BBED> set dba 1,521 DBA 0x00400209(4194825 1,521) BBED> p kdbr sb2 kdbr[0] @86 8099 sb2 kdbr[1] @88 7962 sb2 kdbr[2] @90 7573 sb2 kdbr[3] @92 7373 sb2 kdbr[4] @94 6990 sb2 kdbr[5] @96 6778 sb2 kdbr[6] @98 6573 sb2 kdbr[7] @100 5961 sb2 kdbr[8] @102 5755 sb2 kdbr[9] @104 5555 sb2 kdbr[10] @106 5334 sb2 kdbr[11] @108 5130 sb2 kdbr[12] @110 4847 sb2 kdbr[13] @112 4613 sb2 kdbr[14] @114 4366 sb2 kdbr[15] @116 3896 sb2 kdbr[16] @118 3688 sb2 kdbr[17] @120 3473 sb2 kdbr[18] @122 3193 sb2 kdbr[19] @124 2409 sb2 kdbr[20] @126 2204 sb2 kdbr[21] @128 1630 sb2 kdbr[22] @130 1421 sb2 kdbr[23] @132 1222 --該塊中儲存24行資料 BBED> BBED> p *kdbr[23] rowdata[0] ---------- ub1 rowdata[0] @1290 0x2c BBED> x /rccccc rowdata[0] @1290 ---------- flag@1290: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@1291: 0x01 cols@1292: 3 col 0[2] @1293: .. col 1[2] @1296: .. col 2[189] @1299: CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10INITRANS --儲存的sql語句 2MAXTRANS 255 STORAGE ( INITIAL 64K NEXT1024K MINEXTENTS 1 MAXEXTENTS 2 147483645 PCTINCREASE 0 OBJNO 7 EXTENTS(FILE 1 BLOCK 184)) ***********bootstrap$儲存在哪行 select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid)file_id, dbms_rowid.rowid_block_number(rowid)block_id, dbms_rowid.rowid_row_number(rowid) frombootstrap$ where line#=59; BBED> set dba 1,522 DBA 0x0040020a(4194826 1,522) BBED> p *kdbr[13] rowdata[1959] ------------- ub1 rowdata[1959] @3485 0x2c BBED> x /rccccccccc rowdata[1959] @3485 ------------- flag@3485: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@3486: 0x01 cols@3487: 3 col 0[2] @3488: .< col 1[2] @3491: .< col 2[272] @3494: CREATE TABLE BOOTSTRAP$("LINE#" NUMBER NOTNULL,"OBJ#" NUMBER NOT NULL,"SQL_TEXT"VARCHAR2(4000) NOT NULL) PCTFREE 10 PCTUSED 40 I NITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 56K NEXT 1024K MINEXTENTS 1 MAXEX TENTS 2147483645 PCTINCREASE 0 OBJNO 59EXTENTS (FILE 1 BLOCK 520)) BBED>
五、 bootstrap$的地址儲存在哪?
bootstrap$ 的地址儲存在file1,block1 的kcvfhrdb(offset96) 中,kcvfhrdb 結構每個資料檔案頭都有,但只有file 1 有值,其它檔案為0 。(11.2.0.4 以前)
BBED> set dba 1,1 BBED> p kcvfhrdb ub4 kcvfhrdb @96 0x00400208 BBED> set dba 2,1 DBA 0x00800001(8388609 2,1) BBED> p kcvfhrdb ub4 kcvfhrdb @96 0x00000000 BBED> set dba 3,1 DBA 0x00c00001(12582913 3,1) BBED> p kcvfhrdb ub4 kcvfhrdb @96 0x00000000 BBED> [oracle@sourcedb ~]$ ora_rdba 0x00400208 *******Welcome to use ora_rdba toolauthored by orastar.******* *******weixin: xidoublestar******* rdba is: 0x400208 datafile# is: 1 datablock is: 520 dump command:alter system dump datafile 1block 520; [oracle@sourcedb ~]$
六、 說明
1 、以上內容為個人多次測試結果,由於個人原因,如有分析不足之處還請見諒及指正。
2、文章涉及內容,請勿在生產環境模擬。
紙上得來終覺淺,絕知此事要躬行。--陸游
感謝您的閱讀,如果您覺得有所收穫,也歡迎把文章分享給您的朋友。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2679901/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 資料塊格式深入解析Oracle
- 10_深入解析Oracle number資料型別及os層number解析工具分享Oracle資料型別
- 從 Oracle 日誌解析學習資料庫核心原理Oracle資料庫
- Oracle資料庫遷移到國產資料庫核心難點解析 | 聯盟釋出Oracle資料庫
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- TSPython操作MySQL MongoDB Oracle三大資料庫深入對比oeePythonMySqlMongoDBOracle大資料資料庫
- Oracle資料庫之cursor、refcursor及sys_refcursor深度解析Oracle資料庫
- Oracle資料庫配置Oracle資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 「Oracle」Oracle資料庫基本概念Oracle資料庫
- 「Oracle」Oracle 資料庫基本概念Oracle資料庫
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- 4.2. Oracle資料庫Oracle資料庫
- Laravel 使用 Oracle 資料庫LaravelOracle資料庫
- oracle資料庫卡頓Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- 深入解析 oracle drop table內部原理Oracle
- oracle資料庫資料字典應用Oracle資料庫
- sqlserver讀取oracle資料庫資料SQLServerOracle資料庫
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- mysql整數資料型別深入解析MySql資料型別
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- 資料庫管理-第145期 最強Oracle監控EMCC深入使用-02(20240205)資料庫Oracle
- 17_深入解析Oracle undo原理(1)_transactionOracle
- 14_深入解析Oracle table cluster結構Oracle
- 深入解析和定製Oracle優化工具Oracle優化
- oracle資料庫的impdp,expdpOracle資料庫
- Oracle資料庫語句大全Oracle資料庫
- Oracle資料庫跟蹤SQLOracle資料庫SQL
- Oracle 資料庫打包安裝Oracle資料庫
- Access 匯入 oracle 資料庫Oracle資料庫
- 清理oracle資料庫空間Oracle資料庫
- oracle資料庫%notfound的理解Oracle資料庫