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

戻る
戻る
 
次へ
次へ
 

1.43 RMU Restore Only_Rootコマンド


形式




説明

RMU Restore Only_Rootコマンドでは、RMU Backupコマンドによって事前に作成されたバックアップ・ファイルからデータベース・ルート(.rdb)ファイルのみを、バックアップ操作が実行されたときの.rdbファイルの状態に再構築します。.rdbファイルを更新するには、コマンド修飾子を使用します。領域の修飾子を使用すると、記憶領域そのものではなく.rdbファイルのみが変更されます。領域の修飾子を使用して、データベースに対して実行された最後のバックアップ操作以降に更新された記憶領域情報を含むように、リストア対象バックアップ・ルート・ファイルを修正します。これが役立つのは、使用可能なデータベースを得るために、データベースの古いバックアップ・ファイルのルートと、データベースの新しいバックアップ・ファイルの領域情報を一致させる必要があるときです。

.rdbファイルのみがリストアされる場合は、データベースのトランザクション状態をInitialize_Tsns修飾子またはSet_Tsn修飾子で正しく設定してください。 データベースのトランザクション順序番号(TSN)とコミット順序番号(CSN)が、失われた.rdbファイルに含まれていた値と同じに設定されない場合、アフター・イメージ・ジャーナルが有効になっていると、ジャーナル処理において非一貫性が生じます。このため、ルート単独リストア操作でInitialize_Tsns修飾子またはSet_Tsn修飾子を使用する前に作成されたジャーナル・ファイルを使用してデータベースをリカバリできません。

TSNは、失われた.rdbファイルに含まれていた値以上に設定する必要があります。失われたデータベース・ルート・ファイルの値未満にTSNを設定すると、データベースは破損します。正しくないデータを返したり、アプリケーション障害が発生したりすることがあります。選択した値が、次のCSN値と次のTSN値よりも小さい場合は、次のような致命的エラー・メッセージを受け取ります。


%RMU-F-VALLSSMIN, value (0:40) is less than minimum allowed
 value (0:74) for Set_Tsn=tsn

set TSN操作とreinitialize TSN操作が終了してから、.rdbファイルを確認し、アフター・イメージ・ジャーナルを有効化して、新しい.aijファイルを作成すると、すべての.aijレコードは.rdbファイルのTSNとCSNの新しい開始番号に基づきます。

バックアップ戦略によって最新の完全な全体データベース・バックアップ・ファイルを確実に維持することをお薦めしますが、最新の全体領域別バックアップ・ファイルのみからデータベースをリストアすることも可能です。これは、ルートをリストアして、Noupdate_FilesおよびNoset_Tsn修飾子を指定することで実現できます。Noset_Tsn修飾子を指定すると、リストア対象データベースのTSNおよびCSNの値はバックアップ・ファイルに記録されている値と同じになります。Noupdate_Files修飾子を指定すると、データベース・ルートはリストアされますが、RMU Restore Only_Rootは、リストアしたルートを領域ファイルにリンクしません。スナップショット(.snp)ファイルの作成または更新も行いません。Noupdate_FilesおよびNoset_Tsn修飾子をRMU Restore Only_Rootコマンドに指定することにより、次の戦略を使用してデータベースをリストアできます。

  1. 最新の全体領域別バックアップ・ファイルからルートをリストアします。

  2. 領域別バックアップ・ファイルを作成日付と逆の順序で適用して記憶領域をリストアします。
    最新の領域別バックアップ・ファイルを最初に、一番古い領域別バックアップ・ファイルを最後に適用します。(どの領域も複数回リストアしないようにしてください。)

  3. アフター・イメージ・ジャーナル(.aij)ファイルを適用してデータベースをリカバリします。
    RMU Recoverコマンドを使用して手動で.aijファイルをリカバリできます。または、.aijファイルの状態が許す場合は、最後に発行したRMU RestoreコマンドでNorecovery修飾子を指定しないことで、RMU Restore Only_Rootで自動的に.aijファイルのリカバリを行うこともできます。RMU Restoreコマンドの自動リカバリ機能の詳細は、第1.42節を参照してください。(自動リカバリ機能は、RMU Restore Only_Rootコマンドでは使用できません。)

この戦略を使用するときは、RMU Restore Only_Rootコマンドの後の最初のRMU Restoreコマンドに、最新のRDB$SYSTEM記憶領域を含めるようにしてください。RDB$SYSTEM記憶領域には、その他のデータベース記憶領域を格納するために必要な構造が含まれます。この理由から、領域別バックアップ操作を実行するときは常にRDB$SYSTEM記憶領域をバックアップすることをお薦めします。

この方法の実例は「例」の項の「例6」を参照してください。

データベース・バックアップ・ファイルが最新であること、データベースとバックアップ・ファイルの違いが明らかであること、バックアップ・ファイルが作成されてから記憶領域の数が変更されていないことが必要です。記憶領域を移動した場合は、File修飾子を使用して新しい場所を確認し、Snapshot修飾子を使用して領域の.snpファイルの現在のバージョンを指定します。

注意

RMU Restore Only_Rootコマンドが終了したら、データベースで完全な全体バックアップ操作を実行する必要があります。RMU Restore Only_RootコマンドでAfter_JournalまたはAij_Options修飾子を使用して、新しいアフター・イメージ・ジャーナル構成を定義することをお薦めします。こうしておくと、別のデータベース・リストア操作が必要になったときに新しい.aijファイルをロール・フォワードできます。


コマンドのパラメータ

backup-file-spec

前のRMU Backupコマンドによって生成されたバックアップ・ファイルのファイル指定。デフォルトのファイル拡張子は.rbfです。

テープにバックアップされてからディスクにコピーされた.rbfファイルについてはリモート・リストア操作を実行できないことに注意してください。.rbfファイルをテープからディスクにコピーするときは、リストア先のシステムにコピーしてください。

リストア操作の実行元が、磁気テープ、ディスクまたは複数ディスクのいずれかに応じて、バックアップ・ファイル指定を次のようにします。

storage-area-list

このオプションは、データベースの記憶領域名のリストです。次の状況で使用します。

storage-area-listオプションを使用するには、記憶領域のシステム・ファイル名ではなく記憶領域名を指定します。データベース・ルートのみをリストアすることで、通常はすべての記憶領域をリストアするためにかかる余分な時間を節約できます。リストでは記憶領域名をカンマで区切ります。

ファイルが最後にバックアップされてから記憶領域のパラメータが変わった場合、storage-area-listオプションによって、現在の記憶領域パラメータに合うように.rdbファイルのパラメータが場所とファイルバージョンに関して更新されます。


コマンドの修飾子

Active_IO=max-reads

RMU Restore Only_Rootコマンドが同時に試行するバックアップ・ファイルの読取り操作の最大数を指定します。Active_IO修飾子の値は1〜5の範囲で指定できます。デフォルト値は3です。

After_Journal=file-spec

Noafter_Journal

注意

この修飾子は、リリース6.0よりも前のOracle Rdbとの互換性のために維持されています。拡張可能な.aijファイルの作成に関心がある場合を除き、Aij_Options修飾子を指定するほうが役に立つ可能性があります。

次のルールに従って、アフター・イメージ・ジャーナルや.aijファイルの作成をRMU Restore Only_Rootでどのように処理するかを指定します。

After_Journal修飾子を使用して、固定サイズの.aijファイルを作成することはできません。Aij_Options修飾子を使用してください。

Aij_Options=journal-opts

Noaij_Options

次のルールに従って、アフター・イメージ・ジャーナルや.aijファイルの作成をRMU Restore Only_Rootでどのように処理するかを指定します。

journal-opts-fileの形式の詳細は、第1.62.1項を参照してください。

Directory=directory-spec

データベース・ルートのデフォルト・ディレクトリと、ルートがデータベース記憶領域とスナップショット・ファイルを探すときのデフォルト・ディレクトリを指定します。

この修飾子とRoot、FileおよびSnapshot修飾子の関係や、リソース識別子によって所有されるディレクトリへのデータベース・ファイルのリストアに関する警告の詳細は、「使用上の注意」を参照してください。

Initialize_Tsns

Noinitialize_Tsns

値を0に設定して、データベース全体のすべてのトランザクション順序番号(TSN)の値を初期化します。トランザクションがデータベースに対して開始されるたびに、TSNが発行されます。番号は、データベースの存続期間を通じて順に増分します。

TSN値およびCSN値は、それぞれ次の10進数形式のquadwordに含まれます。


high longword : low longword

high longwordはユーザーの最大値32768(215)を保持でき、low longwordは最大ユーザー値4,294,967,295(232)を保持できます。high longwordの一部はOracle Rdbによってオーバーヘッドに使用されます。

TSNまたはCSNを指定するとき、TSNまたはCSNがlow longwordにおさまる場合は、high longwordとコロンを省略できます。たとえば、0:444と444はいずれも入力値として有効です。

次のTSN値が、許可されている最大値に近づいたら、TSNを初期化する必要があります。HeaderおよびOption=Debug修飾子を付けたRMU Dumpコマンドを使用してデータベース・ルート・ファイルをダンプ出力すると、次のTSN値と次のCSN(コミット順序番号)値を判別できます。

データベースのすべてのTSN値を0に設定するときに、データベースのすべてのページへの書込みが必要なため、Initialize_Tsns修飾子の実行にはかなり時間がかかります。Initialize_Tsns修飾子を使用してデータベースのTSNがリセットされたら、After_Journal修飾子またはAij_Options修飾子を使用して、すぐに全体データベース・バックアップ操作を実行し、新しい.aijファイルを作成する必要があります。これによって、ジャーナル処理が確実に継続され、データベースのリカバリが可能になります。

デフォルトのNoinitialize_Tsns修飾子では、データベースのTSNは初期化されません。

Initialize_TsnsとSet_Tsn修飾子またはNoset_Tsn修飾子を同じコマンドで使用できないことに注意してください。この制約が必要になるのは、Initialize_TsnsはRMU Restore Only_RootにTSN値の0へのリセットを指示するが、Set_TsnはRMU Restore Only_RootにTSNの指定値へのリセットを指示し、Noset_TsnはTSN値を変更しないためです。

注意

Replication Option for Rdb送信がデータベースで定義されている場合は、Initialize_Tsns修飾子を決して使用しないでください。Initialize_Tsns修飾子では、Replication Option for Rdb送信はリセットされません。

Label=(label-name-list)

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

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

通常のリストア操作では、RMU Restore Only_Rootコマンドに指定するLabel修飾子は、データベースのバックアップに使用したRMU Backupコマンドで指定したLabel修飾子と同じにする必要があります。

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

Librarian[=options]

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

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

Librarian修飾子には次のオプションを指定できます。

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

Rewind、Density、Labelなどデバイス固有の修飾子はLibrarian修飾子と一緒に使用できません。LibrarianユーティリティではOracle RMUではなくストレージ・メディアが処理されるためです。

Log

Nolog

コマンドの処理をSYS$OUTPUTに報告するかどうかを指定します。Log修飾子を指定すると、リストア操作の進捗をSYS$OUTPUTに出力するようにリクエストします。Nolog修飾子を指定するとこの報告は行われません。どちらも指定しない場合は、DCL確認スイッチの現在の設定がデフォルトになります。(DCL SET VERIFYコマンドによってDCL確認スイッチが制御されます。)

Media_Loader

Nomedia_Loader

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

デフォルトでは、テープ・デバイスにローダーまたはスタッカがある場合は、RMU Restore Only_Rootによって認識されるはずです。ただし、テープ・デバイスにローダーまたはスタッカが付いていることがRMU Restore Only_Rootで認識されないこともあります。このため、RMU Restore Only_Rootは、最初のテープを読み取ると、ローダーまたはスタッカに次のテープをリクエストするかわりに、次のテープのリクエストをオペレータに発行します。同様に、テープ・デバイスにローダーまたはスタッカがない場合でも、あるかのようにRMU Restore Only_Rootが動作することがあります。

テープ・デバイスにローダーまたはスタッカがあることがRMU Restore Only_Rootによって認識されていないとわかった場合は、Media_Loader修飾子を指定します。該当しない場合にRMU Restore Only_Rootがローダーまたはスタッカを想定していることがわかったときは、Nomedia_Loader修飾子を指定します。

New_Snapshots

Nonew_Snapshots

Restore Only_Root操作において新しいスナップショット(.snp)ファイルを作成するかどうかを指定できます。

デフォルトのNonew_Snapshots修飾子では、コマンドによって既存の.snpファイルが初期化されます。

New_Snapshots修飾子を指定すると、コマンドによって新しい.snpファイルが作成され初期化されます。New_Snapshots修飾子を指定するときは、リストア操作の前に既存の.snpファイルを削除するか、後から.snpファイルをパージする必要があります。

Nodes_Max=number-cluster-nodes

ユーザーがリストア対象データベースにアクセスする際のVMSclusterノード数の新しい上限を指定します。Nodes_Max修飾子にはVMSclusterノード数として1〜96の値を指定できます。実際の最大値は、現在のバージョンのOpenVMSで許可されるVMSclusterノードの最大数です。デフォルト値は、データベースのバックアップ前にデータベースについて定義された制限です。

Options=file-spec

記憶領域名が含まれるオプション・ファイルを指定します。記憶領域名の後には、その記憶領域に適用する記憶領域の修飾子が指定されています。

この修飾子で使用するオプション・ファイルを作成するようにRMU Restore Only_Rootに指示するには、RMU Backup、RMU DumpおよびRMU Dump BackupコマンドでRestore_Options修飾子を指定します。詳細は、第1.10節第1.19節および第1.21節を参照してください。

独自にオプション・ファイルを作成する場合、記憶領域名をカンマで区切らないでください。かわりに、記憶領域名は1つずつ改行してファイルの別の行に指定します。オプション・ファイルに指定できる記憶領域の修飾子は、Blocks_Per_Page、File、SnapshotおよびThresholdsです。オプション・ファイルではDCLの行継続文字であるハイフン(-)またはコメント文字(!)を使用できます。デフォルトのファイル拡張子は.optです。「例」の項の「例5」を参照してください。

Rewind

Norewind

バックアップ・ファイルを含むテープを巻き戻してから処理を開始するかどうかを指定します。Norewind修飾子(デフォルト)では、現在のテープ位置からバックアップ・ファイルの検索を開始します。

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

Root=root-file-spec

データベース・ルート(.rdb)を指定の場所にリストアするようにリクエストします。

この修飾子とDirectory、FileおよびSnapshot修飾子の関係や、リソース識別子によって所有されるディレクトリへのデータベース・ファイルのリストアに関する警告の詳細は、「使用上の注意」を参照してください。

Root修飾子の意味があるのは、複数ファイル・データベースに対して使用する場合のみです。

Set_Tsn=(Tsn=n, Csn=m)

Noset_Tsn

Set_Tsn修飾子を使用して、データベース・トランザクション順序番号(TSN)とコミット順序番号(CSN)を指定の値に設定します。正しい値は、オリジナルの.rdbファイル(アクセスできる場合)または最後の.aijファイル(使用可能な場合)から抽出できます。抽出できない場合は、データベースが作成されてから、またはTSNが最後に初期化されてから、データベースに適用されたトランザクションの最大数よりも大きいTSN値を使用できます。

TSN値とCSN値を同じ値にする必要はありません。ただし、トランザクションに割り当てられた最後の値よりも大きい値を、新しい値に選択する必要があります。Set_Tsn値は8の倍数になるように指定します。8の倍数でない値を指定すると、RMU Restore Only_Rootが、その値を上回る8の倍数を割り当てます。(たとえば、Set_Tsn=(Tsn=90, Csn=90)と指定すると、RMU Restore Only_Rootが、次のTSNに値96を割り当てます。)

TSNを初期化しない場合、Set_Tsn修飾子のデフォルト値は、バックアップ・ファイルに格納されているTSNおよびCSN値に1,000,000を加えた値です。ほとんどのデータベース・アプリケーションでは、新しいTSNおよびCSN値は、データベースが最後にバックアップされてからコミットされたトランザクション数よりも大きくする必要があります。必要であれば、バックアップ・ファイルの値にこのデフォルト増分値を加えたよりも大きい値にTSNおよびCSN値を設定します。次のTSN値および次のCSN値を判別するには、Option=Debug修飾子を使用して.rdbファイルをダンプ出力します。

TSN値およびCSN値は、それぞれ次の10進数形式のquadwordに含まれます。


high longword : low longword

high longwordはユーザーの最大値32768(215)を保持でき、low longwordは最大ユーザー値4,294,967,295(232)を保持できます。high longwordの一部はOracle Rdbによってオーバーヘッドに使用されます。

TSNまたはCSNを指定するとき、TSNまたはCSNがlow longwordにおさまる場合は、high longwordとコロンを省略できます。たとえば、0:444と444はいずれもTSNの入力値として有効です。

Noset_Tsn修飾子は、バックアップ・ファイルに記録されているのと同じTSN状態でルートをリストアすることを指定します。

Noset_Tsn修飾子をNoupdate_Files修飾子と一緒に使用するときは、データベース全体に対する最新の完全な全体バックアップ・ファイルのかわりに最新の領域別全体バックアップ・ファイルを使用するバックアップ戦略を使用できます。「例」の項の「例6」を参照してください。

Initialize_TsnsとSet_Tsn修飾子またはNoset_Tsn修飾子を同じコマンドで使用できないことに注意してください。この制約が必要になるのは、Initialize_TsnsはRMU Restore Only_RootにTSN値の0へのリセットを指示するが、Set_TsnはRMU Restore Only_RootにTSNの指定値へのリセットを指示し、Noset_TsnはTSN値を変更しないためです。

Transaction_Mode=(mode-list)

リストア操作で作成されるデータベース・ルート・ファイルについて許可されるトランザクション・モードを設定します。mode-listには、次の1つ以上のトランザクション・モードを含めることができます。

複数のトランザクション・モードをmode-listに指定する場合は、リストをカッコで囲み、トランザクション・モードを1つずつカンマで区切ります。次のことに注意してください。

Update_Files

Noupdate_Files

Update_Files修飾子の指定では、ルートがリストアされ、リストアされたルートから領域ファイルへのリンクをRMU Restore Only_Rootが試行します。また、スナップショット(.snp)ファイルが更新または作成されます。これがデフォルトです。

Noupdate_Files修飾子の指定では、リストア操作によってルートがリストアされるが、リストアされたルートから領域ファイルへのリンクは行われません。また、.snpファイルの作成または更新も行われません。

Noupdate_Files修飾子をNoset_Tsn修飾子と一緒に使用するときは、データベース全体に対する最新の完全な全体バックアップ・ファイルのかわりに最新の領域別全体バックアップ・ファイルを使用するバックアップ戦略を使用できます。「例」の項の「例6」を参照してください。

Users_Max=number-users

リストア対象データベースに同時にアクセスできるユーザー数の新しい上限を指定します。有効範囲は1〜2032ユーザーです。デフォルト値は、データベースのバックアップ前にデータベースについて定義された値です。

注意

これらの修飾子を使用して、データベース・ルート・ファイル内の情報をディスク上の記憶領域ファイルに合せて調整します。データベース・ルート・ファイルのリストア元のバックアップが作成された後で、記憶領域またはスナップショット・ファイルに変更が加えられていると、これらの値が同期していないことがあります。

これらのパラメータを設定するとルート・ファイルのデータのみが更新されます。記憶領域またはスナップショット・ファイルそのものの属性は変更されません。


ファイルまたは領域の修飾子

Blocks_Per_Page=integer

Noblocks_Per_Page

記憶領域の1ページ当たりのブロック数でデータベース・ルート・ファイルを更新します。記憶領域の1ページ当たりのブロック数が、リストアしているバックアップ・ファイルの作成時以降に変更されている場合は、この修飾子を使用してルートを更新します。この修飾子を使用しても、記憶領域そのもののページ数は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

デフォルトのNoblocks_Per_Page修飾子を使用すると、RMU Restore Only_Rootは、バックアップしたデータベースで指定されていたページ・サイズに基づいて記憶領域のページ・サイズを設定します。これは位置依存修飾子です。この修飾子は、統一ページ形式の記憶領域では使用できません。

File=file-spec

修飾するstorage-area-nameパラメータのファイル指定でデータベース・ルート・ファイルを更新します。記憶領域のファイル指定が、ルートのリストア元のバックアップ・ファイルを作成した後で変更されている場合は、この修飾子を使用してルートを更新します。(たとえば、バックアップ・ファイルを作成した後でRMU Move_Areaコマンドを使用した場合。)この修飾子を使用しても、修飾する記憶領域のファイル指定は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。File修飾子を指定するときは、ファイル名を指定する必要があります。

この修飾子とRoot、SnapshotおよびDirectory修飾子の関係の詳細は、「使用上の注意」を参照してください。

この修飾子は、シングル・ファイル・データベースでは無効です。これは位置依存修飾子です。

Read_Only

修飾する記憶領域の読取り専用属性を反映するようにデータベース・ルート・ファイルを更新します。読取り/書込みまたは読取り専用属性が、リストアしているバックアップ・ファイルの作成時以降に変更されている場合は、この修飾子を使用してルートを更新します。この修飾子を使用しても、修飾する記憶領域の属性は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

Read_OnlyまたはRead_Write修飾子を指定しない場合、データベースのバックアップ時に有効になっていた読取り/書込み属性で記憶領域がリストアされます。

Read_Write

修飾する記憶領域の読取り/書込み属性を反映するようにデータベース・ルート・ファイルを更新します。読取り/書込みまたは読取り専用属性が、リストアしているバックアップ・ファイルの作成時以降に変更されている場合は、この修飾子を使用してルートを更新します。この修飾子を使用しても、修飾する記憶領域の属性は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

Read_OnlyまたはRead_Write修飾子を指定しない場合、データベースのバックアップ時に有効になっていた読取り/書込み属性で記憶領域がリストアされます。

Snapshot=(Allocation=n,File=file-spec)

