ヘッダーをスキップ
Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル
リリース7.2
E06177-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1.38 RMU Recoverコマンド

バックアップ・ファイルからリストアしたデータベースに対し、アフター・イメージ・ジャーナル(.aij)ファイルまたは最適化されたアフター・イメージ・ジャーナル(.oaij)ファイルから過去のトランザクションを適用することで、データベースの再構築を完了します。

形式




説明

RMU Recoverコマンドを使用して、リストアしたデータベースのコピーに.aijファイルの内容を適用できます。Oracle RMUで、リストアしたデータベースのコピーに.aijファイルのトランザクションをロールフォワードします。

RMU Recoverコマンドには、.aijまたは.oaijファイル名のリストを使用できます。Noautomatic修飾子を指定しないかぎり、RMU Recoverコマンドで、現在のジャーナル構成でデータベースに現在関連付けられているリカバリ・シーケンス内のジャーナルを適用することによって、リカバリ操作を自動的に最後まで行います。たとえば、次のRMU Recoverコマンドを指定した場合、Oracle RMUでAIJ1だけでなく、リカバリ・シーケンス内のAIJ2以降のすべてのジャーナルについてもリカバリされます。


$ RMU/RECOVER AIJ1

ただし、この自動リカバリ機能で終了条件を指定するには、Until修飾子を指定する必要があることに注意してください。例1に、Until修飾子を使用して終了条件を指定する方法を示します。

拡張可能なジャーナルを使用している場合、RMU Backup After_Journalコマンドを使用してデータベースの.aijファイルをテープにコピーし、データベースをシャットダウンすることなく、元の.aijファイルを切り捨てることもできます。

.aijファイルを(RMU Backup After_Journalコマンドを使用して)バックアップした場合、これらの.aijファイルは現在のジャーナル構成の一部ではなく、Oracle RMUで.aijファイルの場所がわからないため、自動リカバリは行われません。(これには例外が1つあります。バックアップされた唯一の.aijファイルがリカバリ・シーケンスの最初の.aijファイルの場合、自動リカバリが行われます。Oracle RMUコマンドラインで、バックアップされた.aijファイルを指定すると、Oracle RMUでディスク上の残りの.aijファイルの場所が判断されます。)

自動リカバリが行われない場合、データベースを必要な状態に戻すには、RMU Recoverコマンドで.aijファイルの完全なリストを指定する必要があります。

バックアップ・ファイルがNoquiet_Point修飾子を使用して作成されていた場合、1つのコマンドですべての.aijファイルの名前を指定する必要があります。また、これらの.aijファイルを作成順にデータベースに適用するよう注意する必要があります。Oracle RMUでデータベースに対してジャーナル・ファイル・エントリの妥当性がチェックされ、適切なトランザクションのみが適用されます。トランザクションが適用されない場合、警告メッセージが返されませす。

リカバリ操作とリカバリ操作の間にデータベースにアクセスしてデータを取得することはできますが、リカバリ操作を以降も行う場合、更新は行えません。

システム障害によってリカバリ操作が強制終了された場合、RMU Recoverコマンドを再度発行するだけで済みます。Oracle RMUで、リストアされるデータベースにまだ適用されていない最初のトランザクションを検出するまで、.aijファイルがスキャンされます。Oracle RMUでその位置からリカバリ操作を開始します。


コマンド・パラメータ

aij-file-name-list

データベースに適用するアフター・イメージ・ジャーナル(.aij)ファイルのリスト。次のいずれかの方法でこのリストを指定できます。


コマンド修飾子

Active_IO=max-reads

RMU Recoverコマンドで同時に試行する、バックアップ・デバイスからの読取り操作の最大数を指定します。これは、進行中の読取り操作の最大数ではありません。この値は、アクティブなシステムI/O操作と相関関係にあります。

Active_IO修飾子の値は、1〜5です。デフォルト値は3です。3より大きい値によってパフォーマンスが向上するテープ・ドライブもあります。

Aij_Buffers=integer

リカバリ操作で使用するバッファの数を指定します。デフォルトは20バッファです。有効な値は、2〜1,048,576バッファです。データベース・ルート・ファイルが使用可能な場合、RMU Dump After_JournalコマンドにOption=Statistics修飾子を使用して、この修飾子の推奨値を確認できます。詳細は、第1.20節を参照してください。

Areas[=storage-area[,...]]

リカバリする領域を指定します。各記憶領域は、名前または領域のID番号で指定します。

リカバリする記憶領域に矛盾がある場合にのみ、Areas修飾子を指定します。Areas修飾子のデフォルトは、データベースの一貫性を保つためにリカバリする必要のあるすべての記憶領域です。

Areas修飾子が指定された場合、Until修飾子で指定された時間に関係なく、ロールフォワードされる記憶領域と他の記憶領域の現行との整合性がとれるまでリカバリされた後で、リカバリが停止します。

Areas修飾子が指定されていない場合、またはAreas=*修飾子が指定された場合、Oracle RMUでは、Until修飾子で指定された時間まで、または適用可能な.aijファイルの最終コミット済トランザクションの時間まで、データベースのすべての記憶領域がリカバリされます。値を指定せずにAreas修飾子を指定した場合、Oracle RMUでは、データベースのデータベース・ルート(.rdb)ファイルの現行と矛盾する記憶領域のみが整合性のとれる状態までリカバリされます。

Areas修飾子は次のように機能します。

Areas修飾子では、指定したすべての領域とその領域内のページをリカバリすることになるため、Areas修飾子をJust_Corrupt修飾子と組み合せて使用できません。(つまり、Just_Corrupt修飾子とAreas修飾子を組み合せた使用は冗長です。)

Areas修飾子には間接ファイル参照を使用できます。詳細は、第1.3節を参照してください。

Automatic

Noautomatic

Oracle RMUで.aijファイルの自動リカバリを行うかどうかを指定します。Noautomatic修飾子を指定した場合、Oracle RMUコマンドラインでリストした.aijファイルのみが適用されます。Automatic修飾子を指定した場合、現在データベースに関連付けられているすべての.aijファイルがOracle RMUでリカバリされます。

Automatic修飾子がデフォルトです。aijファイルがバックアップ済の場合以外、現在データベースに関連付けられているすべての.aijファイルがOracle RMUでリカバリされます。

自動リカバリがどのように機能するかの詳細は、「説明」を参照してください。

Confirm

Noconfirm

不正なAIJの順序を検出したときにRMU /RECOVERコマンドからオペレータに問い合せるかどうかを指定します。

/CONFIRM修飾子のデフォルトの設定は、バッチ・プロセスの場合は/NOCONFIRMで、それ以外は/CONFIRMです。

注意

データベースの破損が生じる可能性があるため、不正なジャーナル順序は、一般的には適用しないことをお薦めします。

/Order_Aij_Files修飾子を使用すると、指定したジャーナルが必ず正しい順序で適用されるようにすることに役立ちます。

Encrypt=({Value=|Name=}[,Algorithm=])

Encrypt修飾子は、暗号化されたアフター・イメージ・ジャーナルのバックアップ・ファイルからのリカバリに使用します。

キー値を文字列として、または事前に定義したキーの名前を指定します。アルゴリズム名を指定しない場合、デフォルトはDESCBCです。Value、NameおよびAlgorithmパラメータの詳細は、ENCRYPTのヘルプを参照してください。

この機能を使用するには、システムにOpenVMSの暗号化製品がインストールされ、ライセンスが付与されている必要があります。

この機能は、Format=New_Tape修飾子を使用して作成された新規形式のバックアップ・ファイルにのみ作用します。したがって、Encrypt修飾子を使用する場合、このコマンドにFormat=New_Tape修飾子を指定する必要があります。

Format=Old_Rms

Format=New_Tape

Format=Old_FileおよびFormat=New_Tape修飾子と同義です。これらの修飾子の説明を参照してください。

Format=Old_File

Format=New_Tape

バックアップまたは最適化された.aijファイルが古い形式(ディスクに最適)または新しい形式(テープに最適)のいずれで書き込まれているかを指定します。Format=Old_File修飾子がデフォルトです。RMU Backup After_JournalコマンドまたはRMU Optimize After_Journalコマンドで使用したのと同じFormat修飾子を指定する必要があります。.aijファイルがディスクに置かれている場合、Format=Old_File修飾子を使用する必要があります。

Format=Old_File修飾子を指定して.aijファイルを最適化またはテープにバックアップした場合、DCL MOUNTコマンドを使用してバックアップ・メディアをマウントしてから、RMU Recoverコマンドを発行する必要があります。RMU Recoverコマンドではテープの読取りにRMSが使用されるため、テープをOpenVMSボリュームとしてマウントする必要があります(つまり、MOUNTコマンドに/FOREIGN修飾子を指定しません)。

Format=New_Tape修飾子を指定する場合、DCL MOUNT /FOREIGNコマンドを使用してバックアップ・メディアをマウントしてから、RMU Recoverコマンドを発行する必要があります。

同様に、Format=New_Tape修飾子を使用して.aijバックアップを作成したにもかかわらず、OpenVMSアクセスを指定した(DCL MOUNTコマンドに/FOREIGN修飾子を指定しない)場合、RMU-F-MOUNTFORエラーが返されます。

次のテープ修飾子は、Format=New_Tape修飾子と組み合せて使用した場合にのみ意味があります。

Active_IO
Label
Rewind

Just_Corrupt

破損ページ表(CPT)内の矛盾したページ、および矛盾があるとしてマークされた領域のみをリカバリするよう指定します。ユーザーがデータベースにアタッチしている場合も、この修飾子を使用できます。

Just_Corrupt修飾子をUntil修飾子と組み合せて使用し、リカバリ期間を特定の時点までに限定できます。

Areas修飾子では、指定したすべての領域とその領域内のページをリカバリすることになるため、Areas修飾子をJust_Corrupt修飾子と組み合せて使用できません。(つまり、Just_Corrupt修飾子とAreas修飾子を組み合せた使用は冗長です。)

Just_Corrupt修飾子を指定しない場合、すべてのページがリカバリされます。

Just_Pages

Oracle Rdbリリース7.0以降、この修飾子のかわりにJust_Corrupt修飾子が導入されました。Just_Corrupt修飾子の説明を参照してください。 バックアップのボリュームに使用されている1〜6文字の文字列を指定します。

Label=(label-name-list)

バックアップ・ファイルのボリュームのラベルに使用されている1〜6文字の文字列を指定します。Label修飾子は、テープ・ボリュームにのみ使用できます。Label修飾子を使用する場合、1つ以上のラベル名を指定する必要があります。

複数のテープの場合、テープ・ラベルのリストを指定できます。複数のテープ・ラベル名をリストする場合、名前をカンマで区切り、名前のリストをカッコで囲みます。

通常のリカバリ操作では、RMU Recoverで指定するLabel修飾子は、.aijファイルのバックアップにRMU Backup After_Journalコマンドで指定したのと同じLabel修飾子です。

Label修飾子は、間接ファイル参照と組み合せて使用できます。詳細は、第1.3節を参照してください。

Librarian[=options]

Oracle Media Managementインタフェースをサポートするデータ・アーカイブ・ソフトウェア・アプリケーションからファイルをリストアするには、Librarian修飾子を使用します。コマンドラインで指定したファイル名によって、Librarianユーティリティから取得されるデータのストリームが識別されます。デバイスまたはバージョン番号の指定は無視されます。

Oracle RMUでは、Librarian修飾子を使用した取得は、Librarian修飾子を使用してOracle RMUで格納したデータに対してのみサポートされます。

Librarian修飾子には、次のオプションを使用できます。

Oracle RMUのバックアップまたはリストア操作を実行する前に、次のOpenVMS論理名を定義して、Librarianユーティリティで使用できるようにする必要があります。これらの論理名の定義には、Librarian修飾子のLogical_Namesオプションを使用しないでください。

ストレージ・メディアの処理はOracle RMUではなくLibrarianユーティリティで行われるため、Rewind、Density、Labelなどのデバイス固有の修飾子とLibrarian修飾子は組み合せて使用できません。

Log

Nolog

リカバリ・アクティビティをログ出力するかどうかを指定します。デフォルトでは、DCL VERIFYフラグの設定が使用されます。このフラグはDCL SET VERIFYコマンドによって制御されます。リカバリ・アクティビティがログ出力される場合、Log修飾子からの出力には、リカバリ操作時にコミット、ロールバックおよび無視されたトランザクションの数が含まれます。Trace修飾子をLog修飾子と組み合せて指定できます。

Media_Loader

Nomedia_Loader

.aijファイルを読み取るテープ・デバイスにローダーまたはスタッカがあることを指定するには、Media_Loader修飾子を使用します。テープ・デバイスにローダーまたはスタッカがないことを指定するには、Nomedia_Loader修飾子を使用します。

