dsi401_block structure(一)
/***oracle dsi 401 block結構****/
1,data block分成3部分:
cache layer
transaction layer
data layer
2,rowid 2種使用途徑
1,基於索引的掃描
2,正常訪問不能提取表資料(如表塊損壞),可基於rowid提取資料
3,rowid解析
1,solaris有一個工具rowid工具,直接可以解析rowid各組個含義
4,block dump
有2種方法;
1,直接採用os最原始的dump
2,oracle dump
1,直接採用os最原始的dump
基於unix dd工具
示例:dd if=system01.dbf bs=4k skip=99 count=3|od -xv>file.out
dd各選項語義:
if ---dump檔名
bs ---oracle 資料庫大小
skip ---偏移多少資料塊
count --dump多少資料塊
od --八進位制工具
x --轉化八進位制為十六進位制
v --詳細輸出,如無此選項,相同的行皆替代的*
還要最重要的一點:dd的=兩邊不能有空格
5,block layout
type
format
filler
rdba
scnbase
scnwrap
seq --基於同一個scn的遞增序列號
flag --新塊,延遲塊,臨時塊等
checkvalue --用於驗證
data block body
tail --用於驗證資料塊的完整性,由scnbase的低2byte+block type+scn seq
(注:如果基於同一個scn變更了245次,如果下次變更會分配一個新的scn
在11g,如果基於同一個scn對資料庫更新245次,再有新的更新,scn不會重設定為新的scn)
dd產生的dump檔案
1,切記od會自動新增一個offset列,此列為八進位制,它並非是dump檔案一部分內容
----------------------------------------------------------------------------------------
seg/obj --seg/obj id
csc : --最新一次塊清清除的scn
itc ---itl slots的編號
flag ---在freelist塊的的狀態
typ --資料塊的型別,data or index
fsl --11g deprecated,itl tx freelist slot
fnx ---在freelist上的下個資料塊的dba
itl --itl index
xid ---事務id,由undo seg.slot.wrap
uba --undo地址,由undodba.seqno.recordno
flg --c=commited;u=commit upper bound;t=active at csc
lock --事務鎖定記錄數
scn/fsc --scn=事務提交的scn;fsc=free space credit(bytes)
注:如表空間用用自動段空間管理方式,則fsl和fnx會被dba range number,opcode,第一個點陣圖塊dba和資料塊的incarnation number替代
基於上述上個示例:
Block header dump: 0x028b583b
Object id on Block? Y
seg/obj: 0x114a1 csc: 0x00.b0be29 itc: 2 flg: E typ: 1 - DATA --scn未發變化
brn: 0 bdba: 0x28b5838 ver: 0x01 opc: 0
inc: 0 exflg: 0
/******資料部分*******/
data_block_dump,data header at 0x19fd8264
===============
tsiz: 0x1f98 --資料的總大小
hsiz: 0x18 --資料塊的塊頭大小
pbl: 0x19fd8264 --資料塊所屬緩衝的指標
76543210
flag=-------- --N表示pctfree hit(cluster);F表示未在free list;K表示可重新整理的cluster keys
ntab=1 --資料塊包含的表個數,如是cluster,則>1
nrow=3 --資料塊包含的記錄數
frre=-1 --第一個空閒記錄索引條目,-1表示必須要新增一個
fsbo=0x18 --空閒空間的開始偏移量
fseo=0x1023 --空閒空間結束偏移量
avsp=0x1f65 --資料塊中的可用空間
tosp=0x1f65 --資料塊中所有事務提交後的全部可用空間
0xe:pti[0] nrow=3 offs=0 --nrows表示第一個表的記錄數
0x12:pri[0] offs=0x102f --offs表示每條記錄的偏移地址
0x14:pri[1] offs=0x1029
0x16:pri[2] offs=0x1023
/*****表記錄部分dump**********/
block_row_dump:
tab 0, row 0, @0x102f --這個@字首即上述的offs的行所在的偏移地址
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1 --tl為記錄大小,由byte數加上資料
col 0: [ 2] c3 03 ---col為表中列的真正資料
tab 0, row 1, @0x1029
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1 --lb為lock byte,即表明itl事務是否鎖住此記錄,值1 為未提交,0 為提交
col 0: [ 2] c3 03
tab 0, row 2, @0x1023
--fb表示flag byte,H=head of row piece;K=cluster key;c=cluster table member;d=deleted row;f=first data piece;l=last data piece;
---p=first column continues from previous piece;n=last column continues in next piece;
/***在一個資料塊中有data piece的概念***/
tl: 6 fb: --H-FL-- lb: 0x0 cc: 1 --cc表示行中多少個列
col 0: [ 2] c3 03
tab 0, row 3, @0x101c
tl: 7 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 3] c2 2d 2d
end_of_block_dump
/***unix提從了ascii到hex的轉換,可以man ascii***/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-757718/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- data structureStruct
- OpenAPI Basic StructureAPIStruct
- ABAP include structure 的一個具體用法Struct
- Data Structure_樹Struct
- sqrt-data-structureStruct
- idea--Project StructureIdeaProjectStruct
- SAP Spartacus Reference App StructureAPPStruct
- 1.2 Physiacel Structure of Database ClusterStructDatabase
- 1.1 Logical Structure of Database ClusterStructDatabase
- Half-Edge-Mesh-Data-StructureStruct
- Composition and Structure of an INVOIC IDoc in SAP ERPStruct
- SAP ABAP Append structure 介紹APPStruct
- Structure of Linux Kernel Device Driver(Part II)StructLinuxdev
- DrawERD makes it easy to visualize your database structure.DatabaseStruct
- (乾貨)【intellij idea】Project Structure 講解IntelliJIdeaProjectStruct
- 什麼是 SAP ABAP 的 include structureStruct
- java高階用法之:JNA中的StructureJavaStruct
- 淺析kubernetes中client-go structure01clientGoStruct
- H.264碼流結構 (H.264 Data Structure)Struct
- A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoeveC++Struct
- 關於IDEA新建工程後dump project structure from sbtIdeaProjectStruct
- 論文解讀(DAEGC)《Improved Deep Embedded Clustering with Local Structure Preservation》GCStruct
- 論文解讀(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》IDEStruct
- linux下的檔案系統出錯 Structure needs cleaningLinuxStruct
- 2020ICPC小米網路賽 C.Data Structure ProblemStruct
- MySQL 8.0 Reference Manual(讀書筆記56節--Optimizing Database Structure)MySql筆記DatabaseStruct
- 解決SBT下載慢,dump project structure from sbt問題ProjectStruct
- Modeling Conversation Structure and Temporal Dynamics for Jointly Predicting Rumor Stance and Veracity(ACL-19)Struct
- [論文速覽] CalliGAN@ Style and Structure-aware Chinese Calligraphy Character GeneratorStruct
- CRM和C4C裡的組織架構 - Organizational Structure架構Struct
- 【OCP最新題庫解析(052)--題6】Which structure can span multiple data filesStruct
- GO語言學習筆記-包結構篇 Study for Go ! Chapter eight - Package StructureGo筆記APTPackageStruct
- mysql 8 報錯 ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repositoryMySqlErrorAIStruct
- RHEL8.2-虛擬機器異常斷電導致Structure needs cleaning.問題虛擬機Struct
- 玩轉IDEA專案結構Project Structure,打Jar包、模組/依賴管理全搞定IdeaProjectStructJAR
- Android Studio “Project Structure”選專案錄中的Android選項丟失及解決辦法AndroidProjectStruct
- 如何找到某個 ABAP structure 某欄位的源頭來自哪個資料庫表Struct資料庫
- 終極解決方案——sbt配置阿里映象源,解決sbt下載慢,dump project structure from sbt耗時問題...阿里ProjectStruct
- 終極解決方案——sbt配置阿里映象源,解決sbt下載慢,dump project structure from sbt耗時問題阿里ProjectStruct