RMU Copy_Databaseコマンドでは、コピー操作時に特定の領域パラメータを変更できます。コピー操作時、すべてのファイルが同時に処理されます。コピー操作のパフォーマンスは、RMU Backupコマンドのパフォーマンスと同程度です。RMU Copy_Databaseコマンドでは、中間ストレージ・メディアが必要ありません。
注意
Copy_Database処理の完了後すぐに、全体完全Oracle RMUバックアップ操作を行い、データベースの障害または破損後、データベースを適切にリストアできるようにする必要があります。RMU Copy_Databaseコマンドの発行時、After_Journal修飾子もAij_Options修飾子も指定しない場合、データベースのコピーに対してアフター・イメージ・ジャーナルが無効になり、.aijファイルが関連付けられないことにも注意してください。
root-file-spec
コピーするデータベースのデータベース・ルート・ファイルの名前。storage-area-list
パラメータを変更する1つ以上の記憶領域の名前。storage-area-listパラメータはオプションです。RMU Copy_Databaseコマンドを使用して1つ以上の記憶領域のパラメータを変更する場合以外、記憶領域名は指定しません。
After_Journal[=file-spec]
Noafter_Journal
注意
この修飾子は、バージョン6.0より前のOracle Rdbとの互換性を保つためにあります。拡張可能な.aijファイルのみを作成する場合以外、Aij_Options修飾子を指定する方が有用です。
次のルールを使用して、Oracle RMUでのアフター・イメージ・ジャーナルの処理方法および.aijファイルの作成方法を指定します。
- After_Journal修飾子を指定し、ファイル指定を行うと、Oracle RMUで、データベースのコピーに対してジャーナルが有効化され、拡張可能なアフター・イメージ・ジャーナル(.aij)ファイルが新たに作成されます。
- After_Journal修飾子を指定し、ファイル指定を行わないと、Oracle RMUで、データベースのコピーに対してアフター・イメージ・ジャーナルが有効化され、コピー元のデータベースの.aijファイルと同じ名前でバージョン番号が異なる、拡張可能な.aijファイルが新たに作成されます。
- Noafter_Journal修飾子を指定すると、Oracle RMUで、アフター・イメージ・ジャーナルが無効化され、.aijファイルは新たに作成されません。
- After_Journal、Noafter_Journal、Aij_OptionsまたはNoaij_Options修飾子を指定しないと、Oracle RMUで、アフター・イメージ・ジャーナルが無効化され、.aijファイルは新たに作成されません。
1つのRMU Copy_Databaseコマンドで、アフター・イメージ・ジャーナル修飾子(After_Journal、Noafter_Journal、Aij_Options、Noaij_Options)の1つのみを指定するか、いずれも指定しません。
固定サイズの.aijファイルの作成には、After_Journal修飾子を使用できません。Aij_Options修飾子を使用します。
Aij_Options=journal-opts-file
Noaij_Options
次のルールを使用して、Oracle RMUでのアフター・イメージ・ジャーナルの処理方法および.aijファイルの作成方法を指定します。
- Aij_Options修飾子を指定し、journal-opts-fileを指定すると、Oracle RMUで、データベースのコピーに対してジャーナルが有効化され、指定した.aijファイルが作成されます。データベースのコピーに対して1つのみの.aijファイルを作成する場合、ファイルは拡張可能な.aijファイルになります。データベースのコピーに対して複数の.aijファイルを作成する場合、(少なくとも2つの.aijファイルが常に使用可能なかぎり)ファイルは固定サイズの.aijファイルになります。
- Aij_Options修飾子を指定し、journal-opts-fileを指定しないと、Oracle RMUでジャーナルが無効化され、.aijファイルは新たに作成されません。
- Noaij_Options修飾子を指定すると、Oracle RMUでジャーナルが無効化され、.aijファイルは新たに作成されません。
- After_Journal、Noafter_Journal、Aij_OptionsまたはNoaij_Options修飾子を指定しないと、Oracle RMUで、アフター・イメージ・ジャーナルが無効化され、.aijファイルは新たに作成されません。
1つのRMUコマンドで、アフター・イメージ・ジャーナル修飾子(After_Journal、Noafter_Journal、Aij_Options、Noaij_Options)の1つのみを指定するか、いずれも指定しません。
journal-opts-fileの形式の詳細は、第1.62.1項を参照してください。
Cdd_Integrate
Nocdd_Integrate
データベース・コピーのルート(.rdb)ファイルからのメタデータをデータ・ディクショナリに統合します(システムにデータ・ディクショナリがインストールされている場合)。Nocdd_Integrate修飾子を指定した場合、コピー操作時に統合は行われません。
データベース・メタデータのデータ・ディクショナリとの統合を、コピー操作が正常に終了した後まで遅らせる必要がある場合もあります。
コピー元のデータベースの定義時にDICTIONARY IS REQUIRED句が使用されている場合でも、Nocdd_Integrate修飾子を使用できます。
Cdd_Integrate修飾子では、データベースからディクショナリへの1方向にのみ定義を統合できます。Cdd_Integrate修飾子では、ディクショナリからデータベース・ファイルへ定義を統合しません。
Nocdd_Integrate修飾子がデフォルトです。
Checksum_Verification
Nochecksum_Verification
コピーされた各ページのページ・チェックサムを検証するよう要求します。デフォルトでは、この検証を行います。Checksum_Verification修飾子によって、多くのCPUリソースが使用されますが、コピーされたデータの質の信頼度が増します。オフライン・コピー操作では、Checksum_Verification修飾子の使用によって増えるCPUコストは、ディスク、HSCまたはCIポートのハードウェアに問題が起きている、あるいは起きたことがある場合以外、これに見合わない場合があります。これらの問題に見られる1つの現象は、ページが破損ページ表(CPT)に記録されることです。
オンライン・コピー操作では、データベースでディスク・ストライピングまたはRAID(Redundant Arrays of Inexpensive Disks)を使用している場合、Checksum_Verification修飾子を使用することでデータ・セキュリティのレベルが増します。これらのテクノロジによって、データが複数のディスク・ドライブに断片化され、Checksum_Verification修飾子を使用することによって、これらのディスクから読み取っているデータが部分的にのみ更新されている可能性をOracle RMUで検出できます。これらのテクノロジのいずれかを使用する場合、Checksum_Verification修飾子を使用する必要があります。
ただし、Nochecksum修飾子を指定し、データベースに未検出の破損があった場合、その破損がコピーされたファイルに含まれることに注意してください。このような破損のリカバリは、コピー操作後、時間が経過してから破損が見つかった場合は特に難しくなります。
概して、データの整合性が不可欠なすべてのコピー操作にChecksum_Verification修飾子を使用することをお薦めします。
Close_Wait=n
Oracle RMUでデータベースを閉じるまでに待つ時間(n分)を指定します。nの値を指定する必要があります。この修飾子を使用するには、RMU Copy_DatabaseコマンドラインでOpen_Mode修飾子をAutomaticに設定する必要があります。
Directory=directory-spec
コピーされたデータベース・ファイルのデフォルトのコピー先を指定します。ファイル名またはファイル拡張子を指定した場合、コピーされたすべてのファイルに、そのファイル名またはファイル拡張子が付けられます。この修飾子に、デフォルトのディレクトリ指定はありません。この修飾子とRoot、FileおよびSnapshot修飾子との相互作用、およびリソース識別子によって所有されるディレクトリへのデータベース・ファイルのコピーに関する警告の詳細は、「使用上の注意」を参照してください。
この修飾子を指定しない場合、Oracle RMUですべてのデータベース・ファイルが(Root、FileまたはSnapshot修飾子で修飾されていない場合)現在の場所にコピーされます。
Duplicate
Noduplicate
RMU Copy_Databaseコマンドで、元のデータベースと同じ内容で異なるIDのデータベースが新たに生成されます。このため、元のデータベースと複製されたデータベースとの間で.aijファイルは交換できません。この修飾子では、その後独自に展開することが予想される、データベースのコピーを作成します。この場合、.aijファイルを交換できると、セキュリティの問題があり、破損の原因になる場合があります。複製されたデータベースは元のデータベースと同じ名前になりますが、IDは異なります。Noduplicate修飾子を使用してコピーされたデータベースは、あらゆる点で元のデータベースとまったく異なることのない複製であるため、元のデータベースと複製されたデータベースの間で.aijファイルを交換できます。
デフォルトはNoduplicate修飾子です。
Global_Buffers=global-buffer-options
データベースをコピーする際、デフォルトのグローバル・バッファ・パラメータを変更できます。次のオプションが使用できます。
- Disabled
元のデータベースのコピーに対してグローバル・バッファを無効にするには、このオプションを使用します。- Enabled
元のデータベースのコピーに対してグローバル・バッファを有効にするには、このオプションを使用します。1つのRMU Copy_Databaseコマンドで、Global_Buffers修飾子にDisabledとEnabledの両方のオプションは指定できません。- Total=total-buffers
すべてのユーザーで使用できるバッファの数を指定するには、このオプションを使用します。- User_Limit=buffers-per-user
各ユーザーで使用できるバッファの最大数を指定するには、このオプションを使用します。
グローバル・バッファ・オプションを指定しない場合、コピー元のデータベースで有効な値を使用してデータベースがコピーされます。
Global_Buffers修飾子に複数のオプションを指定する場合、各オプションをカンマで区切り、オプションのリストをカッコで囲みます。
Local_Buffers=local-buffer-options
データベースをコピーする際、デフォルトのローカル・バッファ・パラメータを変更できます。次のオプションが使用できます。
- Number=number-buffers
すべてのユーザーで使用できるローカル・バッファの数を指定するには、このオプションを使用します。number-buffersパラメータには、2〜32,767の数を指定する必要があります。- Size=buffer-blocks
各バッファのサイズ(ブロック数)を指定するには、このオプションを使用します。buffer-blocksパラメータには、2〜64の数を指定する必要があります。
定義されている最大ページのサイズより小さい値を指定した場合、最大ページを保持できるようOracle RMUで自動的にバッファのサイズが調整されます。たとえば、Local_Buffers=Size=8修飾子を指定し、データベースの記憶領域の最大ページ・サイズが64ブロックの場合、Local_Buffers=Size=8修飾子は、Oracle RMUで自動的にLocal_Buffers=Size=64修飾子と解釈されます。
バッファ・サイズの選択には十分注意してください。選択を誤ると、パフォーマンスの大幅な低下を招きます。
buffer-blocksパラメータで指定した値によって、データベースでローカル・バッファまたはグローバル・バッファが有効であるかどうかに関係なく、各バッファのブロック数が決まります。
Local_Buffersオプションを指定しない場合、コピー元のデータベースで有効な値を使用してデータベースがコピーされます。
Lock_Timeout=n
処理をオンラインで行う場合、静止ポイント・ロック・リクエストを待つタイムアウト間隔または最大時間を秒数で指定します。Lock_Timeout=seconds修飾子を指定する場合、静止ポイント・ロックを待つ秒数を指定する必要があります。制限時間を過ぎると、エラーが表示され、コピー操作が失敗します。Lock_Timeout=n修飾子のデフォルト値は、作成時のデータベースのデフォルト・セットと、論理名RDM$BIND_LOCK_TIMEOUT_INTERVALの値のうち小さいほうです。
Lock_Timeout=seconds修飾子を指定しない場合、オンライン・コピー操作時にコピー操作で静止ポイント・ロックを無期限に待ちます。
Lock_Timeout=seconds修飾子は、オフライン・コピー操作では無視されます。
Log
Nolog
コマンドの処理をSYS$OUTPUTに出力するかどうかを指定します。Log修飾子を指定すると、ログを出力するよう要求し、Nolog修飾子を指定すると、ログは出力されません。どちらも指定しない場合、デフォルトは現在のDCL検証スイッチの設定です。(DCL SET VERIFYコマンドでDCL検証スイッチを制御します。)Nodes_Max=n
データベース・コピーのデータベース最大ノード・カウント・パラメータに対する新しい値を指定します。デフォルトでは、値は元のままです。Online
Noonline
データベースのコピー操作を、他のユーザーがデータベースにアタッチしているときに行うことを指定します。コピーされる領域は読取り専用アクセスでロックされるため、排他アクセス以外のアクセスと共存できます。デフォルトはNoonline修飾子です。
Open_Mode=Automatic
Open_Mode=Manual
データベースをコピーする際、データベースを開くモードを変更できます。Open_Mode=Automatic修飾子を指定した場合、コピー後すぐに、ユーザーはデータベース・コピーを呼び出すことができます。Open_Mode=Manual修飾子を指定した場合、RMU Openコマンドを使用してデータベースを開いた後で、ユーザーはデータベース・コピーを呼び出すことができます。Open_Mode修飾子で、データベースを閉じるモードも指定できます。Open_Mode=Automaticを指定した場合、Close_Wait修飾子も使用して、データベースを自動的に閉じるまでの時間(分)を指定できます。
Open_Mode修飾子を指定しない場合、コピー元のデータベースで有効なモードを使用してデータベースがコピーされます。
Option=file-spec
記憶領域名と、その後に記憶領域に適用する記憶領域修飾子が続くオプション・ファイルを指定します。記憶領域名はカンマで区切りません。かわりに、各記憶領域名をファイル内の別の行に記述します。オプション・ファイルに含めることができる記憶領域修飾子は、Blocks_Per_Page、File、SnapshotsおよびThresholdsです。オプション・ファイルに、DCLの行継続文字であるハイフン(-)またはコメント文字(!)を使用できます。この修飾子に、デフォルトはありません。「例」の例6に、オプション・ファイルと、Oracle RMUでのその指定方法を示します。
Option修飾子が指定された場合、storage-area-listパラメータは無視されます。
Page_Buffers=n
コピーされる各データベース・ファイルに割り当てられるバッファの数を指定します。使用されるバッファの数は、指定した数の2倍です。半分がファイルの読取りに使用され、もう半分がコピーの書込みに使用されます。Page_Buffersに指定できる値は、1〜5です。デフォルト値は3です。値を大きくすると、パフォーマンスが向上しますが、メモリーの使用が増えます。Path=cdd-path
データベース・コピーの定義を統合するデータ・ディクショナリ・パス名を指定します。Path修飾子を指定しない場合、RMU Copy_Databaseコマンドを入力したユーザーのCDD$DEFAULT論理名値が使用されます。相対パス名を指定した場合は、入力した相対パス名がCDD$DEFAULTの値に追加されます。cdd-pathパラメータに英数字以外の文字を含める場合、引用符("")で囲みます。
Nocdd_Integrate修飾子を使用した場合、またはデータ・ディクショナリがシステムにインストールされていない場合、Path修飾子は無視されます。
Quiet_Point
Noquiet_Point
データベース・コピー操作をすぐに行うか、データベース・アクティビティの静止ポイントが生じたときに行うかを指定できます。静止ポイントとは、データベースでアクティブな更新トランザクションが進行していない時点のことです。Noquiet_Point修飾子を指定した場合、Oracle RMUでは、データベースで更新トランザクション・アクティビティが進行中かどうかに関係なく、RMU Copy_Databaseコマンドの発行後すぐにコピー操作が行われます。Oracle RMUですべての物理および論理領域に対する同時読取りロックを得る必要があるため、記憶領域を排他的にロックするアクティブ・トランザクションがある場合、コピー操作は失敗します。ただし、Oracle RMUですべての記憶領域に対する同時読取りロックを正常に取得した場合、ロックの競合は起こりません。コピーの処理中にOracle Rdbで排他ロックが必要なトランザクションが開始された場合、そのトランザクションは待機するか、ロックの競合エラーを受け取りますが、コピー操作は影響を受けずに続けられます。
以前にQuiet_Point修飾子を指定した(またはQuiet_Point修飾子もNoquiet_Point修飾子も指定しない)コピー・プロシージャにNoquiet_Point修飾子を使用する場合、コピー操作と並行して実行されるアプリケーションについて確認する必要があります。Noquiet_Point修飾子の指定によって起こる可能性のあるロックの競合を処理するよう、アプリケーションまたはコピー・プロシージャを変更する必要があります。
Quiet_Point修飾子を指定した場合、コピー操作は静止ポイントになったときに開始されます。データベース・コピー操作の開始後に発行された他の更新トランザクションは、データベースのルート・ファイルがコピーされるまで実行されません(データベース記憶領域のコピーは、ルート・ファイルのコピー後に開始されます)。
デフォルトはQuiet_Point修飾子です。
Root=file-spec
データベース・ルート・ファイルを指定した場所へコピーするよう指定します。この修飾子とDirectory、FileおよびSnapshot修飾子との相互作用の詳細は、「使用上の注意」を参照してください。
Transaction_Mode=(mode-list)
コピー操作によって作成されたデータベース・ルート・ファイルに使用できるトランザクション・モードを設定します。mode-listには、次の1つ以上のトランザクション・モードを含めることができます。
- All: すべてのトランザクション・モードが有効
- Current: ソース・データベースに設定されているすべてのトランザクション・モードが有効。これがデフォルトのトランザクション・モードです。
- None: すべてのトランザクション・モードが無効
- [No]Batch_Update
- [No]Exclusive
- [No]Exclusive_Read
- [No]Exclusive_Write
- [No]Protected
- [No]Protected_Read
- [No]Protected_Write
- [No]Read_Only
- [No]Read_Write
- [No]Shared
- [No]Shared_Read
- [No]Shared_Write
コピー操作には、データベース・ルート・ファイルを含める必要があります。そうでない場合、Transaction_Mode修飾子を指定してRMU Copy_Databaseコマンドを発行すると、CONFLSWITエラーがRMUから返されます。
mode-listに複数のトランザクション・モードを指定する場合、リストをカッコで囲み、各トランザクション・モードをカンマで区切ります。次の点に注意してください。
- Noexclusive_Writeなどの否定トランザクション・モードを指定した場合、排他書込みが、コピーされたデータベースに対して使用できないアクセスモードであることを示します。
- Shared、ExclusiveまたはProtectedトランザクション・モードを指定した場合、そのトランザクション・モードでの読取りと書込みの両方を指すものとみなされます。
- 明示的に指定しないかぎり、いずれのモードも有効になりません。なお、Allオプションを使用すると、すべてのトランザクション・モードが有効になります。
- このコマンドでは、特定のモードを有効または無効にするトランザクション・モードの後に、それとは反するモードが指定される可能性があります。たとえば、Transaction_Mode=(Noshared_Write, Shared)と指定した場合、最初の値はShared_Writeアクセスの無効化を示し、2番目の値はShared_Writeアクセスの有効化を示すため、指定内容が不明確になります。Oracle RMUは、このような不明確さの解決方法として、有効化を示す指定を先に適用し、次に、無効化を示す指定を適用します。モードを記述した順序は関係しません。前述の例の場合は、Shared_Readが有効、Shared_Writeが無効となります。
Threads=number
コピー・プロセスで使用される読取りスレッドの数を指定します。RMUでは、1つの特定の記憶領域からデータを読み取る、内部実行スレッドと呼ばれるスレッドが作成されます。RMUイメージを実行するプロセス内で、スレッドが準パラレルで実行されます。各スレッドでI/Oロードが生じ、仮想アドレス空間およびプロセス割当て制限(FILLM、BYTLMなど)などのリソースが消費されます。スレッドが多いほど、ある時点で生成されるI/Oと、同じタスクの完了に必要なリソースが増えます。
スレッドが多いほど、パラレル・アクティビティでディスク・ドライブを使用し続けるため、パフォーマンスが向上します。ただし、スレッドが特定の数に達した時点で、ディスクI/Oサブシステムが飽和状態になり、ディスク・ドライブのI/Oキューが増すため、パフォーマンスが低下します。また、スレッド・スケジューリングのオーバーヘッドによる余分なCPU時間によっても、全体のパフォーマンスが低下します。ディスクI/Oサブシステムを最適な状態で稼働させるには、通常、入力ディスク・ドライブごとに2〜5のスレッドで十分です。ただし、RAIDセットや追加のキャッシュ・メモリーを持つディスク・コントローラなどのように、多くのスレッドのI/Oロードを処理できるコントローラもあります。
コピー操作では、1つのスレッドで、一度に1つの記憶領域のデータが移動されます。コピーされる記憶領域がスレッドより多い場合、次のアイドル・スレッドで次の記憶領域が処理されます。記憶領域は、領域のサイズの降順にコピーされます。先に開始したスレッドで大きい領域を処理している間に、他のスレッドで小さい領域をコピーすることによって、全体の経過時間が最適化されます。スレッド修飾子が指定されない場合、デフォルトで10個のスレッドが作成されます。最小は1スレッドで、最大は、コピーされる記憶領域の数です。ユーザーが記憶領域の数より大きい値を指定した場合、RMUで警告なしにスレッド数が記憶領域の数に制限されます。
コピー操作の場合、スレッド数に指定できる最小値は1です。スレッド数に1を使用すると、ワーキング・セットの使用およびディスクI/Oロードの点では、最小システム・ロードになります。ディスクI/Oサブシステムは、より高いI/Oロードを処理できる可能性があります。1より大きい値を使用すると、通常、実行時間が短くなります。
Users_Max=n
データベースの最大ユーザー・カウント・パラメータに新しい値を指定します。デフォルトは、コピー元のデータベースで有効な値と同じ値です。
Blocks_Per_Page=n
記憶領域に適用する新しいページ・サイズを指定します。記憶領域のページ・サイズを減らすことはできません。また、統一ページ形式を持つ記憶領域のサイズは変更できません。ページ・サイズを増やす場合の例としては、記憶領域内のハッシュ索引がいっぱいになりかけている場合などが考えられます。そのような場合は、ページ・サイズを大きくすることで記憶領域の拡張を回避できます。
Blocks_Per_Page修飾子は、位置依存修飾子です。
Extension=Disable
Extension=Enable
データベースのコピー時に、記憶領域の自動ファイル拡張属性を変更できます。Extension=Disable修飾子を使用して、記憶領域の自動ファイル拡張を無効にします。
Extension=Enable修飾子を使用して、記憶領域の自動ファイル拡張を有効にします。
Extension=Disable修飾子もExtension=Enable修飾子も指定しない場合、コピー元のデータベースで有効な自動ファイル拡張属性を使用して記憶領域がコピーされます。
Extension修飾子は、位置依存修飾子です。
File=file-spec
この修飾子が適用される記憶領域が指定した場所にコピーされるよう要求します。この修飾子とRoot、SnapshotおよびDirectory修飾子との相互作用、およびリソース識別子によって所有されるディレクトリへのデータベース・ファイルのコピーに関する警告の詳細は、「使用上の注意」を参照してください。
File修飾子は、位置依存修飾子です。この修飾子は、シングルファイル・データベースには無効です。
Read_Only
Read_Only修飾子を使用して、読取り/書込み記憶領域またはライトワンス記憶領域を読取り専用記憶領域に変更します。Read_Only修飾子もRead_Write修飾子も指定しない場合、コピー元のデータベースで現在有効な読取り/書込み属性を使用して記憶領域がコピーされます。
これは、位置依存修飾子です。
Read_Write
Read_Write修飾子を使用して、読取り専用記憶領域またはライトワンス記憶領域を読取り/書込み記憶領域に変更します。Read_Only修飾子もRead_Write修飾子も指定しない場合、コピー元のデータベースで現在有効な読取り/書込み属性を使用して記憶領域がコピーされます。
これは、位置依存修飾子です。
Snapshots=(Allocation=n,File=file-spec)
Allocationパラメータを指定した場合、コピー先の領域のスナップショット・ファイル割当てサイズ(nページ)を指定します。Fileパラメータを指定した場合、コピー先の記憶領域に適用されるスナップショット・ファイルの新しい場所を指定します。Allocationパラメータのみ、またはFileパラメータのみ、あるいは両方のパラメータを指定できます。ただし、Snapshots修飾子を指定する場合、少なくとも1つのパラメータを指定する必要があります。
Snapshots修飾子は、位置依存修飾子です。
この修飾子とRoot、FileおよびDirectory修飾子との相互作用の詳細は、「使用上の注意」を参照してください。
Spams
Nospams
指定した記憶領域に対して領域管理(SPAM)ページの作成を有効にするか、SPAMページの作成を無効にする(Nospams)かを指定します。この修飾子は、統一ページ形式を持つ記憶領域には使用できません。読取り/書込み記憶領域でSPAMページが無効の場合、SPAMページは初期化されますが、更新されません。
Spams修飾子は、位置依存修飾子です。
Thresholds=(n,n,n)
記憶領域に適用される新規SPAMしきい値を指定します(混合ページ形式の記憶領域の場合)。統一ページ形式の記憶領域のしきい値は変更できません。SPAMしきい値の設定の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。
Thresholds修飾子は、位置依存修飾子です。
- データベースに対してRMU Copy_Databaseコマンドを使用するには、コピーするデータベースのルート・ファイル・アクセス制御リスト(ACL)にRMU$COPY権限を持っているか、OpenVMSのSYSPRVまたはBYPASS権限を持っている必要があります。
- リソース識別子によって所有されているディレクトリにデータベースをコピーする場合、ディレクトリのACEがデータベース・ルート・ファイルACLにまず適用され、次にOracle RMU ACEが追加されます。この方法が採用されているのは、データベース・ユーザーによってOpenVMSのファイル・セキュリティが上書きされるのを防ぐためです。ただし、これによって、自分のデータベースにOracle RMUのアクセス権限がない状況になることがあります。詳細は、『Oracle Rdb Guide to Database Maintenance』を参照してください。
- RMU Copy_Databaseコマンドには、コピーするファイルのターゲットを指定するDirectory、Root、FileおよびSnapshotsの4つの修飾子が用意されています。ターゲットは、ディレクトリのみ、ファイル名のみ、またはディレクトリとファイル名の両方で指定できます。
この4つの修飾子のすべてまたはいくつかを使用する場合、次のように適用します。
- Root修飾子を使用して、データベース・ルート・ファイルのコピーのターゲットを示します。
- File修飾子のローカル適用を使用して、1つ以上の記憶領域のコピーのターゲットを指定します。
- Snapshots修飾子のローカル適用を使用して、1つ以上のスナップショット・ファイルのコピーのターゲットを指定します。
- Directory修飾子を使用して、デフォルト・ターゲット・ディレクトリを指定します。デフォルト・ターゲット・ディレクトリは、Root、FileまたはSnapshot修飾子で修飾されていないすべてのファイルがコピーされるディレクトリです。Root、FileまたはSnapshot修飾子のターゲットにディレクトリ指定が含まれていない場合、これらの修飾子で修飾されたファイルのデフォルト・ディレクトリでもあります。
これらの修飾子を使用する場合、次の点に注意してください。
- ターゲットの指定にファイル名を含むFile修飾子をグローバルに適用すると、Oracle RMUですべての記憶領域が同じファイル名の異なるバージョンにコピーされます。このように作成されたデータベースは、管理が困難になります。
- ターゲットの指定にファイル名を含むSnapshot修飾子をグローバルに適用すると、Oracle RMUですべてのスナップショット・ファイルが同じファイル名の異なるバージョンにコピーされます。このように作成されたデータベースは、管理が困難になります。
- ファイル名または拡張子をDirectory修飾子に指定できますが、Oracle RMUですべてのファイル(FileまたはRoot修飾子で指定したファイル以外)が同じファイル名の異なるバージョンにコピーされます。繰り返しになりますが、このように作成されたデータベースは、管理が困難になります。
例8を参照してください。- リモート・システムまたはNFS(Network File System)マウントされたファイル・システムへのデータベースのコピーには、RMU Copy_Databaseコマンドは使用できません。RMU Copy_Databaseコマンドでは、元のデータベースと同じノードにデータベースのコピーを作成できます。
- スナップショット(.snp)ファイルのエクステントを無効にできません。
- RMU Copy_Databaseコマンドのファイルおよび領域修飾子は位置依存修飾子です。適切な位置に置かれない場合、無視されたり、予測できない結果が生じる場合があります。位置依存修飾子の詳細は、第1.2節を参照してください。
- 混合ページ形式にNospams修飾子を使用することは制限されていませんが、Nospams修飾子を使用すると、通常、パフォーマンスの大幅な低下を招きます。Nospams修飾子は、更新がまれでバッチ処理され、データベース・キー(dbkey)によって主にアクセスされる場合にのみ有用です。
例1次のコマンドでは、mf_personnelデータベースの複製コピーをDISK1:[USER1]ディレクトリに作成します。
$ RMU/COPY_DATABASE MF_PERSONNEL /DIRECTORY=DISK1:[USER1]
例2
次の例では、ユーザーのディレクトリ内でのデータベースの単純な複製を示します。この例では、複製されたデータベースは、元のデータベースと同じ内容とIDを持ちます。アフター・イメージ・ジャーナル・ファイルは、元のデータベースと複製されたデータベースとの間で交換できます。ヘッダー修飾子を指定してRMU Dumpコマンドを実行し、コピーされたデータベースが元のデータベースと同じことを確認します。各データベースのヘッダーに示される作成日が同じことに注意してください。
$ RMU/COPY_DATABASE MF_PERSONNEL
例3
次の例では、ユーザーのディレクトリ内でのDuplicate修飾子を使用したデータベースの複製を示します。この例では、複製されたデータベースは元のデータベースと異なります。元のデータベースと内容は同じですが、IDは異なります。このため、元のデータベースと複製されたデータベースとの間で.aijファイルは交換できません。各データベースに対し、ヘッダー修飾子を指定してRMU Dumpコマンドを使用すると、コピー・データベースと元のデータベースの作成日が異なることがわかります。
$ RMU/COPY_DATABASE/DUPLICATE MF_PERSONNEL
例4
次のコマンドでは、mf_personnelデータベースをDISK2:[USER2]ディレクトリからDISK1:[USER1]ディレクトリにコピーします。Extension=Disable修飾子によって、DISK1:[USER1]mf_personnelデータベースのすべての記憶領域(.rda)ファイルのエクステントが無効になります。
$ RMU/COPY_DATABASE/EXTENSION=DISABLE/DIRECTORY=DISK1:[USER1] - _$ DISK2:[USER2]MF_PERSONNEL
例5
次のコマンドでは、mf_personnelデータベースをDISK2:[USER2]ディレクトリからDISK2:[USER1]ディレクトリにコピーします。EMPIDS_LOWおよびEMPIDS_MID記憶領域にのみ、Extension=Disable修飾子が指定されているため、DISK2:[USER1]mf_personnelデータベースのこの2つの記憶領域(.rda)ファイルに対してのみ、エクステントが無効になります。
$ RMU/COPY_DATABASE/DIRECTORY=DISK2:[USER1] DISK2:[USER2]MF_PERSONNEL - _$ EMPIDS_LOW/EXTENSION=DISABLE,EMPIDS_MID/EXTENSION=DISABLE
例6
次のコマンドでは、オプション・ファイルを使用して、記憶領域ファイルおよびスナップショット(.snp)ファイルを別のディスクにコピーするよう指定します。記憶領域.snpファイルは互いに異なるディスクに置かれ、関連する記憶領域(.rda)ファイルとも異なるディスクに置かれることに注意してください。これは、最適なパフォーマンスを得るために推奨されます。(この例では、options_file.optで各記憶領域ファイルに指定したディスクは、現在の記憶領域ファイルが置かれているディスクとは異なるものとします。)
$ RMU/COPY_DATABASE/OPTIONS=OPTIONS_FILE.OPT MF_PERSONNEL
オプション・ファイルは、次のとおりです。
$ TYPE OPTIONS_FILE.OPT EMPIDS_LOW /FILE=DISK1:[CORPORATE.PERSONNEL]EMPIDS_LOW.RDA - /SNAPSHOT=(FILE=DISK2:[CORPORATE.PERSONNEL]EMPIDS_LOW.SNP) EMPIDS_MID /FILE=DISK3:[CORPORATE.PERSONNEL]EMPIDS_MID.RDA - /SNAPSHOT=(FILE=DISK4:[CORPORATE.PERSONNEL]EMPIDS_MID.SNP) EMPIDS_OVER /FILE=DISK5:[CORPORATE.PERSONNEL]EMPIDS_OVER.RDA - /SNAPSHOT=(FILE=DISK6:[CORPORATE.PERSONNEL]EMPIDS_OVER.SNP) DEPARTMENTS /FILE=DISK7:[CORPORATE.PERSONNEL]DEPARTMENTS.RDA - /SNAPSHOT=(FILE=DISK8:[CORPORATE.PERSONNEL]DEPARTMENTS.SNP) SALARY_HISTORY /FILE=DISK9:[CORPORATE.PERSONNEL]SALARY_HISTORY.RDA - /SNAPSHOT=(FILE=DISK10:[CORPORATE.PERSONNEL]SALARY_HISTORY.SNP) JOBS /FILE=DISK7:[CORPORATE.PERSONNEL]JOBS.RDA - /SNAPSHOT=(FILE=DISK8:[CORPORATE.PERSONNEL]JOBS.SNP) EMP_INFO /FILE=DISK9:[CORPORATE.PERSONNEL]EMP_INFO.RDA - /SNAPSHOT=(FILE=DISK10:[CORPORATE.PERSONNEL]EMP_INFO.SNP) RESUME_LISTS /FILE=DISK11:[CORPORATE.PERSONNEL]RESUME_LISTS.RDA - /SNAPSHOT=(FILE=DISK12:[CORPORATE.PERSONNEL]RESUME_LISTS.SNP) RESUMES /FILE=DISK9:[CORPORATE.PERSONNEL]RESUMES.RDA - /SNAPSHOT=(FILE=DISK10:[CORPORATE.PERSONNEL]RESUMES.SNP)
例7
次の例では、あるディレクトリから別のディレクトリにmf_personnelデータベースをコピーします。また、アフター・イメージ・ジャーナル・ファイルを追加するAij_Options修飾子を指定することによって、aij_journal_options.optファイルに示すとおり、データベース・コピーでの固定サイズのジャーナルを有効にし、いくつかのジャーナル・オプションを設定します。
$ RMU/COPY_DATABASE MF_PERSONNEL/DIRECTORY=DB1:[ROOT] - /AIJ_OPTIONS=AIJ_JOURNAL_OPTIONS.OPT $ TYPE AIJ_JOURNAL_OPTIONS.OPT JOURNAL IS ENABLED - RESERVE 2 - ALLOCATION IS 1024 - BACKUPS ARE MANUAL - OVERWRITE IS DISABLED - SHUTDOWN_TIMEOUT IS 120 - CACHE IS DISABLED ADD MF_PERS1 FILE DB2:[AIJONE]MF_PERS1.AIJ ADD MF_PERS2 FILE DB3:[AIJTWO]MF_PERS2.AIJ
例8
次の例では、Directory、FileおよびRoot修飾子の使用方法を示します。この例では、次のようになります。
- デフォルト・ディレクトリはDISK2:[DIR]と指定されています。
- データベース・ルート・ファイルのターゲット・ディレクトリとファイル名は、Root修飾子で指定されています。Root修飾子で指定したターゲット・ディレクトリは、Directory修飾子で指定したデフォルト・ディレクトリに優先します。したがって、Oracle RMUでデータベース・ルートをDISK3:[ROOT]にコピーし、COPYRDB.RDBという名前を付けます。
- EMPIDS_MID記憶領域のターゲット・ディレクトリは、DISK4:[FILE]です。Oracle RMUでEMPIDS_MIDをDISK4:[FILE]にコピーします。
- EMPIDS_LOW記憶領域のターゲット・ファイル名は、EMPIDSです。したがって、Oracle RMUでEMPIDS_LOW記憶領域をDISK2のデフォルト・ディレクトリ(Directory修飾子で指定)にコピーし、ファイル名をEMPIDS.RDAとします。
- EMPIDS_LOWスナップショット・ファイルのターゲットは、DISK5:[SNAP]EMPIDS.SNPです。したがって、Oracle RMUでEMPIDS_LOWスナップショット・ファイルをDISK5:[SNAP]EMPIDS.SNPにコピーします。
- mf_personnelデータベースのその他のすべての記憶領域ファイルとスナップショット・ファイルは、DISK2:[DIR]にコピーされます。これらの記憶領域のファイル名は元のままです。
$ RMU/COPY_DATABASE DISK1:[DB]MF_PERSONNEL.RDB - _$ /DIRECTORY=DISK2:[DIR] - _$ /ROOT=DISK3:[ROOT]COPYRDB.RDB - _$ EMPIDS_MID/FILE=DISK4:[FILE], - _$ EMPIDS_LOW/FILE=EMPIDS - _$ /SNAPSHOT=(FILE=DISK5:[SNAP]EMPIDS.SNP)
例9
次の例では、コピーされたデータベースで排他モードを禁止する方法を示します。ユーザーが許可されていないモードを使用して、コピーされたデータベースにアクセスしたときに返されるエラー・メッセージも示します。
$ RMU/COPY_DATABASE/TRANSACTION_MODE=NOEXCLUSIVE/DIRECTORY=[.COPY] - _$ MF_PERSONNEL.RDB %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery $ SQL SQL> ATTACH 'FILENAME mf_personnel.rdb'; SQL> SET TRANSACTION READ WRITE RESERVING EMPLOYEES FOR EXCLUSIVE WRITE; %RDB-E-BAD_TPB_CONTENT, invalid transaction parameters in the transaction parameter block (TPB) -RDMS-E-INVTRANOPT, the transaction option "EXCLUSIVE WRITE" is not allowed SQL>