デフォルトでは、テープ・デバイスにローダーまたはスタッカがある場合、Oracle RMUでこれが認識されます。ただし、Oracle RMUでテープ・デバイスにローダーまたはスタッカがあることが認識されない場合があります。その結果、最初のテープの読取りが終了すると、Oracle RMUでローダーまたはスタッカに次のテープを要求するかわりに、オペレータに次のテープが要求されます。同様に、実際にはテープ・デバイスにローダーもスタッカもない場合に、ローダーまたはスタッカがあるようにOracle RMUが動作する場合もあります。

Oracle RMUでテープ・デバイスにローダーまたはスタッカがあることが認識されていない場合、Media_Loader修飾子を指定します。Oracle RMUで実際にはないローダーまたはスタッカを待っている場合、Nomedia_Loader修飾子を指定します。

Online

Noonline

リカバリ操作を、他のユーザーがデータベースにアタッチしているときに行うことを指定します。Online修飾子は、AreaまたはJust_Corrupt修飾子との組合せでのみ使用できます。リカバリされる領域またはページは排他アクセス用にロックされるため、この処理は、指定した領域またはページのデータの他の使用と共存できません。

デフォルトはNoonline修飾子です。

Order_Aij_Files

入力アフター・イメージ・ジャーナル・ファイルを順序番号の昇順で処理するよう指定します。.aijファイルが個々に開かれ、最初のブロックを読み取って順序番号が確認されます。順序番号のソート処理の前にファイルが閉じられます。Order_Aij_Filesは、.aijファイルの指定にワイルドカードを使用する場合は特に有用です。

Order_Aij_Files修飾子では、データベース・リカバリ・シーケンスの開始位置より前であることがわかっている.aijファイルは処理から除外されます。

.aijバックアップ・ファイルは、複数のジャーナル順序を持つことがあるため、すべての不必要なジャーナル・ファイルをRMUで常に除外できるわけではないことに注意してください。データベース・リカバリ再開情報に基づいて、RMUで不必要と判断できるジャーナルについては、処理の対象から外されます。

Output=file-name

ログおよびトレース出力(LogおよびTrace修飾子で選択)を指定したファイルにリダイレクトします。この修飾子が指定されない場合、LogおよびTrace修飾子で生成される出力(多量の場合もある)はターミナルに表示されます。

Prompt=Automatic

Prompt=Operator

Prompt=Client

サーバー・プロンプトの送信先を指定します。Prompt=Automaticを指定した場合、プロンプトは標準入力デバイスに送信されます。Prompt=Operatorを指定した場合、プロンプトはサーバー・コンソールに送信されます。Prompt=Clientを指定した場合、プロンプトはクライアント・システムに送信されます。

Resolve

トランザクションを完了させることにより、破損したデータベースをリカバリし、未解決のトランザクションを解決します。

Resolve修飾子で使用可能なオプションの詳細は、「RMU Recover Resolveコマンド」(第1.39節)を参照してください。

Rewind

Norewind

バックアップ・ファイルが含まれるテープを処理の開始前に巻き戻すよう指定します。バックアップ・ファイルの検索が、テープのBOT(テープの始端)から行われます。Norewind修飾子がデフォルトで、バックアップ・ファイルの検索が、テープの現在の位置から開始されます。

RewindおよびNorewindは、テープ・デバイスにのみ使用できます。この修飾子が使用され、ターゲット・デバイスがテープ・デバイスでない場合、Oracle RMUからエラー・メッセージが返されます。

Root=root-file-name

ジャーナルを適用するデータベースの名前を指定します。Root修飾子を使用して、.aijファイルでファイル指定されている元のデータベースのかわりに、データベースのコピーを指定できます。Root修飾子を使用して、リストアされたデータベース・ルート(.rdb)ファイルの新しい場所を指定できます。

次の手順のとおり、この修飾子を指定することによって、データベース・コピー(別のディスクにある場合もある)をロールフォワードできます。

  1. RMU Backupコマンドを使用して、データベースのバックアップ・コピーを作成します。


    $ RMU/BACKUP MF_PERSONNEL.RDB MF_PERS_FULL_BU.RBF
    


    このコマンドでは、データベースmf_personnelのバックアップ・ファイルをファイルmf_pers_full_bu.rbfに書き込みます。

  2. RMU RestoreコマンドにRootおよびDirectory修飾子を使用して、データベース・コピーのデータベース・ルートおよび記憶領域ファイルのファイル指定を示します。


    $ RMU/RESTORE/ROOT=DB3:[USER]MF_PERSONNEL/DIRECTORY=DB3:[USER] -
    _$ MF_PERS_FULL_BU
    


    このコマンドでは、ディスクDB3:のディレクトリ[USER]にデータベースをリストアします。デフォルトのファイル名およびファイル拡張子が使用されます。

  3. データベースでアフター・イメージ・ジャーナルを使用している場合、RMU Recoverコマンドを使用してコピーをロールフォワードできます。


    $ RMU/RECOVER DBJNL.AIJ/ROOT=DB3:[USER]MF_PERSONNEL.RDB
    


    このようにして、バックアップ操作以降に処理およびジャーナルされたトランザクションが、DB3:ディスクのコピーにリカバリされます。