修飾する領域のスナップショット割当てまたはスナップショット・ファイル指定(あるいは両方)を反映するように、データベース・ルート・ファイルを更新します。データベース・ルートのリストア元のバックアップ・ファイルが変更された後でスナップショット属性が変更されたときは、この修飾子を使用してルートを更新します。この修飾子を使用しても、修飾するスナップショット・ファイルの属性は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

この修飾子とRoot、SnapshotおよびDirectory修飾子の関係の詳細は、「使用上の注意」を参照してください。

Snapshot修飾子は位置依存修飾子です。

Snapshot修飾子を指定しないと、RMU Restore Only_Rootは、バックアップ・ファイルに格納されている情報に基づいてスナップショット領域をリストアします。

Spams

Nospams

storage-area-listの記憶領域の領域管理(SPAM)情報を反映するように、データベース・ルート・ファイルを更新します。ルートのリストア元のバックアップ・ファイルが作成された後でSPAMページの設定(有効または無効)が変更されている場合は、この修飾子を使用します。この修飾子を使用しても、修飾する記憶領域の属性は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

Spams修飾子を使用して、修飾する記憶領域でSPAMページが有効であることを示すようにルート・ファイルの情報を更新します。また、Nospams修飾子を使用して、修飾する記憶領域でSPAMページが無効であることを示すようにルート・ファイルの情報を更新します。デフォルトでは、属性はバックアップ・ファイルに記録された設定から変更されません。これは位置依存修飾子です。

Thresholds=(val1[,val2[,val3]])

storage-area-listの記憶領域のしきい値情報を反映するように、データベース・ルート・ファイルを更新します。ルートのリストア元のバックアップ・ファイルが作成されてからしきい値が変更されたときは、この修飾子を使用します。この修飾子を使用しても、修飾する記憶領域の属性は変更されません。データベース・ルート・ファイルが正しい情報を含むように更新することが目的です。

これは位置依存修飾子です。

Thresholds修飾子は、混合ページ形式の記憶領域のみに適用されます。

Thresholds修飾子をRMU Restore Only_Rootコマンドで使用しない場合、Oracle Rdbは、バックアップ・ファイルに記録されている記憶領域のしきい値を使用します。

SPAMしきい値の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。


使用上の注意


例1

データベースの破損を防ぐには、CSNおよびTSN値を調べ、最大値に近づいたら0に設定します。まず、RMU Dumpコマンドを入力して次のCSN値および次のTSN値を表示します。


$ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
   .
   .
   .
    Sequence Numbers...
      - Transaction sequence number
        Next number is 0:256
        Group size is 0:32
      - Commit sequence number
        Next number is 0:256
        Group size is 0:32

次のCSNと次のTSNの値が、許可されている最大数に近づいたら、次の操作を実行して、データベースのすべてのTSNとCSNの値を0に初期化する必要があります。この操作は、データベースのすべてのページに書込みが行われるため、実行にしばらく時間がかかることがあります。

まず、データベースのバックアップ・ファイルを作成します。次に、Initialize_Tsns修飾子を使用して、データベースをリストアし、CSNおよびTSNの値を初期化します。ここで、再びRMU Dumpコマンドを入力して次のCSN値および次のTSN値を調べます。この例では、両方の値が0に設定されています。データベース・ページを表示すると、すべてのTSNとCSNの値が0になっていることがわかります。


$ RMU/BACKUP MF_PERSONNEL MF_PER_124.RBF
$ RMU/RESTORE/ONLY_ROOT /INITIALIZE_TSNS MF_PER_124.RBF
$ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
   .
   .
   .
    Sequence Numbers...
      - Transaction sequence number
        Next number is 0:0
        Group size is 0:32
      - Commit sequence number
        Next number is 0:0
        Group size is 0:32

例2

次のコマンドを実行して、TSNおよびCSNの値を選択した数(次のCSN値および次のTSN値以上の数)に設定します。選択した値が、データベース・ヘッダーに記録されている次のCSN値と次のTSN値よりも小さい場合は、次のようなエラーを受け取ります。


$ RMU/RESTORE/ONLY_ROOT/SET_TSN=(TSN=40,CSN=40)
_$ MF_PERSONNEL.RBF
%RMU-F-TSNLSSMIN, value (0:40) is less than minimum
 allowed value (0:224) for /SET_TSN=TSN
%RMU-F-FTL_RSTR, Fatal error for RESTORE operation
 at 18-JUN-1997 16:59:19.32

データベース・ヘッダーに記録されている次のCSN値と次のTSN値以上の数を入力します。


$ RMU/RESTORE/ONLY_ROOT/SET_TSN=(TSN=274,CSN=274) -
_$ MF_PERSONNEL.RBF

RMU Dumpコマンドを入力し、次のCSN値および次のTSN値を確認します。


$ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
   .
   .
   .
    Sequence Numbers...
      - Transaction sequence number
        Next number is 0:288
        Group size is 0:32
      - Commit sequence number
        Next number is 0:288
        Group size is 0:32
      - Database bind sequence number
        Next number is 0:288

例3

次のRMU Restore Only_Rootコマンドは、データベース・バックアップ・ファイル(.rbf)から別のデバイスにデータベース・ルート・ファイルをリストアします。


$ RMU/RESTORE/ONLY_ROOT/ROOT=DXXV9:[BIGLER.TESTING]MF_PERSONNEL -
_$ MF_PERSONNEL_BACKUP.RBF

次のDIRECTORYコマンドが、指定したディレクトリにMF_PERSONNEL.RDBファイルがリストアされたことを確認します。


$ DIRECTORY DXXV9:[BIGLER.TESTING]MF_PERSONNEL.RDB

