ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
今の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)
Comment