Email: service@parnassusdata.com 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. 今後の障害のために、必ずバックアップを取得してください。