Directory DXXV9:[BIGLER.TESTING]

MF_PERSONNEL.RDB;1   21-JAN-1991 14:37:36.87

Total of 1 file.

例4

File=file-spec修飾子を使用して、記憶領域の新しい場所を含むように.rdbファイルを更新します。記憶領域を別の場所に移動した場合は、File修飾子を使用して新しい場所を表示し、Snapshot修飾子を使用して領域のスナップショット(.snp)ファイルの現在のバージョンを指定します。次に示すRMUコマンドを入力して、一連の操作を実行します。この操作では、ルート単独リストア操作でFileおよびSnapshot修飾子を使用し、データベースが最後にバックアップされてからの新しい情報で.rdbファイルを更新します。

データベース・ファイルをバックアップします。


$ RMU/BACKUP MF_PERSONNEL MFPERS_122.RBF.

領域を別のディレクトリに移動します。


$ RMU/MOVE_AREA MF_PERSONNEL JOBS -
_$ /FILE=[BIGLER.MFTEST.TEST1]JOBS.RDA

RMU Restore Only_Rootコマンドを使用して、領域名を指定し、記憶領域ファイル指定と新しい場所の両方を指定します。スナップショット(.snp)ファイルとその正しいバージョンも指定します。.snpファイルのバージョン番号は、RMU Move_Areaコマンドを使用すると増分することに注意してください。


$ RMU/RESTORE/ONLY_ROOT MFPERS_122.RBF JOBS -
_$ /FILE=[BIGLER.MFTEST.TEST1]JOBS.RDA -
_$ /SNAPSHOT=(FILE=[BIGLER.V41MFTEST]JOBS.SNP;2)

.rdbヘッダーを表示し、ファイルが正しく更新されたことを確認します。

データベース・ルート・ファイルのダンプに、次のファイル指定がリストされます。


$ RMU/DUMP/HEADER MF_PERSONNEL
DXXV9:[BIGLER.MFTEST.TEST1]JOBS.RDA;1
DXXV9:[BIGLER.MFTEST]JOBS.SNP;2

データベースを構成するファイルやそれらのバージョン番号と比較し、.rdbファイルが適切かつ完全に更新されたことを確認します。


$ RMU/VERIFY/ROOT MF_PERSONNEL

例5

次のコマンドでは、例4のRMU Restore Only_Rootコマンドと同じ結果が得られます。ただし、ここではオプション・ファイルを使用して、JOBS記憶領域および関連する.snpファイルの現在の場所を指定しています。


$ RMU/RESTORE/ONLY_ROOT MFPERS_122.RBF -
_$ JOBS/OPTIONS=OPTIONS_FILE.OPT
$ !
$ TYPE OPTIONS_FILE.OPT
JOBS /FILE=[BIGLER.V41MFTEST.TEST1]JOBS.RDA -
     /SNAPSHOT=(FILE=BIGLER.V41MFTEST]JOBS.SNP)

例6

次の例は、Noset_Tsn修飾子とNoupdate_Files修飾子を使用し、領域別バックアップ・ファイルを使用してデータベースをリストアする方法を示します。さらに、RMU Restoreコマンドの自動リカバリ機能も示します。


$ !
$ SET DEFAULT DISK1:[USER]
$ !
$ ! Create .aij files for the database. Because three .aij files are
$ ! created, fixed-size after-image journaling will be used.
$ !
$ RMU/SET AFTER_JOURNAL/ENABLE/RESERVE=4     -
_$ /ADD=(name=AIJ1, FILE=DISK2:[CORP]AIJ_ONE)   -
_$ /ADD=(name=AIJ2, FILE=DISK2:[CORP]AIJ_TWO)   -
_$ /ADD=(NAME=AIJ3, FILE=DISK2:[CORP]AIJ_THREE) -
_$ MF_PERSONNEL
%RMU-W-DOFULLBCK, full database backup should be done to
 ensure future recovery
$ !
$ !
$ ! For the purposes of this example, assume the backup operation
$ ! recommended in the preceding warning message is done, but
$ ! that the time between this backup operation and the following
$ ! operations is several months so that this backup file is too
$ ! old to use in an efficient restore operation.
$ !
$ ! Update the DEPARTMENTS table.
$ !
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> --
SQL> -- On Monday, insert a new row in the DEPARTMENTS table. The
SQL> -- new row is stored in the DEPARTMENTS storage area.
SQL> --
SQL> INSERT INTO DEPARTMENTS
cont>   (DEPARTMENT_CODE, DEPARTMENT_NAME, MANAGER_ID,
cont>   BUDGET_PROJECTED, BUDGET_ACTUAL)
cont>   VALUES ('WLNS', 'Wellness Center', '00188', 0, 0);
1 row inserted
SQL>
SQL> COMMIT;
SQL> DISCONNECT DEFAULT;
SQL> EXIT
$ !
$ ! Perform a by-area backup operation, including half of the
$ ! storage areas from the mf_personnel database.
$ !
$ RMU/BACKUP/INCLUDE=(RDB$SYSTEM, EMPIDS_LOW, EMPIDS_MID, -
_$ EMPIDS_OVER, DEPARTMENTS) MF_PERSONNEL -
_$ DISK3:[BACKUP]MONDAY_FULL.RBF
%RMU-I-NOTALLARE, Not all areas will be included in
 this backup file