この手順を正しく行うには、リストア操作とリカバリ操作の間に、リストアしたコピーに対する書込みトランザクションが発生していないことが必要です。

Root修飾子を指定しない場合、Oracle RMUで.aijファイルを調べ、ジャーナル・トランザクションを適用するデータベース・ルート(.rdb)ファイルの正確な名前を確認します。.aijファイルに格納されたこの名前は、アフター・イメージ・ジャーナルが有効であったときの.rdbファイルのフル・ファイル指定です。

シングルファイル・データベースのジャーナル・ファイルには、データベースのファイル名は含まれません。シングルファイル・データベースをリカバリするには、Root修飾子を使用して、リカバリするデータベースの場所を指定する必要があります。

Trace

Notrace

リカバリ・アクティビティをログ出力するかどうかを指定します。デフォルトでは、DCL VERIFYフラグの設定が使用されます。このフラグはDCL SET VERIFYコマンドによって制御されます。リカバリ・アクティビティがログ出力される場合、Trace修飾子からの出力では、TSNによって.aijファイルのトランザクションが識別され、リカバリでの各トランザクションに対するOracle RMUの処理が示されます。Log修飾子をTrace修飾子と組み合せて指定できます。

Until=date-time

Until修飾子を使用して、指定した時間以前の開始タイムスタンプを持つジャーナル・ファイルのトランザクションに、リカバリを限定します。たとえば、データベースに今日障害が起きたが、問題の発生は昨日の正午だと断定できるとします。昨日の正午の状態にデータベースをリストアすればよいと判断したとします。Until修飾子を使用して、昨日の正午より前のタイムスタンプのトランザクションのみをリカバリできます。

Until修飾子を指定しない場合、.aijファイル内のすべてのコミットされたトランザクションがデータベースに適用されます。Until修飾子を指定し、date-timeを指定しない場合、現在の時間がデフォルトです。

Until修飾子を領域ごとのリカバリ操作で指定した場合、トランザクション順序で指定した時間に達するか、指定した記憶領域と他の記憶領域との整合性がとれるかのいずれかの状態になった時点で、処理が終了します。


使用上の注意


例1

次の例では、RMU RecoverコマンドでPR$DISKのSMITHディレクトリにある.aijファイルpersonnel.aijからのリカバリを要求します。1996年5月7日午後1時30分までリカバリを続けるよう指定します。Trace修飾子が指定されているため、RMU Recoverコマンドでリカバリ操作の詳細をSYS$OUTPUTに表示します。


$ RMU/RECOVER/UNTIL="07-MAY-1996 13:30"/TRACE PR$DISK:[SMITH]PERSONNEL
%RMU-I-LOGRECDB, recovering database file DISK1:[DB.70]MF_PERSONNEL.RDB;1
%RMU-I-LOGRECSTAT, transaction with TSN 0:256 committed
%RMU-I-AIJONEDONE, AIJ file sequence 0 roll-forward operations completed
%RMU-I-AIJAUTOREC, starting automatic after-image journal recovery
%RMU-I-AIJONEDONE, AIJ file sequence 1 roll-forward operations completed
%RMU-W-NOTRANAPP, no transactions in this journal were applied
%RMU-I-AIJALLDONE, after-image journal roll-forward operations completed
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJFNLSEQ, to start another AIJ file recovery, the sequence number
 needed will be 1

例2

次の例では、.aijファイルを使用してデータベースをリカバリする方法を示します。


