Oracle Rdbの新規リリースのインストールとデータベースの変換の前に行う適切なバックアップ操作については、Oracle Rdbのインストレーションおよび構成ガイドを参照してください。
シングルファイルおよびマルチファイル・データベースの変換に関する重要な情報については、「説明」を参照してください。
RMU Convertコマンドは、システム表および索引の変換したコピーを作成するよう動作します。つまり、変換時にRDB$SYSTEM記憶領域が大きくなる可能性がありますが、変換プロセスによってシステム表が断片化する可能性はほぼありません。システム表のコピーが作成されるため、変換にかかる時間は、システム表に割り当てられている記憶域の量またはシステム表の行数、あるいはその両方に比例します。これは、通常データベースごとに数分です。ただし、データベースに非常に大きなシステム表がある場合、変換のコストが大きいこともあります。データベースの一部の表のバージョン数が多い場合、SQL EXPORTおよびIMPORT文を使用してデータベースを変換する方が効率的です。
変換後、システム表の両コピーともデータベースに格納されます。Commit修飾子では、変換されたコピーが選択され、元のコピーが削除されます。Rollback修飾子では、元のコピーが選択され、変換されたコピーが削除されます。データベースの変換時にNocommit修飾子を選択した場合、CommitまたはRollback修飾子を後で指定できます。
システム表の両方のコピーがある間は、データベースはOracle Rdbリリース7.1で使用できますが、それより前のバージョンでは使用できません。また、システム表の両方のコピーに矛盾が出ないよう、データベースに対するDDL(データ定義言語)操作はできません。CommitまたはRollback修飾子を指定した後は再び、データベースに対してDDL操作を行えます。
Oracle Rdbバージョン6.1より前に作成されたマルチファイル・データベースを、Nocommit修飾子を指定したRMU Convertコマンドを使用して変換し、その後RMU ConvertコマンドにRollback修飾子を指定して以前のデータベース構造レベルに戻すと、後続の検証処理でRMU-W-PAGTADINV警告メッセージが返されることがあります。詳細は、「使用上の注意」を参照してください。
database-list
database-list parameterは、変換するデータベースのリストです。リストの項目は、データベース・ルート・ファイルのファイル指定またはデータ・ディクショナリ・パス名です。データベース・ルート・ファイルのファイル指定にはワイルドカードを使用できます。
データ・ディクショナリ・パス名にはワイルドカードを使用できません。
Commit
Nocommit
データベースの変換を永続的にします。Commit修飾子を指定した場合、データベースはOracle Rdbリリース7.1データベースに変換され、以前のバージョンに戻すことはできません。デフォルトはCommitです。Nocommit修飾子を指定した場合、データベースがOracle Rdbリリース7.1に変換され、後で以前のバージョンにロールバックできます。
Nocommit修飾子は、新規バージョンのOracle Rdbに対してアプリケーションをテストする場合に役立ちます。問題があった場合、以前のバージョンにロールバックできます。アプリケーションが新規バージョンで正しく動作することが確認できたら、変換したデータベースをコミットします。
Confirm
Noconfirm
変換操作時にユーザーの入力を要求します。Confirm修飾子を指定した場合、データベースおよびaijバックアップ・ファイルに問題がないかどうかがOracle RMUから確認されます。変換するデータベースでアフター・イメージ・ジャーナルが有効な場合、続行するかどうかがOracle RMUから確認され、アフター・イメージ・ジャーナルを一時的に無効にすることが示されます。Path
ファイル指定ではなく、データ・ディクショナリ・パス名でデータベースを指定したことを示します。Path修飾子は、位置依存修飾子です。Prefix_Collection=option
データベースをOracle Rdbの7.0より前のリリースからリリース7.1に変換する場合、Prefix_Collection修飾子を使用して、すべてのシステムおよびユーザー・ソート索引に対するソート索引接頭辞カーディナリティの収集について、Enabled、Enabled FullまたはDisabledを指定します。Prefix_Collection修飾子には、次のオプションが使用できます。
- Disabled
索引接頭辞カーディナリティの収集を無効にするよう指定します。- Enabled
デフォルトの収集を行うよう指定します。Oracle Rdbオプティマイザで、後で問合せの最適化に使用できる索引列のおおよそのカーディナリティ値が収集されます。
Enabled Estimate
すべての索引に対する接頭辞カーディナリティ値を概算するよう指定します。- Enabled Collect
RMU Collectコマンドをコールし、すべての索引に対する接頭辞カーディナリティ値を収集するよう指定します。- Fullでは、必要に応じて追加のI/Oを行い、隣接の索引ノードのキー値の変更がカーディナリティ値に反映されるよう要求します。
- Full=Estimate
すべての索引に対する接頭辞カーディナリティ値を概算するよう指定します。- Full=Collect
RMU Collectコマンドをコールし、すべての索引に対する接頭辞カーディナリティ値を収集するよう指定します。
Reserve=(Area=n, Aij=n)
記憶領域または.aijファイル、あるいはその両方に対する領域をデータベース・ルート・ファイルに確保します。nは、領域を確保する対象の記憶領域または.aijファイルの数に置き換えます。シングルファイル・データベースに対する領域は確保できないことに注意してください。シングルファイル・データベースの.aijファイルは確保できますが、データベースの変換後は、データベースをバックアップおよびリストアしないかぎり、これを変更できません。
データベースの変換時、追加の記憶領域または.aijファイルが必要なことが予測される場合、この修飾子は役立ちます。新たに記憶領域または.aijファイルを追加するには、ユーザーがデータベースにアタッチしていないことが必要となるため、データベースの変換時にこれを追加することで、ユーザーがデータベースにアクセスできない時間を最小限にできます。
デフォルトでは、1つの.aijファイルが確保され、記憶領域ファイルは確保されません。
Rollback
Norollback
Oracle Rdbリリース7.2データベースに変換された(が、コミットされていない)データベースを以前のバージョンに戻します。技術的、パフォーマンスまたはビジネス上の理由から、データベースを以前のバージョンに戻す場合があります。Norollback修飾子では、変換されたデータベースを以前のバージョンに戻せないようにします。デフォルトはNorollback修飾子です。
1つのRMU ConvertコマンドでNocommit修飾子とRollback修飾子の両方を指定した場合、RMU Convertコマンドを実行すると、データベースはOracle Rdbリリース7.2に変換され、すぐに以前のバージョンにロールバックされます。
この修飾子は、7.0または7.1のいずれかのリリースから変換する場合にのみ有効です。
- データベースに対してRMU Convertコマンドを使用するには、データベースのルート・ファイル・アクセス制御リスト(ACL)にRMU$CONVERTまたはRMU$RESTORE権限を持っているか、OpenVMSのSYSPRVまたはBYPASS権限を持っている必要があります。
- RMU Convertコマンドでは、データベース・ルート・ファイル、RDB$SYSTEM領域および.rujファイルを挿入するディレクトリに対する読取り/書込みアクセス権が必要です。
- マルチセグメント索引カーディナリティを、変換操作の一部として、または完了後すぐに更新することをお薦めします。
RDB$SYSTEM記憶領域が読取り専用アクセスに設定されている場合、格納されたカーディナリティ値が実際のカーディナリティ値と異なることがあります。
RMU Convertコマンドを発行する際にConfirmおよびCommit修飾子を使用すると、マルチセグメント索引カーディナリティを実際の索引の値で更新するかどうかがOracle RMUから確認され、更新にかかる時間の見積りが示されます。変換操作の一部としてこれらのカーディナリティを実際の値で更新しないことを選択した場合、またはConfirm修飾子を使用しない場合、Oracle RMUでマルチセグメント索引カーディナリティが概算値で更新されます。このような場合、RMU Collect Optimizer_Statisticsコマンドを発行して、できるだけ早くカーディナリティを実際の値で更新する必要があります。詳細は、第1.15節を参照してください。- データベースの変換が(システム障害またはOracle Rdbモニターの停止などの理由で)完了しなかった場合、RMU Convertコマンドを後で再実行できます。後で変換プロセスを完了する機能によって、変換途中の破損したデータベースを保持することが避けられます。
- RDB$SYSTEM記憶領域の属性が読取り専用アクセスに設定されている場合、RMU Convertコマンドでデータベースの変換が開始され、変換されたデータベースの属性が読取り/書込みアクセスに再設定されます。属性を読取り専用アクセスに再設定するには、SQL ALTER DATABASE文を使用します。RDB$SYSTEM記憶領域が、書込みのできないデバイスに置かれている場合、データベースの変換は失敗し、エラー・メッセージが返されます。
- 次の条件が真の場合、Prefix_Collectionパラメータを指定するよう求められます。
- Prefix_Collection修飾子が指定されていません。
- RMU Convertプロセスがバッチ・ジョブとして実行されていません。
- Noconfirm修飾子が指定されていません。
プロンプトへの応答として、Prefix_Collection=Enabledの場合は"E(NABLE)"、Prefix_Collection=Fullの場合は"F(ULL)"、Prefix_Collection=Disabledの場合は"D(ISABLE)"、接頭辞カーディナリティの設定を変更しない場合はデフォルトの"I(GNORE)"を入力します。
例1次の例の最初のコマンドでは、拡張可能な.aijファイルを持つOracle Rdbリリース7.0データベースをOracle Rdbリリース7.2データベースに変換します。最初のコマンドにNocommit修飾子が指定されているため、変換したデータベース(Oracle Rdbリリース7.2データベース)を元のOracle Rdbリリース7.0データベースにロールバックできます。
データベースの変換時、アフター・イメージ・ジャーナルは無効になります。データベースの変換後、拡張可能な.aijファイルが新たに作成され、アフター・イメージ・ジャーナルが再度有効になります。.aijファイルはバージョン固有であることに注意してください。.aijファイルの古いバージョンと新しいバージョンとの間に矛盾があるため、変換後全体バックアップ操作を行う必要があります。
2番目のコマンドでは、変換されたデータベースが元のデータベースにロールバックされます。
$RMU/CONVERT/CONFIRM/NOCOMMIT MF_PERSONNEL.RDB %RMU-I-RMUTXT_000, Executing RMU for Oracle Rdb V7.2-00 Are you satisfied with your backup of DISK1:[TESTS]MF_PERSONNEL.RDB;1 and your backup of any associated .aij files [N]? Y %RMU-I-AIJ_DISABLED, after-image journaling is being disabled temporarily for the Convert operation %RMU-I-LOGCONVRT, database root converted to current structure level %RMU-S-CVTDBSUC, database DISK1:[TESTS]MF_PERSONNEL.RDB;1 successfully converted from version V7.0 to V7.2 %RMU-I-LOGCREAIJ, created after-image journal file DISK1:[TESTS]BACKUP_AFTER1.AIJ;2 %RMU-I-LOGMODSTR, activated after-image journal "AFTER1" %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery $RMU/CONVERT/ROLLBACK MF_PERSONNEL.RDB %RMU-I-RMUTXT_000, Executing RMU for Oracle Rdb V7.2-00 Are you satisfied with your backup of DISK1:[TESTS]MF_PERSONNEL.RDB;1 and your backup of any associated .aij files [N]? Y %RMU-I-AIJ_DISABLED, after-image journaling is being disabled temporarily for the Convert operation %RMU-I-LOGCONVRT, database root converted to current structure level %RMU-I-CVTROLSUC, CONVERT rolled-back for DISK1:[TESTS]MF_PERSONNEL.RDB;1 to version V7.0 %RMU-I-CANTENAAIJ, The JOURNAL is now DISABLED. RMU CONVERT can not enable the JOURNAL for previous versions. You must do this manually. %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery
例2
この例は、変換時に固定サイズの.aijジャーナルが使用されていること以外、例1と同じです。この例の最初のコマンドでは、固定サイズの.aijファイルを持つOracle Rdbリリース7.1データベースをOracle Rdbリリース7.2データベースに変換します。最初のコマンドにNocommit修飾子が指定されているため、変換したデータベース(Oracle Rdbリリース7.2データベース)を元のOracle Rdbリリース7.1データベースにロールバックできます。
データベースの変換時、アフター・イメージ・ジャーナルは無効になります。データベースの変換後、Oracle RMUによって次の固定サイズの.aijファイルがアクティブになり、アフター・イメージ・ジャーナルが有効になります。.aijファイルはバージョン固有であることに注意してください。古い.aijファイルは新たに変換されたデータベースに不適合なため、変換後に全体バックアップ操作を行う必要があります。
2番目のコマンドでは、変換されたデータベースが元のデータベースにロールバックされます。
$RMU/CONVERT/CONFIRM/NOCOMMIT MF_PERSONNEL.RDB %RMU-I-RMUTXT_000, Executing RMU for Oracle Rdb V7.2-00 Are you satisfied with your backup of DISK1:[TESTS]MF_PERSONNEL.RDB;1 and your backup of any associated .aij files [N]? Y %RMU-I-AIJ_DISABLED, after-image journaling is being disabled temporarily for the Convert operation %RMU-I-LOGCONVRT, database root converted to current structure level %RMU-S-CVTDBSUC, database DISK1:[TESTS]MF_PERSONNEL.RDB;1 successfully converted from version V7.1 to V7.2 %RMU-I-LOGMODSTR, activated after-image journal "AFTER2" %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery $RMU/CONVERT/ROLLBACK MF_PERSONNEL.RDB %RMU-I-RMUTXT_000, Executing RMU for Oracle Rdb V7.2-00 Are you satisfied with your backup of DISK1:[TESTS]MF_PERSONNEL.RDB;1 and your backup of any associated .aij files [N]? Y %RMU-I-AIJ_DISABLED, after-image journaling is being disabled temporarily for the Convert operation %RMU-I-LOGCONVRT, database root converted to current structure level %RMU-I-CVTROLSUC, CONVERT rolled-back for DISK1:[TESTS]MF_PERSONNEL.RDB;1 to version V7.1 %RMU-I-CANTENAAIJ, The JOURNAL is now DISABLED. RMU CONVERT can not enable the JOURNAL for previous versions. You must do this manually. %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery
例3
次のコマンドでは、DISK1:[RICK]とそのサブディレクトリのすべてのデータベース、およびデータ・ディクショナリ・パス名で識別されるSPECIAL_DBデータベースが変換されます。Noconfirm修飾子が指定されているため、Oracle RMUからユーザー入力は要求されません。Nocommit修飾子が指定されていないため、デフォルト修飾子のCommitが使用され、変換したデータベースはロールバックできません。
$ RMU/CONVERT/NOCONFIRM DISK1:[RICK...]*.RDB,CDD$TOP.RICK.SPECIAL_DB - _$ /PATH
例4
次のコマンドでは、Oracle Rdbリリース7.0データベースをリリース7.2に変換します。また、変換後のデータベースのデータベース・ルート・ファイルに、4つの.aijファイルに対する領域を確保します。Convertコマンドの発行時、アフター・イメージ・ジャーナルは有効ではありません。
$RMU/CONVERT/CONFIRM/RESERVE=(AIJ=4)/COMMIT MF_PERSONNEL %RMU-I-RMUTXT_000, Executing RMU for Oracle Rdb V7.2-00 Are you satisfied with your backup of DISK1:[TESTS]MF_PERSONNEL.RDB;1 and your backup of any associated .aij files [N]? Y %RMU-I-LOGCONVRT, database root converted to current structure level %RMU-W-DOFULLBCK, full database backup should be done to ensure future recovery %RMU-S-CVTDBSUC, database DISK1:[TESTS]MF_PERSONNEL.RDB;1 successfully converted from version V7.0 to V7.2
例5
次の例に、Confirm修飾子を指定したRMU Convertコマンドをバッチ・ジョブから発行する場合のバッチ・ファイルの内容を示します。
$ RMU/CONVERT/COMMIT/CONFIRM USER1:[COLLECT.V71DB]MF_PERSONNEL Y Y