$ !
$ ! Update the SALARY_HISTORY table.
$ !
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> --
SQL> -- On Tuesday, one row is updated in the
SQL> -- SALARY_HISTORY storage area.
SQL> --
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.00'
cont>    AND EMPLOYEE_ID = '00164';
1 row updated
SQL> COMMIT;
SQL> DISCONNECT DEFAULT;
SQL> EXIT
$ !
$ ! On Tuesday, back up the other half of the storage areas.
$ !
$ RMU/BACKUP/INCLUDE=(SALARY_HISTORY, JOBS, EMP_INFO, -
_$ MF_PERS_SEGSTR, RDB$SYSTEM) MF_PERSONNEL -
_$ DISK3:[BACKUP]TUESDAY_FULL.RBF
%RMU-I-NOTALLARE, Not all areas will be included in this
 backup file
$ !
$ ! On Wednesday, perform additional updates.
$ !
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> --
SQL> -- Update another row in the SALARY_HISTORY table:
SQL>  UPDATE SALARY_HISTORY
cont>     SET SALARY_START ='23-SEP-1991 00:00:00.00'
cont>     WHERE SALARY_START='21-SEP-1981 00:00:00.00'
cont>     AND EMPLOYEE_ID = '00164';
1 row updated
SQL> COMMIT;
SQL> DISCONNECT DEFAULT;
SQL> EXIT
$ !
$ ! Assume the database is lost on Wednesday.
$ !
$ ! Restore the database root from the latest full-area backup file.
$ !
$ RMU/RESTORE/ONLY_ROOT/NOUPDATE_FILES/NOSET_TSN -
_$ DISK3:[BACKUP]TUESDAY_FULL.RBF/LOG
%RMU-I-AIJRSTBEG, restoring after-image journal "state" information
%RMU-I-AIJRSTJRN, restoring journal "AIJ1" information
%RMU-I-AIJRSTSEQ, journal sequence number is "0"
%RMU-I-AIJRSTSUC, journal "AIJ1" successfully restored from
 file "DISK2:[CORP]AIJ_ONE.AIJ;1"
%RMU-I-AIJRSTJRN, restoring journal "AIJ2" information
%RMU-I-AIJRSTNMD, journal has not yet been modified
%RMU-I-AIJRSTSUC, journal "AIJ2" successfully restored from
 file "DISK2:[CORP]AIJ_TWO.AIJ;1"
%RMU-I-AIJRSTJRN, restoring journal "AIJ3" information
%RMU-I-AIJRSTNMD, journal has not yet been modified
%RMU-I-AIJRSTSUC, journal "AIJ3" successfully restored from
 file "DISK2:[CORP]AIJ_THREE.AIJ;1"
%RMU-I-AIJRSTEND, after-image journal "state" restoration complete
%RMU-I-RESTXT_00, Restored root file
 DISK1:[USER]MF_PERSONNEL.RDB;1
%RMU-I-AIJRECBEG, recovering after-image journal "state" information
%RMU-I-AIJRSTAVL, 3 after-image journals available for use
%RMU-I-AIJRSTMOD, 1 after-image journal marked as "modified"
%RMU-I-LOGMODSTR,     activated after-image journal "AIJ2"
%RMU-I-AIJISON, after-image journaling has been enabled
%RMU-W-DOFULLBCK, full database backup should be done to
 ensure future recovery
%RMU-I-AIJRECEND, after-image journal "state" recovery complete
$ !
$ ! Restore the database areas, starting with the most recent
$ ! full-area backup file. (If the RDB$SYSTEM area is not in the
$ ! most recent full-area backup file, however, it must be restored
$ ! first.) Do not restore any area more than once.
$ !
$ ! Specify the Norecovery qualifier since there are additional
$ ! backup files to apply.
$ !
$ RMU/RESTORE/AREA/NOCDD/NORECOVER -
_$ DISK3:[BACKUP]TUESDAY_FULL.RBF -
_$ RDB$SYSTEM, SALARY_HISTORY, JOBS, -
_$ EMP_INFO, MF_PERS_SEGSTR/LOG
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]MF_PERS_DEFAULT.RDA;1 at 18-JUN-1997 16:14:40.88
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]SALARY_HISTORY.RDA;1 at 18-JUN-1997 16:14:41.28
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]JOBS.RDA;1 at 18-JUN-1997 16:14:41.83
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]EMP_INFO.RDA;1 at 18-JUN-1997 16:14:42.06
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]MF_PERS_SEGSTR.RDA;1 at 18-JUN-1997 16:14:42.27
%RMU-I-RESTXT_24, Completed full restore of storage area
 DISK1:[USER]JOBS.RDA;1 at 18-JUN-1997 16:14:42.49
%RMU-I-RESTXT_24, Completed full restore of storage area
 DISK1:[USER]EMP_INFO.RDA;1 at 18-JUN-1997 16:14:42.74
   .
   .
   .
%RMU-I-RESTXT_01, Initialized snapshot file
 DISK1:[USER]MF_PERS_DEFAULT.SNP;1
%RMU-I-LOGINIFIL,     contains 100 pages, each page
 is 2 blocks long
%RMU-I-RESTXT_01, Initialized snapshot file
 DISK1:[USER]EMP_INFO.SNP;1
%RMU-I-LOGINIFIL,     contains 100 pages, each page
 is 2 blocks long
   .
   .
   .
%RMU-I-AIJWASON, AIJ journaling was active when
 the database was backed up
%RMU-I-AIJRECFUL, Recovery of the entire database
 starts with AIJ file sequence 0
%RMU-I-COMPLETED, RESTORE operation completed
 at 18-JUN-1997 16:14:46.82