SQL> CREATE DATABASE FILENAME DISK1:[SAMPLE]TEST_DB
cont> RESERVE 5 JOURNALS;
SQL> --
SQL> -- Use the DISCONNECT ALL statement to detach from the database,
SQL> -- then issue the ALTER DATABASE statement that automatically
SQL> -- invokes the specified database.
SQL> --
SQL> DISCONNECT ALL;
SQL> --
SQL> -- Create after-image journaling. The .aij files are given the
SQL> -- names aij_one.aij and aij_two.aij (and are placed on a disk
SQL> -- other than the disk holding the .rdb and .snp files):
SQL> --
SQL> ALTER DATABASE FILENAME DISK1:[SAMPLE]TEST_DB
cont> JOURNAL IS ENABLED
cont>   ADD JOURNAL AIJ_ONE
cont>       FILENAME 'USER$DISK:[CORP]AIJ_ONE'
cont>       BACKUP FILENAME 'USER$DISK2:[CORP]AIJ_ONE'
cont>   ADD JOURNAL AIJ_TWO
cont>       FILENAME 'USER$DISK3:[CORP]AIJ_TWO'
cont>       BACKUP FILENAME 'USER$DISK4:[CORP]AIJ_TWO';
SQL> EXIT
$ !
$ ! Using the RMU Backup command, make a backup copy of the database.
$ ! This command ensures that you have a copy of the
$ ! database at a known time, in a known state.
$ !
$ RMU/BACKUP DISK1:[SAMPLE]TEST_DB USER2:[BACKUPS]TEST_BACKUP.RBF
$ !
$ ! Now you can use SQL with after-image journaling enabled.
$ !
$ SQL
SQL> --
SQL> -- Attach to the database and perform some data definition
SQL> -- and storage.
SQL> --
SQL> ATTACH 'FILENAME DISK1:[SAMPLE]TEST_DB';
SQL> CREATE TABLE TABLE1 (NEW_COLUMN CHAR(10));
SQL> INSERT INTO TABLE1 (NEW_COLUMN) VALUES ('data');
SQL> COMMIT;
SQL> EXIT
$ !
$ ! Imagine that a disk failure occurred here. In such a situation,
$ ! the current database is inaccessible. You need a prior copy
$ ! of the database to roll forward all the transactions in the
$ ! .aij file.
$ !
$ !
$ ! You know that the backup file of the database is
$ ! uncorrupted. Use the RMU Restore command to restore and recover
$ ! the database. You do not have to issue the RMU Recover command
$ ! because the RMU Restore command will automatically recover the
$ ! database.
$ !
$ RMU/RESTORE/NOCDD_INTEGRATE/DIR=DDV21:[TEST] -
_$ USER2:[BACKUPS]TEST_BACKUP.RBF
%RMU-I-AIJRSTAVL, 2 after-image journals available for use
%RMU-I-AIJRSTMOD, 1 after-image journal marked as "modified"
%RMU-I-AIJISON, after-image journaling has been enabled
%RMU-W-DOFULLBCK, full database backup should be done to ensure
 future recovery
%RMU-I-LOGRECDB, recovering database file DDV21:[TEST]TEST_DB.RDB;1
%RMU-I-AIJAUTOREC, starting automatic after-image journal recovery
%RMU-I-AIJONEDONE, AIJ file sequence 0 roll-forward operations completed
%RMU-I-AIJONEDONE, AIJ file sequence 1 roll-forward operations completed
%RMU-W-NOTRANAPP, no transactions in this journal were applied
%RMU-I-AIJALLDONE, after-image journal roll-forward operations completed
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJFNLSEQ, to start another AIJ file recovery, the sequence
 number needed will be 1

例3

次の例では、適用する.aijバックアップ・ファイルがある場合のリカバリ操作について示します。まず、RMU RestoreコマンドにNorecovery修飾子を使用してデータベースをリストアする必要があります。次に、バックアップされた.aijファイルをRMU Recoverコマンドを使用して適用します。リストア操作が開始されたときに現行であった.aijファイルを使用して、Oracle RMUでリカバリが完了されます。この例では、最初に示すバックアップ操作の前に3つの.aijファイルがmf_personnelデータベースに追加され、ジャーナルが有効であるとします。


