Oracle ASM AMDUツールで作成されたMAPファイルを理解する

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]

 

AMDUはORACLEに対するASM開發のソースデータダンプツールで、その名前はASM Metadata Dump Utility(AMDU),、《AMDUツールでMOUNTできなくなったDISKGROUPからデータファイルを抽出する》でAMDUデータベースファイルの抽出方法を紹介した、 今日はAMDUにDUMPダンプモードで作成されたMAPファイルの意味を紹介する。

DUMPモードで、AMDUはDISKGROUPのIMAGEファイルを作成して、MAPファイルも作成する:

 

 


[oracle@lab1 oracle.SupportTools]$ ./amdu -diskstring '/dev/asm*' -dump DATA
amdu_2012_09_24_02_14_12/

AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA
AMDU-00201: Disk N0002: '/dev/asm-diskb'

[oracle@lab1 oracle.SupportTools]$ cd amdu_2012_09_24_02_14_12/

[oracle@lab1 amdu_2012_09_24_02_14_12]$ head -10 DATA.map 

N0002 D0000 R00 A00000000 F00000000 I0 E00000000 U00 C00256 S0001 B0000000000  
N0002 D0000 R00 A00000001 F00000000 I0 E00000000 U00 C00256 S0001 B0001048576  
N0002 D0000 R00 A00000002 F00000001 I0 E00000000 U00 C00256 S0001 B0002097152  
N0002 D0000 R00 A00000003 F00000002 I0 E00000000 U00 C00256 S0001 B0003145728  
N0002 D0000 R00 A00000004 F00000003 I0 E00000000 U00 C00256 S0001 B0004194304  
N0002 D0000 R00 A00000005 F00000003 I0 E00000002 U00 C00256 S0001 B0005242880  
N0002 D0000 R00 A00000006 F00000003 I0 E00000004 U00 C00256 S0001 B0006291456  
N0002 D0000 R00 A00000007 F00000003 I0 E00000006 U00 C00256 S0001 B0007340032  
N0002 D0000 R00 A00000008 F00000003 I0 E00000008 U00 C00256 S0001 B0008388608  
N0002 D0000 R00 A00000009 F00000003 I0 E00000010 U00 C00256 S0001 B0009437184

 

AMDUのMAPファイルASCIIで編集したファイルで、その内容はあるDISKGROUPのインメージファイルのデータに該当する。AMDUはそれぞれのDISKGROUPに該当して、mapファイルを作成する。一つのMAPファイルはひと組image fileに該当している。 Mapファイルに各行はダンプしたimage fileのallocation unit AUに該当する。一つのAUが何のデータもないのに、image fileに書き込まれたが、mapファイルに該当する記録がある。Mapファイルに各行は同じフィールドとフィールド長さを持っている。Mapの行はインメージファイルの順番で配列する。同時に、インメージファイルの絶対位置に該当していて、いろんな配列でAUをトレースする。

次に紹介するのフィールドはmapファイルの各行に現れる。各フィールドはアルファベットで始まって、いくつの数字が後に付いている。次は各フィールドの意味を紹介する。:
Disk Report Number(Nxxxx):例えばN0002 、AMDUに検知された各ASM DISKは一つのdisk report numberをもらう。この数字もそのdiskのほかの情報もAMDU報告ファイルに書き込まれる(report file)。このようなこともあるかもしれない:同じなdiskgroupで検知された二つのディスクに同じなDISK NUMBERが存在している。このとき、二つのディスクは違ったdisk report numberを割り当てる。
Disk Number(Dxxxx):例えばD0000の場合、このフィールドはASM DISK headerから抽出できたdisk numberである。もし、抽出できたdisk numberは無効あるいはディスクヘッダが識別できない場合に9999と切り替えてください。
Disk Repeat(Rxx): 例えばR00の場合に、一般的にいつも0で、AMDUで大量同じなDISKGROUPにdisk numberが増えるかもしれない。
Allocation Unit(AU Axxxxxxxx):例えばA00000000。 データはASM DISK中のAU位置に格納している。もし、ASM DISKが100 TB& AUに一兆を超えたら、そのフィールドは8位くらい溢れ出す。

FILE Number(Fxxxxxxxx): 例えばF00000000,はそのDISKGROUPにある中ASM FILE Numberファイル番号に指している。もしその数字は256より小さいであれば、ASMソースデータあるいはASM登録情報かもしれない。もし、物理アドレスソースデータにFILE NUMBERは00000000である。

Indirect flag(Ix):例えばI0。もし、そのファイルは0、さもなければ1である

Extent Number(Exxxxxxxx)、例えば E00000000; ファイルに物理extent番号。これはFILE EXTENT MAPにあるインディクスで、データベースインディクスはそのフィールドを使ってAUの位置を確かめる。Extent Numberは偶数の場合にprimary extentで、奇数の場合にsecondary copyである。物理アドレスソースデータの場合に、ソースデータのextent番号である。

AU within extent(Uxx):例えばU00 、大きいなファイルに対して、大きいなディスクを使える。

Block count(Cxxxxx):例えばC00256、AUからインメージファイルのブロック合計をコピできるように、一般的に大きさは4kのブロックである

Image File Sequence Number(Sxxxx):S0001 DUMPのインメージファイルが2GBを超えていないから、そのフィールドが該当しているimage file番号である。

Byte Offset in Image File(Bxxxxxxxxxx):例えばB0001048576はインメージファイルのブロック位置に該当する

Corrupt Block Flag(X0),もしそのAUにベッドブロックがあれば、行を変更し、Xで終わる。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *