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)ファイルのリスト。次のいずれかの方法でこのリストを指定できます。
- コマンドラインに.aijファイルを作成順にリストします。つまり、最も古い.aijファイルがリストの最初になります。
- アスタリスク(*)またはパーセント記号(%)を使用して.aijファイルを表します。.aijファイルは、OpenVMSで示される順に処理されます。
- すべての.aijファイルを1つのファイルに追加し、1つの.aijファイル名を指定します。ファイルを追加する際、必ず作成順に追加する必要があります。
- 間接コマンド・ファイルを使用します。コマンド・ファイルの各行に.aijファイル名を含めます。リカバリに必要な.aijファイルの数が多い場合、コマンドラインに各ファイル名をリストすると、コマンドラインの最大長を超える場合があります。間接コマンド・ファイルを使用して、この問題を回避できます。間接コマンド・ファイルの詳細は、第1.3節を参照してください。
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修飾子を指定した場合、Oracle RMUで整合性のとれない領域が自動的に判断され、その領域がリカバリされます。整合性のとれない領域のトランザクション順序番号(TSN)がデータベース・ルート・ファイルよりも大きいためにリカバリできない場合、Areas修飾子が指定されていてもデータベース全体がリカバリされます。TSNの詳細は、『Oracle Rdb Guide to Database Maintenance』を参照してください。
- Areas修飾子が省略された場合、またはAreas修飾子にAreas=*が指定された場合、データベース全体(すべての記憶領域)がリカバリされます。
- Areas修飾子にAreas=(A1,A2,A3)と指定された場合、領域A1、A2およびA3のみが、整合性がとれるまでリカバリされます。これらの領域の1つですでに整合性がとれる場合、または領域のTSNがデータベース・ルート・ファイルより大きい場合、データベース全体がリカバリされます。
- Online修飾子と組み合せてAreas修飾子が指定(前述の3つの項目のように)され、結果としてデータベース全体がリカバリされる場合、エラー・メッセージが返されます。これは、Online修飾子ではデータベース全体ではなく、個々の領域のみをリカバリできるためです。
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
RewindJust_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修飾子には、次のオプションを使用できます。
- Trace_file=file-specification
Librarianユーティリティによってトレース・データが指定したファイルに書き込まれます。- Level_Trace=n
このオプションをデバッグ・ツールとして使用し、Librarianユーティリティによって書き込まれるトレース・データのレベルを指定します。事前に決められた値(0、1または2)またはLibrarianユーティリティで定義されている、より大きな値を使用できます。事前に決められている値は次のとおりです。
- レベル0では、すべてのエラー状態がトレースされます。これがデフォルトです。
- レベル1では、各Librarianファンクションの開始と終了がトレースされます。
- レベル2では、各Librarianファンクションの開始と終了、すべてのファンクション・パラメータの値、および各読取り/書込みバッファの最初の32バイト(16進)がトレースされます。
- Logical_Names=(logical_name=equivalence-value,...)
このオプションを使用してプロセス論理名のリストを指定できます。Librarianユーティリティは、これらの論理名を使用して、Oracle Rdbバックアップ・ファイルが格納されるカタログまたはアーカイブや、Librarianデバッグ論理名などを指定できます。論理名の定義の詳細は、Librarianのドキュメントを参照してください。プロセス論理名のリストは、LibrarianアプリケーションにアクセスするOracle RMUコマンドの開始前に、Oracle RMUによって定義されます。
Oracle RMUのバックアップまたはリストア操作を実行する前に、次のOpenVMS論理名を定義して、Librarianユーティリティで使用できるようにする必要があります。これらの論理名の定義には、Librarian修飾子のLogical_Namesオプションを使用しないでください。
- RMU$LIBRARIAN_PATH
Oracle RMUのバックアップおよびリストア操作で、共有可能なLibrarianイメージをロードおよびコールできるようにするには、この論理名を定義する必要があります。等価名にはファイル・タイプ(.exeなど)が含まれる必要があります。バージョン番号は含めません。共有可能なLibrarianイメージは、インストール済(認識済)のイメージである必要があります。このイメージの名前と場所、およびインストール方法の詳細は、Librarianユーティリティのドキュメントを参照してください。- RMU$DEBUG_SBT
この論理名は必須ではありません。これが定義されている場合、Oracle RMUでLibrarian共有可能イメージをコールするモジュールからのデバッグ・トレース情報メッセージが表示されます。
ストレージ・メディアの処理は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)ファイルの新しい場所を指定できます。次の手順のとおり、この修飾子を指定することによって、データベース・コピー(別のディスクにある場合もある)をロールフォワードできます。
- RMU Backupコマンドを使用して、データベースのバックアップ・コピーを作成します。
$ RMU/BACKUP MF_PERSONNEL.RDB MF_PERS_FULL_BU.RBF
このコマンドでは、データベースmf_personnelのバックアップ・ファイルをファイルmf_pers_full_bu.rbfに書き込みます。- RMU RestoreコマンドにRootおよびDirectory修飾子を使用して、データベース・コピーのデータベース・ルートおよび記憶領域ファイルのファイル指定を示します。
$ RMU/RESTORE/ROOT=DB3:[USER]MF_PERSONNEL/DIRECTORY=DB3:[USER] - _$ MF_PERS_FULL_BU
このコマンドでは、ディスクDB3:のディレクトリ[USER]にデータベースをリストアします。デフォルトのファイル名およびファイル拡張子が使用されます。- データベースでアフター・イメージ・ジャーナルを使用している場合、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修飾子を領域ごとのリカバリ操作で指定した場合、トランザクション順序で指定した時間に達するか、指定した記憶領域と他の記憶領域との整合性がとれるかのいずれかの状態になった時点で、処理が終了します。
- データベースに対してRMU Recoverコマンドを使用するには、データベースのルート・ファイル・アクセス制御リスト(ACL)にRMU$RESTORE権限を持っているか、OpenVMSのSYSPRVまたはBYPASS権限を持っている必要があります。
- RMU Backup After_Journalコマンドを使用して拡張可能な.aijファイルをテープにコピーし、データベースをシャットダウンすることなく、元の.aijファイルを切り捨てることができます。
- トランザクションは、コミット順序番号と.aijファイルのコミット・レコードで示される順にデータベースのリストアしたコピーに適用されます。タイムスタンプはこの用途には使用されません。したがって、システムに行った時間変更(アメリカのサマー・タイムによる時間の再設定など)やクラスタ内のノード間のシステム時間の矛盾について心配する必要はありません。.aijファイルの適用でタイムスタンプが関係するのは、Until修飾子を指定した場合のみです。この場合、リカバリを停止するポイントとしてのみタイムスタンプが使用されます。トランザクションを適用する順に並べる方法としては使用されません。詳細は、Until修飾子の説明を参照してください。
- LNM$FILE_DEV表のRDM$BIND_AIJ_WORK_FILE論理名およびLNM$SYSTEM_TABLEのRDM$BIND_DBR_WORK_FILE論理名に別のディレクトリを割り当てることにより、AIJロールフォワード一時ワーク・ファイルおよびデータベース・リカバリ(DBR)REDO一時ワーク・ファイルを、デフォルト(SYS$DISK)とは異なるディスクおよびディレクトリにリダイレクトできます。
これは、デフォルトの場所で起こる可能性のあるI/Oボトルネックの軽減に役立ちます。- 通常のリカバリ操作では、RMU Recoverコマンドで指定するFormatおよびLabel修飾子は、.aijファイルのバックアップにRMU Backup After_Journalコマンドで指定した、または.aijファイルの最適化にRMU Optimize After_Journalコマンドで指定したFormatおよびLabel修飾子と同じです。
テープのマウント時に指定するアクセスのタイプの詳細は、「コマンド修飾子」のFormat=Old_FileおよびFormat=New_Tape修飾子の説明を参照してください。- 最適化された.aijファイルをリカバリ操作に使用する場合、次の制限があります。
- 最適化された.aijファイルは、領域ごとのリカバリ操作(RMU RecoverコマンドにArea修飾子を使用したリカバリ操作)の一部として使用できません。
- 最適化された.aijファイルは、ページごとのリカバリ操作(RMU RecoverコマンドにJust_Corrupt修飾子を使用したリカバリ操作)の一部として使用できません。
- 最適化された.aijファイルは、Until修飾子を含むRMU Recoverコマンドに指定できません。最適化された.aijファイルには、このような処理に対する元の.aijファイルからの情報が十分に含まれていません。
- 最適化された.aijファイルは、.aijファイルの最適化以降にデータベースが変更されている場合、リカバリ操作に使用できません。
これらのリカバリ操作での最適化された.aijファイルの使用に対する制限を回避する方法として、これらのリカバリ操作では、元の最適化されていない.aijファイルをかわりに使用します。- リカバリ操作とリカバリ操作の間にデータベース読み取ることはできますが、リカバリ操作を以降も行う場合、更新は行えません。
- システム障害によってリカバリ操作が強制終了された場合、RMU Recoverコマンドを再度発行するだけで済みます。Oracle RMUで、リストアされるデータベースにまだ適用されていない最初のトランザクションを検出するまで、.aijファイルがスキャンされます。Oracle RMUでその位置からリカバリ操作を開始します。
- RMU Recoverコマンドを使用して、リストアしたデータベースのコピーに.aijファイルの内容を適用できます。Oracle RMUで、リストアしたデータベースのコピーに.aijファイルのトランザクションをロールフォワードします。この機能を使用して、障害後の高速リカバリ用に、データベースのコピーを最新に保つことができます。これを行うには、RMU Recoverコマンドを使用して、データベースの別個のコピーに定期的に.aijファイルを適用します。
高速リカバリ用にこの処理を行う場合、データベース・コピーに更新トランザクションが行われていない確証が持てる必要があります。更新トランザクションが行われていた場合、.aijファイルを正しく適用できない可能性があります。- テープのラベル・チェックに、Oracle RMUで行われる処理の詳細は、『Oracle Rdb Guide to Database Maintenance』を参照してください。
- 最適化されたアフター・イメージ・ジャーナルをリカバリに使用する場合、Aij_Buffers修飾子に指定するバッファの最適な数は、リカバリされるアクティブな記憶域の数によって異なります。Recover_Method=Sequentialで最適化されたジャーナルの場合、通常、250〜500バッファ・カウントで十分です。
Recover_Method=Scatterで最適化されたジャーナルを使用する場合、リカバリされるアクティブな記憶領域の数の約5倍のバッファ・カウント(最小で約250〜500バッファ)で、通常、十分なパフォーマンスが得られます。- 非同期プリフェッチ(APF)バッファの数も、リカバリ時のパフォーマンスの要因です。最適化されたアフター・イメージ・ジャーナルのリカバリ操作の場合、プロセス割当て制限のASTLMとBYTLMの値、および指定したAIJ_Buffersの値に基づいて、RMU RecoverコマンドでAPFバッファの数(APFの深さとも呼ばれる)が設定されます。APFの深さは最大で次のように設定されます。
- ASTLMプロセス割当て制限の50%
- DIOLMプロセス割当て制限の50%
- 指定したAIJ_Buffersの値の25%
各種割当て制限が高レベルのI/Oパフォーマンスを実現できるよう設定されているか、RMU Recover処理を行うアカウントおよびプロセスを確認する必要があります。次の表に、リカバリ・パフォーマンス向けに推奨される割当て制限の値をリストします。
割当て制限 設定 DIOLM AIJ_Buffers修飾子で指定されるデータベース・バッファ・カウントの半分以上。最小値は250。 BIOLM DIOLMの設定以上。 ASTLM DIOLMの設定 + 50以上。 BYTLM データベース・バッファ・サイズの512倍にAIJ_Buffers修飾子で指定された値の半分を掛けた値以上。バッファ・サイズが12ブロックで100個の非同期I/Oリクエスト(読取りまたは書込み)が未処理とすると、バッファ・カウントが200の場合、推奨される最小値は614,400。 WSQUOTA
WSEXTENTページ・フォルトが過度に起きない程度に十分な値。 FILLM データベース記憶領域とスナップショット記憶領域の数 + 50。
例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 . . .