$ ! Create a backup file of the complete and full database.
$ !
$ RMU/BACKUP MF_PERSONNEL DISK1:[BACKUPS]MF_PERSONNEL_BCK.RBF
$ !
$ ! Updates are made to the SALARY_HISTORY and DEPARTMENTS tables.
$ !
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> UPDATE SALARY_HISTORY
cont> SET SALARY_END='20-JUL-1993 00:00:00.00'
cont> WHERE SALARY_START='14-JAN-1983 00:00:00'
cont> AND EMPLOYEE_ID='00164';
SQL> INSERT INTO DEPARTMENTS
cont> (DEPARTMENT_CODE, DEPARTMENT_NAME,
cont>  MANAGER_ID,BUDGET_PROJECTED, BUDGET_ACTUAL)
cont> VALUES ('WLNS', 'WELLNESS CENTER', '00188',0,0);
SQL> COMMIT;
SQL> DISCONNECT DEFAULT;
SQL> EXIT
$ !
$ ! Create a backup file of the .aij files.
$ !
$ RMU/BACKUP/AFTER_JOURNAL MF_PERSONNEL DISK2:[BACKUP]MF_PERS_AIJBCK
$ !
$ ! An additional update is made to the DEPARTMENTS table.
$ !
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> INSERT INTO DEPARTMENTS
cont> (DEPARTMENT_CODE, DEPARTMENT_NAME, MANAGER_ID,BUDGET_PROJECTED,
cont> BUDGET_ACTUAL)
cont> VALUES ('facl', 'FACILITIES', '00190',0,0);
SQL> COMMIT;
SQL> DISCONNECT DEFAULT;
SQL> EXIT;
$
$ ! Assume the disk holding the SALARY_HISTORY and DEPARTMENTS
$ ! storage areas is lost. Restore only those areas.  Specify
$ ! the Norecovery qualifier since you will need to apply the
$ ! .aij backup file.
$
$ RMU/RESTORE/AREA DISK1:[BACKUPS]MF_PERSONNEL_BCK.RBF -
_$ SALARY_HISTORY, DEPARTMENTS/NORECOVER
$ !
$ ! Now recover the database.  Although you only specify the .aij
$ ! backup file,  Oracle RMU  will automatically continue the
$ ! recovery with the current journals in the recovery sequence after
$ ! the backed up .aij files have been applied.
$ !
$ RMU/RECOVER/LOG DISK2:[BACKUP]MF_PERS_AIJBCK
%RMU-I-AIJBADAREA, inconsistent storage area DISK3:[STO_AREA]
 DEPARTMENTS.RDA;1  needs AIJ sequence number 0
%RMU-I-AIJBADAREA, inconsistent storage area
 DISK3:[STO_AREA]SALARY_HISTORY.RDA;1 needs AIJ sequence number 0
%RMU-I-LOGRECDB, recovering database file
 DISK3:[DATABASE]MF_PERSONNEL.RDB;1
%RMU-I-LOGOPNAIJ, opened journal file
 DISK2:[BACKUP]MF_PERS_AIJBCK.AIJ;1
%RMU-I-AIJONEDONE, AIJ file sequence 0 roll-forward operations
 completed
%RMU-I-LOGRECOVR, 3 transactions committed
%RMU-I-LOGRECOVR, 0 transactions rolled back
%RMU-I-LOGRECOVR, 0 transactions ignored
%RMU-I-AIJNOACTIVE, there are no active transactions
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJNXTSEQ, to continue this AIJ file recovery, the sequence
 number needed will be 1
%RMU-I-AIJAUTOREC, starting automatic after-image journal recovery
%RMU-I-LOGOPNAIJ, opened journal file DISK4:[CORP]AIJ_TWO.AIJ;1
%RMU-I-AIJONEDONE, AIJ file sequence 1 roll-forward operations
 completed
%RMU-I-LOGRECOVR, 2 transactions committed
%RMU-I-LOGRECOVR, 0 transactions rolled back
%RMU-I-LOGRECOVR, 0 transactions ignored
%RMU-I-AIJNOACTIVE, there are no active transactions
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJNXTSEQ, to continue this AIJ file recovery, the sequence
 number needed will be 2
%RMU-I-AIJALLDONE, after-image journal roll-forward operations
 completed
%RMU-I-LOGSUMMARY, total 5 transactions committed
%RMU-I-LOGSUMMARY, total 0 transactions rolled back
%RMU-I-LOGSUMMARY, total 0 transactions ignored
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJGOODAREA, storage area DISK3:[STO_AREA]DEPARTMENTS.RDA;1
 is now consistent
%RMU-I-AIJGOODAREA, storage area DISK3:[STO_AREA]SALARY_HISTORY.RDA;1
 is now consistent
%RMU-I-AIJFNLSEQ, to start another AIJ file recovery, the sequence
 number needed will be 2
$ !
$ ! Database is restored and recovered and ready to use.
$ !