$ !
$ ! Complete restoring database areas by applying the most
$ ! recent full-area backup file.  However, do not include
$ ! the RDB$SYSTEM table because that was already restored
$ ! in the previous restore operation.  This restore
$ ! operation will attempt an automatic recovery of the .aij files.
$ !
$ RMU/RESTORE/AREA/NOCDD DISK3:[BACKUP]MONDAY_FULL.RBF -
_$ EMPIDS_LOW, EMPIDS_MID, EMPIDS_OVER, DEPARTMENTS/LOG
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]EMPIDS_OVER.RDA;1 at 18-JUN-1997 16:20:05.08
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]EMPIDS_MID.RDA;1 at 18-JUN-1997 16:20:05.40
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]EMPIDS_LOW.RDA;1 at 18-JUN-1997 16:20:05.91
%RMU-I-RESTXT_21, Starting full restore of storage area
 DISK1:[USER]DEPARTMENTS.RDA;1 at 18-JUN-1997 16:20:06.01
%RMU-I-RESTXT_24, Completed full restore of storage area
 DISK1:[USER]EMPIDS_OVER.RDA;1 at 18-JUN-1997 16:20:06.24
   .
   .
   .
%RMU-I-RESTXT_01, Initialized snapshot file
 DISK1:[USER]DEPARTMENTS.SNP;1
%RMU-I-LOGINIFIL,     contains 100 pages, each page
 is 2 blocks long
%RMU-I-RESTXT_01, Initialized snapshot file
 DISK1:[USER]EMPIDS_LOW.SNP;1
%RMU-I-LOGINIFIL,     contains 100 pages, each page
 is 2 blocks long
   .
   .
   .
%RMU-I-AIJWASON, AIJ journaling was active when
 the database was backed up
%RMU-I-AIJRECFUL, Recovery of the entire database
 starts with AIJ file sequence 0
%RMU-I-AIJRECARE, Recovery of area DEPARTMENTS starts
 with AIJ file sequence 0
%RMU-I-AIJRECARE, Recovery of area EMPIDS_LOW starts
 with AIJ file sequence 0
%RMU-I-AIJRECARE, Recovery of area EMPIDS_MID starts
 with AIJ file sequence 0
%RMU-I-AIJRECARE, Recovery of area EMPIDS_OVER starts
 with AIJ file sequence 0
%RMU-I-AIJBADAREA, inconsistent storage area
 DISK1:[USER]DEPARTMENTS.RDA;1 needs AIJ sequence number 0
%RMU-I-AIJBADAREA, inconsistent storage area
 DISK1:[USER]EMPIDS_LOW.RDA;1 needs AIJ sequence number 0
   .
   .
   .
%RMU-I-LOGRECDB, recovering database file
 DISK1:[USER]MF_PERSONNEL.RDB;1
%RMU-I-AIJAUTOREC, starting automatic after-image
 journal recovery
%RMU-I-LOGOPNAIJ, opened journal file DISK2:[CORP]AIJ_ONE.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, 2 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 2 transactions ignored
%RMU-I-AIJSUCCES, database recovery completed successfully
%RMU-I-AIJGOODAREA, storage area
 DISK1:[USER]DEPARTMENTS.RDA;1 is now consistent
%RMU-I-AIJGOODAREA, storage area
 DISK1:[USER]EMPIDS_LOW.RDA;1 is now consistent
%RMU-I-AIJGOODAREA, storage area
 DISK1:[USER]EMPIDS_MID.RDA;1 is now consistent
   .
   .
   .
%RMU-I-AIJFNLSEQ, to start another AIJ file recovery,
 the sequence number needed  will be 0
%RMU-I-COMPLETED, RESTORE operation completed at
 18-JUN-1997 16:20:11.45
$ !
$ ! The database is now restored and recovered.  However, if
$ ! for some reason the automatic .aij file recovery was not
$ ! possible (for example, if you had backed up the .aij files),
$ ! apply the .aij files in the same order in
$ ! which they were created.  That is, if .aij files were backed
$ ! up each night, apply aij_mon.aij first and aij_tues.aij second.

例7

次の例は、Directory、FileおよびRoot修飾子の使用方法を示します。まずデータベースがバックアップされ、その後、2つの記憶領域ファイルと1つのスナップショット・ファイルが移動されます。ルート単独リストア操作によって次の処理が実行されます。


$ ! Back up the database:
$ !
$ RMU/BACKUP MF_PERSONNEL.RDB MF_PERSONNEL.RBF
$ !
$ ! Move a couple of storage areas and a snapshot file:
$ !
$ RMU/MOVE_AREA MF_PERSONNEL.RDB -
_$ /DIRECTORY=DISK2:[DIR] -
_$ EMPIDS_MID/FILE=DISK4:[FILE] -
_$ /SNAPSHOT=(FILE=DISK3:[SNAP]EMPIDS_MID.SNP), -
_$ EMPIDS_LOW/FILE=EMPIDS -
_$ /SNAPSHOT=(FILE=DISK5:[SNAP]EMPIDS.SNP)
$ !
$ ! Database root is lost.  Restore the root and update the
$ ! locations of the moved storage areas and snapshot file as
$ ! recorded in the database root file because the locations
$ ! recorded in the backup file from which the root is restored
$ ! are not up-to-date:
$ !
$ RMU/RESTORE/ONLY_ROOT MF_PERSONNEL.RBF -
_$ /ROOT=DISK3:[ROOT]MF_PERSONNEL.RDB -
_$ EMPIDS_MID/FILE=DISK4:[FILE] -
_$ /SNAPSHOT=(FILE=DISK2:[DIR]EMPIDS_MID.SNP), -
_$ EMPIDS_LOW/FILE=DISK2:[DIR]EMPIDS -
_$ /SNAPSHOT=(FILE=DISK5:[SNAP]EMPIDS.SNP)