Email: [email protected] 7 x 24 online support!
Oracle ASM AMDUツールでMOUNTできなくなったDISKGROUPからデータファイルを抽出する
ORACLEデータベース によくあるエラ の解決策
	プロのOracle Databaseの復旧サービスを提供
	携帯番号: +86 13764045638 メール:[email protected]
今のORACLE PRM-DUL はORACLE ASMのファイルコピ機能を無料で使える。詳しい内容はhttp://www.parnassusdata.com/に参考してください
AMDUはORACLEがASM開發に対するソースデータダンプツールで、その名前はASM Metadata Dump Utility(AMDU)である。
AMDUに以下のような三つの機能がある:
- 
		より簡単に分析できるように、ASM DISKのソースデータをファイルシステムに移す。
 2. ASMファイルの内容を抽出してOSファイルシステムに書き込む。
 3. ブロックのソースデータを印刷して、ブロックのc言語構造あるいは16進数の形式を利用する。
ここで、AMDUでASM DISKGROUPからデータファイルを抽出する。ASMは最近流行っているストレージ解決策として、みんながASMのメリットもデメリットもよく知っている。DISKGROUPがMOUNTできなくなった場合に、伝統的なやり方で、何のデータもエクスポートできなくなる。
AMDUはこのトラブルを解決した。ここで、ASM DISKGROUP がMOUNTできなくなる場合を検討して、RDBMSデータファイルにASMエラが現れたことについて検討しない。
注意:AMDUが11gでリリースしたばかりのツールだが、実際には10gのASMに対しても有効である。
よくある場合は以下の通り: ORACLE DATABASEのSPFILE、CONTROLFILE、DATAFILEがASM DISKGROUPに格納していて、ASM ORA-600エラでDISKGROUPをMOUNTできなくなった。ここで、AMDUでファイルをASM DISKからダンプしてください。
シーン 1 SPFILE、CONTROLFILE、DATAFILEをなくした
リカバリステップ: バックアップからSPFILEをリカバリして、SPFILEがなければ、PFILEでもいい。とにかく、バラメタファイルからcontrol_filesの情報が欲しい・
SQL> show parameter control_files
NAME TYPE VALUE
	———————————— ———– ——————————
	control_files string +DATA/prodb/controlfile/curren
	t.260.794687955, +FRA/prodb/co
	ntrolfile/current.256.79468795
	5
control_files 制御ファイルを獲得できれば、後はうまくいける。+DATA/prodb/controlfile/current.260.794687955ここの260はその制御ファイルが件在+DATA にDISKGROUPのFILE NUMBERである。
そして、ASM DISKのDISCOVERY PATH情報が必要としている。これはASMのSPFILEのasm_diskstring バラメタから獲得できる
[oracle@mlab2 oracle.SupportTools]$ unzip amdu_X86-64.zip
	Archive: amdu_X86-64.zip
	inflating: libskgxp11.so
	inflating: amdu
	inflating: libnnz11.so
	inflating: libclntsh.so.11.1
[oracle@mlab2 oracle.SupportTools]$ export LD_LIBRARY_PATH=./
[oracle@mlab2 oracle.SupportTools]$ ./amdu -diskstring ‘/dev/asm*’ -extract data.260
	amdu_2009_10_10_20_19_17/
	AMDU-00204: Disk N0006 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0006: ‘/dev/asm-disk10’
	AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0003: ‘/dev/asm-disk5’
	AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0002: ‘/dev/asm-disk6′
[oracle@mlab2 oracle.SupportTools]$ cd amdu_2009_10_10_20_19_17/
	[oracle@mlab2 amdu_2009_10_10_20_19_17]$ ls
	DATA_260.f report.txt
	[oracle@mlab2 amdu_2009_10_10_20_19_17]$ ls -l
	total 9548
	-rw-r–r– 1 oracle oinstall 9748480 Oct 10 20:19 DATA_260.f
	-rw-r–r– 1 oracle oinstall 9441 Oct 10 20:19 report.txt
以上はダンプできたDATA_260.f 制御ファイルである。以下は制御ファイルstartup mount RDBMSの使用例である:
SQL> alter system set control_files=’/opt/oracle.SupportTools/amdu_2009_10_10_20_19_17/DATA_260.f’ scope=spfile;
System altered.
SQL> startup force mount;
	ORACLE instance started.
Total System Global Area 1870647296 bytes
	Fixed Size 2229424 bytes
	Variable Size 452987728 bytes
	Database Buffers 1409286144 bytes
	Redo Buffers 6144000 bytes
	Database mounted.
SQL> select name from v$datafile;
NAME
	——————————————————————————–
	+DATA/prodb/datafile/system.256.794687873
	+DATA/prodb/datafile/sysaux.257.794687875
	+DATA/prodb/datafile/undotbs1.258.794687875
	+DATA/prodb/datafile/users.259.794687875
	+DATA/prodb/datafile/example.265.794687995
	+DATA/prodb/datafile/mactbs.267.794688457
6 rows selected.
startup mountインスタンスのあと、v$datafileからデータファイルの名前を獲得できる。その中にはDISKGROUPのFILE NUMBERを含んでいる。
再び./amdu -diskstring ‘/dev/asm*’ -extract コマンドを使えばいい。データファイルをオペレーションシステムにエクスポートする
[oracle@mlab2 oracle.SupportTools]$ ./amdu -diskstring ‘/dev/asm*’ -extract data.256
	amdu_2009_10_10_20_22_21/
	AMDU-00204: Disk N0006 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0006: ‘/dev/asm-disk10’
	AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0003: ‘/dev/asm-disk5’
	AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA
	AMDU-00201: Disk N0002: ‘/dev/asm-disk6’
[oracle@mlab2 oracle.SupportTools]$ cd amdu_2009_10_10_20_22_21/
	[oracle@mlab2 amdu_2009_10_10_20_22_21]$ ls
	DATA_256.f report.txt
	[oracle@mlab2 amdu_2009_10_10_20_22_21]$ dbv file=DATA_256.f
DBVERIFY: Release 11.2.0.3.0 – Production on Sat Oct 10 20:23:12 2009
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY – Verification starting : FILE = /opt/oracle.SupportTools/amdu_2009_10_10_20_22_21/DATA_256.f
DBVERIFY – Verification complete
Total Pages Examined : 90880
	Total Pages Processed (Data) : 59817
	Total Pages Failing (Data) : 0
	Total Pages Processed (Index): 12609
	Total Pages Failing (Index): 0
	Total Pages Processed (Other): 3637
	Total Pages Processed (Seg) : 1
	Total Pages Failing (Seg) : 0
	Total Pages Empty : 14817
	Total Pages Marked Corrupt : 0
	Total Pages Influx : 0
	Total Pages Encrypted : 0
	Highest block SCN : 1125305 (0.1125305)

 沪公网安备 31010802001377号
沪公网安备 31010802001377号