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に以下のような三つの機能がある:

  1. より簡単に分析できるように、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)

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

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