例4

次の例では、データベースのすべての既知の矛盾するページをリカバリする方法を示します。RMU Show Corrupt_Pagesコマンドによって、EMPIDS_LOW記憶領域の60ページに矛盾があり、EMPIDS_MID記憶領域の11ページと123ページに矛盾があることがわかっているとします。RMU Recoverコマンドを発行して、破損ページ表(CPT)に矛盾するとして記録されているすべてのページをオンラインでリカバリします。リカバリ操作後、CPTが空になります。


$ RMU/RECOVER/JUST_CORRUPT/ONLINE/LOG MF_PERSONNEL.AIJ
%RMU-I-AIJBADPAGE, inconsistent page 11 from storage area
 DISK1:[TEST5]EMPIDS_OVER.RDA;1 needs AIJ sequence number 0
%RMU-I-AIJBADPAGE, inconsistent page 60 from storage area
 DISK1:[TEST5]EMPIDS_LOW.RDA;1 needs AIJ sequence number 0
%RMU-I-AIJBADPAGE, inconsistent page 123 from storage area
 DISK1:[TEST5]EMPIDS_OVER.RDA;1 needs AIJ sequence number 0
%RMU-I-LOGRECDB, recovering database file
 DISK2:[TEST5]MF_PERSONNEL.RDB;1
%RMU-I-LOGOPNAIJ, opened journal file DISK3:[TEST5]MF_PERSONNEL.AIJ;1
%RMU-I-AIJONEDONE, AIJ file sequence 0 roll-forward operations
 completed
%RMU-I-LOGRECOVR, 1 transaction committed
%RMU-I-LOGRECOVR, 0 transactions rolled back
%RMU-I-LOGRECOVR, 0 transactions ignored
%RMU-I-AIJNOACTIVE, there are no active transactions
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJALLDONE, after-image journal roll-forward operations
 completed
%RMU-I-LOGSUMMARY, total 1 transaction committed
%RMU-I-LOGSUMMARY, total 0 transactions rolled back
%RMU-I-LOGSUMMARY, total 0 transactions ignored
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJGOODPAGE, page 11 from storage area
 DISK1:[TEST5]EMPIDS_OVER.RDA;1 is now consistent
%RMU-I-AIJGOODPAGE, page 60 from storage area
 DISK1:[TEST5]EMPIDS_LOW.RDA;1 is now consistent
%RMU-I-AIJGOODPAGE, page 123 from storage area
 DISK1:[TEST5]EMPIDS_OVER.RDA;1 is now consistent
%RMU-I-AIJFNLSEQ, to start another AIJ file recovery, the sequence
 number needed will be 0

例5

次の例では、バックアップされたAIJファイルが、順序番号1、3、2、4を表すB1、B3、B2、B4の順に指定されていることに注意してください。/ORDER_AIJ_FILESによって、適用されるジャーナルが順序番号の昇順にソートされます。RMU/RESTOREの出力に示すとおり、データベース・リカバリはAIJファイル順序2から開始されるため、B1が処理から除外されます。


$ RMU/RESTORE/NEW/NOCDD/NOAFTER FOO
%RMU-I-RESTXT_00, Restored root file DUA0:[DB]FOO.RDB;16
    .
    .
    .
%RMU-I-AIJRECFUL, Recovery of the entire database starts with
AIJ file sequence 2
%RMU-I-COMPLETED, RESTORE operation completed at 24-MAY-2007 12:23:32.99
$!
$ RMU/RECOVER/LOG/ORDER_AIJ_FILES B1,B3,B2,B4
    .
    .
    .
%RMU-I-LOGOPNAIJ, opened journal file DUA0:[DB]B2.AIJ;24
%RMU-I-LOGRECSTAT, transaction with TSN 0:256 ignored
%RMU-I-LOGRECSTAT, transaction with TSN 0:257 ignored
%RMU-I-RESTART, restarted recovery after ignoring 2 committed transactions
%RMU-I-AIJONEDONE, AIJ file sequence 2 roll-forward operations completed
%RMU-I-LOGRECOVR, 0 transactions committed
%RMU-I-LOGRECOVR, 0 transactions rolled back
%RMU-I-LOGRECOVR, 2 transactions ignored
%RMU-I-AIJNOACTIVE, there are no active transactions
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJNXTSEQ, to continue this AIJ file recovery, the
sequence number needed will be 3
    .
    .
    .