Email: [email protected] 7 x 24 online support!
Oracle RMAN: すべてのオンラインREDOログファイルが壊れてしまった場合のリカバリ方法(
	詩檀ソフトはDULに基づき、PRM-DULを開發した。DULすべての機能も含めた上で、グラフィックインタフェースとDataBridge(データがDBLINKのように直に目標データベースに伝送できる。)などの機能も追加した。そして、PRM-DULはJavaで編成したので、あらゆるプラットフォームに適応できる。
	PRM-DULの無料バーションダウンロード:
	PRM-DULの無料バーションは一つのテーブルがデフォルトで一万行しか抽出できない。目標データベースがかなり小さいの場合に、無料PRM-DULを使ってください。データベースが一万行を超えて、データの重要性も高い場合に、企業バーションを使ってください。企業バーションPRM-DULは一つのデータベースに対して、Licenseソフトウェア使用許可書を提供する。一つのLicense は$ 999 USD 。そして、PRM-DULは一部無料なLicenseを提供している。
	もし、壊滅したデータベースがDULを使ったら、まだリカバリできない場合に、リカバリサポートサビースを考えてください:
	詩檀ソフトはいまあらゆるOracleデータベースのトラブルに対応できて、主には:データベースが起動できない、誤操作でテーブルがDROPされた、TRUNCATE、DELETE,ASM DiskgroupがMOUNTできないなど。
[Problem]
カレントを含むオンラインREDOログファイルがすべて壊れてしまいました。
制御ファイル、データファイルは壊れていません。
RMANでバックアップを取得しています。
カタログを使用しています。アーカイブログモードで運用しています。
RMANによる復旧方法について教えてください。
[To reproduce]
カレントを含むオンラインREDOログファイルが壊れた場合、このようなエラーが
発生します。
SVRMGR> alter system switch logfile;
ORA-03113: end-of-file on communication channel
Alertファイル:
Thu Nov 30 17:46:50 2000
Errors in file /export/home/rman/ora816c/admin/tar816c/bdump/tar816c_lgwr_1880.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/export/home/rman/ora816c/oradata/tar816c/redo03.log'
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
Thu Nov 30 17:46:50 2000
LGWR: terminating instance due to error 313
Instance terminated by LGWR, pid = 1880
ログのswitchなどが不可能になるため、LGWRが異常終了し、インスタンスがダウンします。
[Action]
以下は、データベースのオンラインREDOログファイル(カレントを含む)が
壊れてしまった場合の対処方法です。
制御ファイル、データファイル、アーカイブ済みのログファイルは壊れていないこと
が前提となっています。ご注意下さい。
 1. もしデータベースが稼働中であるのであれば、データベースをshutdownします。
    オンラインREDOログファイルが壊れているので、shutdown normalはできません。
    shutdown abortをします。
 2. データベースをmount状態にします。
    SVRMGR> startup mount
 3. RMANを起動しターゲットデータベースとカタログデータベースに
    接続します。
    % rman target system/manager@target catalog rman/rman@catalog
 4. アーカイブログファイルの状況を確認し、適用できるアーカイブログファイルの
    ログ順序番号を確認します。
    
    Alertファイル:
    Thu Nov 30 17:37:30 2000
    Thread 1 advanced to log sequence 15
    Current log# 2 seq# 15 mem# 0: /export/home/rman/ora816c/oradata/tar816c/redo02.log
    Thu Nov 30 17:37:30 2000
    ARC0: Beginning to archive log# 1 seq# 14
    ARC0: Completed archiving log# 1 seq# 14
    Thu Nov 30 17:46:50 2000
    Errors in file ....
    
    エラーになる直前でアーカイブしている部分を探しましょう。
    上記の記述より、ログ順序番号 14番まではアーカイブできていることがわかります。
    (カレントのログ順序番号は 15番)
    同様の情報は、インスタンスがmount状態であれば、SVRMGRからでも確認できます。
    SVRMGR> archive log list
    データベース・ログ・モード              :アーカイブ・モード
    自動アーカイブ             使用可能
    アーカイブ先            /export/home/rman/ora816c/arch
    一番古いオンラインログ順序番号     14
    次にアーカイブするログ順序番号   15
    現行のログ順序番号           15
   
 5. RMANでリストアリカバリを行います。
    ログ順序番号 14番まではアーカイブできていることがわかりましたので、
    ログ順序番号 14 までを適用し openします。
    不完全回復となりますので、全データファイルをリストアする必要があります。
    実行コマンド:    
      RMAN> run {
      2> allocate channel ch1 type disk;
      3> set until logseq 15 thread 1;       ==> チェック(1)
      4> restore database;
      5> recover database;
      6> sql 'alter database open resetlogs'; ==> チェック(2)
      7> }
    チェック項目:
    (1) どの時点までリカバリをするかということを指定しています。
        set until logseq 15 thread 1; 
        とすると、ログ順序番号 14番までを適用します。
        注意してください。
    (2) 不完全回復を行っているので、open時には、resetlogsオプションが必須です。
    実行ログの一部:
    RMAN-03022: コンパイル・コマンド: recover
    RMAN-03022: コンパイル・コマンド: recover(1)
    RMAN-03022: コンパイル・コマンド: recover(2)
    RMAN-03022: コンパイル・コマンド: recover(3)
    RMAN-03023: 実行コマンド: recover(3)
    RMAN-08054: メディアのリカバリを開始します。
    RMAN-03022: コンパイル・コマンド: recover(4)
    RMAN-06050: アーカイブログ・スレッド 1、順序 11は、ファイル /export/home/rman/or
    a816c/arch/arch_1_11.arcとしてディスクにあります。
    RMAN-06050: アーカイブログ・スレッド 1、順序 12は、ファイル /export/home/rman/or
    a816c/arch/arch_1_12.arcとしてディスクにあります。
    RMAN-06050: アーカイブログ・スレッド 1、順序 13は、ファイル /export/home/rman/or
    a816c/arch/arch_1_13.arcとしてディスクにあります。
    RMAN-06050: アーカイブログ・スレッド 1、順序 14は、ファイル /export/home/rman/or
    a816c/arch/arch_1_14.arcとしてディスクにあります。
    RMAN-03023: 実行コマンド: recover(4)
    RMAN-08515: アーカイブログ・ファイル名=/export/home/rman/ora816c/arch/arch_1_11.arc 
    スレッド=1 順序=11
    RMAN-08515: アーカイブログ・ファイル名=/export/home/rman/ora816c/arch/arch_1_12.arc
    スレッド=1 順序=12
    RMAN-08515: アーカイブログ・ファイル名=/export/home/rman/ora816c/arch/arch_1_13.arc
    スレッド=1 順序=13
    RMAN-08515: アーカイブログ・ファイル名=/export/home/rman/ora816c/arch/arch_1_14.arc
    スレッド=1 順序=14
    RMAN-08055: メディアのリカバリが完了しました。
    ==> 壊れてしまったオンラインREDOログファイル(順序番号 15番)は適用していません。
 6. データベースをresetlogsオプションをつけてopenしたため、
    リカバリカタログにもそれを通知します。
    RMAN> reset database;
  7. 今後の障害のために、必ずバックアップを取得してください。
