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