ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

この機能は本来、加算的なものです。つまり、一旦RESERVE句を発行すると、ジャーナル・ファイルの予約済スロットの数は減らせません。10個のスロットを予約した後、さらに5個のスロットを予約した場合、これら15個のジャーナル・ファイル用スロットに、最初に取得する1つの事前予約済スロットを加えた合計16個のスロットが予約されたことになります。

新規のジャーナル・ファイルをデータベースに追加する前に、スロットを予約するか、既存のジャーナル・ファイルを削除しておく必要があります。

単一ファイルのデータベースに対しては、ジャーナル・ファイルを予約できません。

### RESERVE n SEQUENCES

データベース内でスロットが予約される順序の数を指定します。順序は32個ずつ予約されます。そのため、nに32未満の値を指定した場合でも、32個のスロットが予約されます。また33を指定した場合は64個のスロットが予約されるといったように、以降同じ要領で続きます。

RESERVE SEQUENCES句を使用すると、将来CREATE SEQUENCE文で使用できるスロットをデータベース・ルート・ファイルに予約できます。順序は、順序スロットが使用できる場合にのみ作成できます。スロットは、DROP SEQUENCE文、またはALTER DATABASE文のRESERVE SEQUENCES句を実行した後に使用可能になります。

### RESERVE n STORAGE AREAS

データベース内でスロットが予約される記憶域の数を指定します。記憶域用のスロットの数には、ゼロより大きい正の数を指定する必要があります。

RESERVE STORAGE AREA句を使用すると、将来ALTER DATABASE文のADD STORAGE AREA句で使用できるスロットをデータベース・ルート・ファイルに予約できます。記憶域は、使用可能な記憶域スロットが存在する場合にのみ追加できます。スロットが使用できるようになるのは、DROP STORAGE AREA句またはRESERVE STORAGE AREA句を発行した後です。

この機能は本来、加算的なものです。つまり、一旦RESERVE句を発行すると、記憶域の予約済スロットの数は減らせません。10個のスロットを予約した後、さらに5個のスロットを予約した場合、記憶域に対して合計15個のスロットが予約されたことになります。

新規の記憶域をデータベースに追加する前に、スロットを予約するか、既存の記憶域を削除しておく必要があります。

RESERVE STORAGE AREA句を指定しない場合、予約済記憶域のデフォルト数はゼロです。

### ROW CACHE IS ENABLED

### ROW CACHE IS DISABLED

行キャッシュを有効にするかどうかを指定します。

行キャッシュを有効にしても、キャッシュが作成され、そのキャッシュが1つ以上の記憶域に割り当てられるまで、データベースの操作に影響はありません。

行キャッシュを無効にしても、それまでに作成され割り当てられているキャッシュはすべて保持され、行キャッシュを再度有効にすれば使用できるようになります。

行キャッシュを使用するには、次の条件が満たされている必要があります。

- クラスタ・ノードの数が1つであること

- アフター・イメージ・ジャーナルが有効になっていること

- 高速コミットが有効になっていること

- キャッシュ・スロットが1つ以上予約されていること

- 行キャッシュが有効になっていること

RMU Dump Headerコマンドを使用すると、行キャッシュを使用するための要件が満たされているかどうかをチェックできます。次に示すコマンド出力には、満たされていない要件ごとに警告が表示されています。

       .
       .
       .
    Row Caches...

    - Active row cache count is 0

    - Reserved row cache count is 1

    - Sweep interval is 1 second

    - Default cache file directory is ""

    - WARNING: Maximum node count is 16 instead of 1

    - WARNING: After-image journaling is disabled

    - WARNING: Fast commit is disabled

.
.
.

### SAME BACKUP FILENAME AS JOURNAL

実行中、バックアップ・サーバーによって、ジャーナル・ファイルに割り当てられているのと同じ名前がバックアップ・ファイルに割り当てられます。これは、新規ファイル作成時のクイック形式のバックアップです。

注意 これらのファイルがなんらかの事故により消去されないよう、過去のジャーナル・ファイルをテープなどのメディアに保存することをお薦めします。

### SECURITY CHECKING

Oracle Rdbでは従来、オペレーティング・システムのセキュリティ・レイヤー（OpenVMSオペレーティング・システムのUIC識別子および権利識別子など）を使用してセキュリティ・チェックを実行していました。

データベースに格納されているアクセス制御リスト（ACL）情報には、付与された権限マスク、および一意の整数値（UICなど）で表されたユーザーのセットが含まれています。

セキュリティ・チェックには、次の2つのモードがあります。

1. SECURITY CHECKING IS EXTERNAL
   これがデフォルトです。外部セキュリティ・チェックでは、データベース・ユーザーはオペレーティング・システムのユーザー識別コード（UIC）として認識され、ロールは特殊な権利識別子またはグループとして認識されます。PERSONAサポートは、次の方法で有効化または無効化します。

   - SECURITY CHECKING IS EXTERNAL (PERSONA SUPPORT IS ENABLED)
     OpenVMSユーザーの完全偽装が有効になります。つまり、UIC識別子および付与された権限識別子を使用して、アクセス制御リストの権限チェックが実行されます。

   - SECURITY CHECKING IS EXTERNAL (PERSONA SUPPORT IS DISABLED)
     OpenVMSユーザーの完全偽装が無効になります。アクセス制御リストの権限のチェックには、UICのみが使用されます。新規のデータベース、または旧バージョンのOracle Rdbから変換されたデータベースでは、これがデフォルトです。

2. SECURITY CHECKING IS INTERNAL
   このモードでは、Oracle Rdbによりユーザー（ユーザー名とUIC）およびロール（権利識別子）がデータベースに記録されます。このアクションは、CREATE USER文およびCREATE ROLE文では明示的に実行され、GRANTでは暗黙的に実行されます。この型のデータベースは、現在では別のシステムへ移動でき、ユーザーおよびロールの名前にのみ依存します。

   - SECURITY CHECKING IS INTERNAL (ACCOUNT CHECK IS ENABLED)
     ACCOUNT CHECK句を使用すると、Oracle Rdbにおいて、データベースに格納されているユーザー名（CREATE USER文を使用して定義されたユーザー名など）を使用した現行データベース・ユーザーの検証が確実に実行されます。これにより、同一の名前を持つ他のユーザーによるデータベースへのアクセスを防止できます。そのため、この句を使用すると、セキュリティの侵害を防止できる場合もあります。
     OpenVMSでACCOUNT CHECK IS ENABLED句を指定すると、ユーザー・セッションには、データベースに記録されているものと同じユーザー名およびUICが使用されます。

   - SECURITY CHECKING IS INTERNAL (ACCOUNT CHECK IS DISABLED)
     ACCOUNT CHECK IS DISABLED句を指定すると、ユーザー名が異なる場合でもUIC（プロファイルIDとも呼ばれる）が一致するユーザーであれば同一のユーザーであるとみなされます。これにより、複数のOpenVMSユーザーに同一のUICを割り当てることができます。

### SET TRANSACTION MODES

指定したモードのみ有効になり、それ以外の事前に定義したモードはすべて無効になります。これはオフライン操作で、排他的なデータベース・アクセスが必要です。たとえば、データベースを読取り専用アクセス用に使用し、その他すべてのトランザクション・モードを無効にする場合は、次の文を指定します。

    SQL> ALTER DATABASE FILENAME mf_personnel
    cont>   SET TRANSACTION MODES (READ ONLY);

否定形のトランザクション・モードまたはNONEを指定すると、すべてのトランザクションの使用が無効になります。すべてのトランザクションの使用の無効化は、物理データベースを大幅に再構築する場合などに便利です。トランザクション・モードを再度有効にする場合は、ALTER DATABASE文を実行します。

### SHARED MEMORY IS SYSTEM

### SHARED MEMORY IS PROCESS

### SHARED MEMORY IS PROCESS RESIDENT

データベース・ルート・グローバル・セクション（有効時のグローバル・バッファを含む）をシステム領域に作成するかプロセス領域に作成するかを決定します。デフォルトはPROCESSです。

プロセス領域に作成されたグローバル・セクションを使用する場合は、複数のユーザーで物理メモリーを共有します。また、OpenVMSオペレーティング・システムにより、行キャッシュが各ユーザーのプライベート・アドレス空間にマップされます。この結果、すべてのユーザーは空きのある仮想アドレス範囲に制限され、それぞれがオーバーヘッドに応じた一定の割合でメモリーを使用することになります。多数のユーザーがデータベースにアクセスした場合、オーバーヘッドは大きくなります。

多数のユーザーがデータベースにアクセスする場合は、SHARED MEMORY IS SYSTEMの使用を検討します。これを使用すると、ユーザーはメモリーのシステム領域を共有することになり、メモリーのプロセス領域に関連するオーバーヘッドは発生しないため、ユーザーはより多くの物理メモリーを使用できるようになります。

デフォルトはSHARED MEMORY IS PROCESSです。

SHARED MEMORY句では、データベース・ルート・グローバル・セクション（有効時のグローバル・バッファを含む）またはキャッシュ・グローバル・セクションを、システム領域に作成するかプロセス領域に作成するかを指定します。RESIDENTオプションは、グローバル・セクション・メモリーを常駐させることにより、PROCESSオプションを拡張します。

SHARED MEMORY IS PROCESS RESIDENTを有効化または無効化するには、コマンドを実行するプロセスに、VMS$MEM_RESIDENT_USER権利識別子が付与されている必要があります。この機能を有効にした場合は、データベースをオープンするためのプロセスにもVMS$MEM_RESIDENT_USER権利識別子が付与される必要があります。この機能の利用時にはRMU Openコマンドの使用をお薦めします。

### SHUTDOWN TIME IS n MINUTES

重大な障害が発生した際にデータベース・システムがデータベースを停止するまでに待機する時間（分）を指定します。この停止時間は、アフター・イメージ・ジャーナル・サブシステムが使用不可になった時点からデータベースが停止する時点までの時間（分）です。アフター・イメージ・ジャーナルの停止中は、データベースのあらゆる更新アクティビティが停止します。

NOTIFY IS句により通知が有効になっている場合は、有効なすべての演算子クラスにオペレータ・メッセージがブロードキャストされます。

アフター・イメージ・ジャーナルを停止状態から復帰させ、通常のデータベース操作を再開するには、.aijファイルを使用可能な状態にする必要があります。そのためには、既存の変更済ジャーナル・ファイルをバックアップします。ジャーナル・ファイルの予約が使用可能であれば、新規のジャーナル・ファイルをアフター・イメージ・ジャーナル・サブシステムに追加することもできます。アフター・イメージ・ジャーナルの停止時間が終了する前にジャーナル・ファイルを使用可能にしない場合、データベースは停止し、アクティブなデータベース・アタッチメントはすべて終了します。

アフター・イメージ・ジャーナルの停止期間は、固定サイズの.aijファイルが使用されている場合にのみ有効です。単独の拡張可能.aijファイルが使用されている場合、デフォルトでは、.aijファイルが使用不可になった時点ですべてのデータベース操作が停止します。

デフォルトは60分です。最小値は1分、最大値は4320分（3日）です。

### SNAPSHOT ALLOCATION IS snp-pages PAGES

スナップショット・ファイルに割り当てられているページ数を変更します。デフォルトは100ページです。スナップショット・ファイルを無効にしている場合は、スナップショットの割当てを0ページに設定できます。

### SNAPSHOT EXTENT IS extent-pages PAGES

### SNAPSHOT EXTENT IS (extension-options)

各スナップショットまたは記憶域ファイル・エクステントのページの数を変更します。記憶域ファイルのデフォルトのエクステントは100ページです。

ファイル・エクステントの制御が単純な場合は、ページ数を指定します。複数データベースをより厳密に制御するには、かわりにMINIMUM、MAXIMUMおよびPERCENT GROWTHのエクステント・オプションを使用します。

MINIMUM、MAXIMUM、およびPERCENT GROWTHパラメータを使用する場合は、それらを丸カッコで囲む必要があります。

### SNAPSHOT IS ENABLED IMMEDIATE

### SNAPSHOT IS ENABLED DEFERRED

読取り/書込みトランザクションにおいて、読取り専用トランザクションで使用するスナップショット・ファイルにデータベースの変更を書き込むタイミングを指定します。

デフォルトはENABLED IMMEDIATEオプションで、これにより読取り/書込みトランザクションでは、読取り専用トランザクションがアクティブかどうかにかかわらず、変更した行のコピーがスナップショット・ファイルに書き込まれます。デフォルトはENABLED IMMEDIATEですが、スナップショットをENABLED DEFERREDに設定した場合、データベースをデフォルト設定に返すには、ENABLEDオプションとIMMEDIATEオプションの両方を指定する必要があります。

ENABLED DEFERREDオプションを指定すると、読取り/書込みトランザクションにおいて（読取り専用トランザクションがアクティブでないかぎり）変更した行のコピーのスナップショット・ファイルへの書込みが回避できます。この方法でスナップショットへの書込みを遅延することにより、読取り/書込みトランザクションのパフォーマンスが向上します。ただし、アクティブな読取り/書込みトランザクションの開始より後に開始された読取り専用トランザクションは、すべてのアクティブな読取り/書込みユーザーがそれらのトランザクションを完了するまで待機する必要があります。

### SNAPSHOT IS DISABLED

スナップショットへの書込みを無効に指定します。デフォルトでは、スナップショットへの書込みは有効です。

このモードでは、READ ONLYトランザクションはいずれも自動的にREAD WRITEモードに変換されます。

### STATISTICS COLLECTION IS ENABLED

### STATISTICS COLLECTION IS DISABLED

データベースに関する統計収集を有効にするか無効にするかを指定します。データベースに関する統計を無効にした場合、データベースにアタッチされているプロセスに統計は表示されません。統計の表示には、RMU Show Statisticsコマンドを使用します。

デフォルトはSTATISTICS COLLECTION IS ENABLEDです。ALTER DATABASE文およびIMPORT文を使用すると統計を無効にできます。

RMU Show Statisticsコマンドの詳細は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

統計収集を有効にする場合は、論理名RDM$BIND_STATS_ENABLEを定義します。統計収集を使用する場合の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。

### SYNONYMS ARE ENABLED

CREATE SYNONYM文、ALTER...RENAME TO文およびRENAME文に使用するオプションのシステム表RDB$OBJECT_SYNONYMSを追加します。省略した場合のデフォルトでは無効になります。

### storage-area-params-1

### storage-area-params-2

記憶域の特性を制御するパラメータです。これらのパラメータの詳細は、「CREATE STORAGE AREA句」を参照してください。

### THRESHOLD IS number-buffers BUFFERS

この数値は、プリフェッチの開始前に検出される必要がある順次バッファ・アクセスの数を表します。デフォルトは4バッファです。

THRESHOLDオプションを指定する場合は、DETECTED ASYNC PREFETCH句がすでに指定されている必要があります。ASYNC PREFETCH句にTHRESHOLDオプションを指定しようとすると、エラーが表示されます。

### TRANSACTION INTERVAL IS number-txns

TRANSACTION INTERVAL IS句では、トランザクション順序番号（TSN）の範囲のサイズを指定します。number-txnsはTSNの個数です。Oracle Rdbでは、トランザクション順序番号を使用してデータベースの整合性が確保されます。NO COMMIT TO JOURNAL OPTIMIZATIONを指定すると、Oracle RdbではTSNが一度に1つずつユーザーに割り当てられます。ジャーナル最適化オプションを有効にすると、Oracle Rdbでは一定の範囲のTSNがあらかじめ各ユーザーに割り当てられます。一定の範囲のTSNを割り当てることにより、各トランザクションのデータベース・ルートにコミット情報を書き込む必要がなくなります。Oracle Rdbでは、各ユーザーに割り当てられたTSN範囲を除くすべてのトランザクション情報が.aijファイルに書き込まれます。TSN範囲はルート・ファイルに書き込まれます。

トランザクション間隔の値（TSN範囲）には、8〜1024のいずれかの数値を指定する必要があります。デフォルト値は256です。

通常、データベースのユーザー数が少ない場合、またはどのユーザー・セッションも所要時間が長い場合は、トランザクション間隔を長めに指定します。データベースのユーザー数が多い場合や、ユーザー・セッションの所要時間が短い場合は、トランザクション間隔を短めに指定します。

### txn-modes

データベースのトランザクション・モードを指定します。

モード | 説明
--- | ---
トランザクション・タイプ
[NO]READ ONLY | データベースに対して読取り専用トランザクションを実行可能。
[NO]READ WRITE | データベースに対して読取り/書込みトランザクションを実行可能。
[NO] BATCH UPDATE | データベースに対してバッチ更新トランザクションを実行可能。このモードの実行では、セキュリティ機能やリカバリ・ユニット・ジャーナル・ファイルは適用されず、オーバーヘッドは発生しない。バッチ更新トランザクションは、テータベースの初期ロードに使用するためのものである。Oracle Rdbでは、このモードは無効にすることを推奨。
モードの予約
[NO] SHARED [READ | WRITE] | 表を共有モード用に予約可能。つまり、他のユーザーもこれらの表を使用できる。
[NO] PROTECTED [READ | WRITE] | 表を保護モード用に予約可能。つまり、他のユーザーもこれらの表から読み取ることができる。
[NO] EXCLUSIVE [READ | WRITE] | 表を排他アクセス用に予約可能。つまり、READ ONLYトランザクションであっても他のユーザーはこれらの表にアクセスできない。
ALL | 他のユーザーでもすべての表を使用可能。
NONE | 表へのアクセスは不可。

txn-modesの詳細は、「SET TRANSACTION文」を参照してください。

### USER LIMIT IS max-glo-buffers

各ユーザーが割り当てるグローバル・バッファの最大数を指定します。グローバル・バッファ・プールはすべてのユーザーで共有されるため、1ユーザーが割当て可能なグローバル・バッファの数の上限を定義する必要があります。この制限により、1ユーザーがRDM$BIND_BUFFERSを定義してグローバル・バッファ・プール内のすべてのバッファを使用することを防止できます。ユーザーごとの制限は、グローバル・バッファの総数より大きくできません。デフォルトのグローバル・バッファは5です。

ユーザーが割当て可能なグローバル・バッファの最大数は、グローバル・バッファの総数を、データベースへのアクセスが保証されているユーザーの総数で割ることにより決定します。たとえば、グローバル・バッファの総数が200であり、少なくとも10ユーザーに対してデータベースへのアクセスを保証する場合、1ユーザー当たりのグローバル・バッファの最大数は20に設定します。

VMSclusterシステムのパフォーマンスを最大化できるように、Global_Buffers修飾子を指定したRMU Openコマンドを使用してクラスタ内の各ノード上で2つのグローバル・バッファ・パラメータをチューニングします。

USER LIMIT ISパラメータはオンラインで変更できますが、その変更は次回データベースがオープンするまで反映されません。

グローバル・バッファ固有のバッファ・パラメータは、NUMBER ISパラメータおよびUSER LIMIT ISパラメータの2つのみです。これらは、プロセスごとにではなくノードごとに適用されます。

### USER 'username'

データベース・システムでの権限チェックに使用されるオペレーティング・システムのユーザー名を指定する文字列リテラルです。この句では、SYSTEM_USER値式の値も設定します。

### USING 'password'

USER句で指定されているユーザー名に対するユーザーのパスワードを指定する文字列リテラルです。

### WAIT n MINUTES FOR CLOSE

データベースが自動的にクローズするまでOracle Rdbが待機する時間を指定します。この待機時間中にいずれかのユーザーがアタッチすると、データベースはクローズされません。

WAIT句が指定されない場合、nのデフォルト値はゼロ（0）です。nの値には、ゼロ（0）〜35,791,394の範囲の値が可能です。ただし、Oracle Rdbでは、大きい値は使用しないことをお薦めします。

### WORKLOAD COLLECTION IS ENABLED

### WORKLOAD COLLECTION IS DISABLED

オプティマイザがワークロード情報をシステム表RDB$WORKLOADに記録するかどうかを指定します。このシステム表は、存在しない場合でも、WORKLOAD COLLECTION IS ENABLED句により作成されます。後でワークロード収集を無効にしても、RDB$WORKLOADシステム表およびそのデータは削除されません。

ワークロード・プロファイルは、データベース・ワークロードにおいて問合せにより使用される目的の表参照および列参照の詳細です。ワークロード収集を有効にすると、オプティマイザによりこれらの参照が収集され、RDB$WORKLOADシステム表に記録されます。このワークロードはさらに、ワークロードに関する便利な統計を記録するRMU Collect Optimizer-Statisticsコマンドにより処理されます。これらのワークロード統計は、より精密なアクセス計画を用意するためにオプティマイザにより実行時に使用されます。

デフォルトでは、ワークロード収集は無効です。

## 使用方法

> - 一部のデータベースまたは記憶域は、ユーザーがデータベースにアタッチされている間にその特性を変更できます。他のユーザーがデータベースにアタッチされている間に変更可能なデータベース全体のパラメータの詳細は、表6-2を参照してください。変更する特性が、データベースへのアクセス中には変更できない場合、次のエラー・メッセージが表示されます。

>       SQL> ATTACH 'FILENAME personnel';
>       SQL> ALTER DATABASE FILENAME personnel MULTISCHEMA IS ON;
>       %RDB-E-LOCK_CONFLICT, request failed due to locked resource
>       -RDMS-F-LCKCNFLCT, lock conflict on client
>       SQL> DISCONNECT DEFAULT;
>       SQL> ALTER DATABASE FILENAME personnel MULTISCHEMA IS ON;

>   特性を変更しているときにデータベースにアタッチしているユーザーは、デタッチして再度データベースにアタッチするまで、変更された特性が一部表示できません。
>   オンラインで変更できるデータベース特性および変更できないデータベース特性の詳細は、『Oracle Rdb7 Guide to Database Design and Definition』を参照してください。

> - ALTER DATABASE文はトランザクション・コンテキストでは実行されません。そのため、その結果は即時に反映され、ロールバックまたはコミットできません。

> - DEFAULT、LISTおよびRDB$SYSTEMの記憶域は削除できません。

> - LOCKING IS PAGE LEVEL句またはLOCKING IS ROW LEVEL句を（ALTER DATABASE文またはCREATE DATABASE文を使用して）データベース・レベルに指定した場合は、常に行レベル・ロックに設定されているRDB$SYSTEM記憶域およびDEFAULT記憶域を除き、すべての記憶域に反映されます。

> - SQLでは、データベース・パラメータに対する次の変更については、メタデータの更新内容がジャーナリングされません。

>   - ユーザー数の変更

>   - ノード数の変更

>   - ジャーナル・ファイル用スロットの予約

>   - 記憶域用スロットの予約

>   多くのメタデータ更新とは異なり、データベースおよび記憶域の更新は、暗黙的なコミット操作により完了します。これは、ALTER DATABASE文の中に誤りがあると、ROLLBACK文は発行できないことを意味します。

>   注意 ジャーナリングされないデータベース・パラメータを変更する場合は、それらを変更する前にデータベースをバックアップしておくことをお薦めします。ジャーナリングされない変更がなんらかの理由で正常に行われなかった場合は、データベースが破損します。データベースがバックアップしてある場合は、バックアップ・コピーからデータベースをリストアできます。

> - IMPORT文、EXPORT文およびALTER DATABASE文を使用する場合の詳細は、『Oracle Rdb7 Guide to Database Design and Definition』を参照してください。

> - 表6-1は、ユーザーがデータベースにアタッチしている間に更新可能なデータ定義を示しています。この表のコメント列に記載されていない情報および制限は、『Oracle Rdb7 Guide to Database Design and Definition』および『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

>   表6-1 ユーザーがデータベースにアタッチしている場合のデータ定義の更新
>   メタデータ 更新 | 同時実行が可能1 | コメント
>   --- | --- | ---
>   カタログ CREATE DROP | ○ | アクティブなトランザクションがアクセスしているカタログは削除できない。
>   照合順番 ALTER CREATE DROP | ○ | データベースまたはデータベースのドメインで使用されている照合順番は削除できない。
>   制約 ALTER CREATE DROP RENAME | ○ | アクティブなトランザクションが関連する表にアクセスしている制約は削除できない。
>   ドメイン ALTER CREATE DROP RENAME | ○ | ストアド・ルーチンで使用されるドメインは変更できない。
>   外部ルーチン ALTER CREATE DROP RENAME | ○ | 外部プロシージャおよび外部ファンクションを参照する。
>   索引 CREATE ALTER DROP RENAME | ○ | アクティブなトランザクションが関連する表にアクセスしている場合、索引を無効にしたり、索引定義を削除できない。
>   モジュール CREATE DROP ALTER RENAME | ○ | モジュールには、ストアド・プロシージャおよびストアド・ファンクションが含まれる。
>   アウトライン CREATE DROP ALTER RENAME | ○ |
>   プロファイル ALTER CREATE DROP RENAME | ○ |
>   保護 GRANT REVOKE | ○ | 権限の付与または取消しは、ユーザーがデタッチして再度データベースにアタッチした後に有効になる。
>   スキーマ CREATE DROP | ○ | アクティブなトランザクションがアクセスしているスキーマは削除できない。
>   ロール CREATE DROP ALTER RENAME | ○ |
>   記憶域 RESERVE | × | この変更はジャーナリングされない。
>   CREATE ADD DROP | ○ | データベース・ルート・ファイルに使用可能なスロット（記憶域用に予約されているが使用されていないスロット）が含まれている場合は同時実行が可能。現在データベースにアタッチしているユーザーには、更新内容は表示されない。変更内容がコミットされた後で新規ユーザーがデータベースにアタッチすると、新規の記憶域が表示される。これらのメタデータ操作は、暗黙的なコミット操作により完了する。
>   ALTER | コメントを参照 | 様々な記憶域パラメータを変更できる。詳細は、表6-2を参照。
>   記憶域マップ ALTER CREATE DROP | ○ |
>   順序 ALTER CREATE DROP RENAME | ○ |
>   シノニム ALTER CREATE DROP RENAME | ○ |
>   表 ALTER CREATE RENAME DROP TRUNCATE | ○ | アクティブなトランザクションで使用されている表の表定義は、削除または切捨てできない。
>   トリガー ALTER CREATE DROP RENAME | ○ | アクティブなトランザクションで使用されているトリガーのトリガー定義や、関連する表を参照するトリガー定義は削除できない。
>   ユーザー ALTER CREATE DROP RENAME | ○ |
>   ビュー CREATE DROP RENAME | ○ | ビューを削除した場合、それがアクティブ・ユーザーに影響するのは、トランザクションをコミットし、さらにユーザーがデータベースからデタッチして再度データベースにアタッチした後。
>   データベース ALTER | コメントを参照 | 記憶域パラメータなど、多くのデータベース・パラメータを変更できる。詳細は、表6-2を参照。
>   CREATE DROP | × | これらのメタデータ更新は、暗黙的なコミット操作により完了する。データベースにアタッチしているユーザーがいる場合にそのデータベースを削除しようとすると、-SYSTEM-W-ACCONFLICTというファイル・アクセス競合のエラー・メッセージが表示される。

1同時実行が可能とは、メタデータ更新の実行中に他のユーザーがデータベースにアタッチできることを意味します。ただし、この表のコメント列に記載されている、その他の制限が適用される場合もあります。

- 表6-2は、他のユーザーがデータベースにアタッチされている間に変更可能なデータベース・レベルのパラメータを示しています。自分自身も含め、いずれかのユーザーがアタッチしているデータベースは、作成または削除できません。この表のコメント列に記載されていない情報および制限は、『Oracle Rdb7 Guide to Database Design and Definition』および『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

  表6-2 ユーザーがデータベースにアタッチしている場合のデータベース全体のパラメータの更新
  メタデータ更新 | オンライン1 | コメント
  --- | --- | ---
  ルート・ファイル・パラメータ
  オープン・モード | ○ | データベースのオープン操作が要求されるまで、更新内容は表示されない。
  クローズまでの待機時間 | ○ | 更新内容が反映されるのは、変更が完了してデータベースが再度オープンした後。ただし、更新の前からデータベースにアタッチしていたユーザーには、更新内容は表示されない。
  ユーザーの数 | × | この変更はジャーナリングされない。
  ノードの数 | × | この変更はジャーナリングされない。
  バッファ・サイズ | × |
  バッファの数 | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  リカバリ・バッファの数 | ○ | 更新内容は、データベースのリカバリ・プロセスが新たに開始された時点で反映される。
  リカバリ・ユニット・ジャーナルの場所 | ○ |
  グローバル・バッファの有効化または無効化 | × |
  グローバル・バッファの数 | ○ | 更新内容が反映されるのは、変更が完了してデータベースが再度オープンした後。ただし、更新の前からデータベースにアタッチしていたユーザーには、更新内容は表示されない。
  1ユーザー当たりのグローバル・バッファの最大数 | ○ | 更新内容が反映されるのは、変更が完了してデータベースが再度オープンした後。ただし、更新の前からデータベースにアタッチしていたユーザーには、更新内容は表示されない。
  ページ転送 | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  調整可能なロック粒度 | × |
  キャリーオーバー・ロックの有効化または無効化 | × |
  Galaxyのサポート | × |
  ロックのタイムアウト時間 | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  統計の有効化または無効化 | × |
  カーディナリティ収集の有効化または無効化 | ○ |
  ワークロード収集の有効化または無効化 | ○ |
  非同期バッチ書込み | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  非同期プリフェッチ | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  検出済非同期プリフェッチ | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  増分バックアップ | ○ |
  ロック・パーティション化 | × |
  メタデータ変更の有効化または無効化 | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  チェックサムの計算 | × |
  順序の予約 | × |
  行キャッシュ・スロットの予約 | × | この変更はジャーナリングされない。
  行キャッシュの有効化または無効化 | × |
  行キャッシュの作成または追加 | × |
  行キャッシュの変更 | × |
  行キャッシュの削除 | × |
  行キャッシュの属性 | × |
  スナップショット・ファイルの有効化または無効化 | × |
  スナップショット・ファイルへの即時書込みまたは書込み遅延 | × |
  スナップショット・チェックサムの計算 | × |
  ジャーナルの予約 | × | この変更はジャーナリングされない。
  ジャーナリングの有効化または無効化 | × |
  LogMinerのサポート | × |
  ジャーナルの追加 | ○ | データベース・ルート・ファイルに使用可能なスロット（ジャーナル・ファイル用に予約されているが使用されていないスロット）が含まれている場合はオンライン変更が可能。
  ジャーナルの変更 | ○ |
  ジャーナルの削除 | ○ | 使用中のジャーナル・ファイルは削除できない。
  ジャーナル名またはファイル名 | × |
  ジャーナルの割当て | ○ |
  ジャーナル・バックアップ・サーバー | ○ |
  ジャーナル・バックアップ・ファイル名 | ○ |
  ジャーナル・バックアップ・ファイル名の編集文字列 | ○ |
  ジャーナル・キャッシュ・ファイル名 | ○ |
  ジャーナル・エクステント | ○ |
  ジャーナル高速コミット | × |
  ジャーナルのチェックポイント間隔 | × |
  ジャーナルのチェックポイント時間 | × |
  ジャーナル最適化のためのジャーナル・コミット | × |
  ジャーナルのトランザクション間隔 | × |
  ジャーナル・ログ・サーバー | ○ |
  ジャーナルの上書き | ○ |
  ジャーナルの停止時間 | ○ |
  記憶域パラメータ
  記憶域の予約 | × | この変更はジャーナリングされない。
  デフォルトの記憶域の指定 | ○ |
  読取り/書込み属性 | ○ | 記憶域への排他アクセスが必要。
  割当て | ○ |
  拡張の有効化または無効化 | ○ | 現在データベースにアタッチしているユーザーには、更新内容は表示されない。更新内容は、変更の完了後に新規ユーザーがデータベースにアタッチすると表示される。
  拡張オプション | ○ |
  ロックレベル・オプション | × |
  しきい値 | ○ | 記憶域への排他アクセスが必要。
  スナップショット・ファイルの割当て | ○ | スナップショット・ファイルを切り捨てると、読取り専用トランザクションがブロックされる。
  スナップショット・チェックサムの割当て | × |
  スナップショット・ファイル拡張オプション | ○ |
  SPAMの有効化または無効化 | ○ | 記憶域への排他アクセスが必要。
  チェックサムの計算 | × |
  セキュリティ・パラメータ
  ファイル名の監査 | ○ | RMU Set Auditコマンドを使用する。
  アラーム名 | ○ | RMU Set Auditコマンドを使用する。
  監査の有効化または無効化 | ○ | RMU Set Auditコマンドを使用する。
  アラームの有効化または無効化 | ○ | RMU Set Auditコマンドを使用する。
  FIRSTフラグの監査 | ○ | RMU Set Auditコマンドを使用する。
  FLUSHフラグの監査 | ○ | RMU Set Auditコマンドを使用する。
  イベント・クラス・フラグの監査 | ○ | RMU Set Auditコマンドを使用する。

  1オンラインとは、メタデータ更新の実行中に他のユーザーがデータベースにアタッチできることを意味します。ただし、この表のコメント列に記載されている、その他の制限が適用される場合もあります。

- 単一ファイルのデータベースに対しては、スナップショット・ファイル名を指定できません。
  SNAPSHOT FILENAME句をCREATE STORAGE AREA句の外部に指定すると、後続のCREATE STORAGE AREA文ではデフォルト値が使用されます。したがって、この句では、単一ファイルのデータベース（記憶域が複数に分離されていないデータベース）用のスナップショット・ファイルを別途作成できません。
  単一ファイルのデータベースを作成する場合、Oracle Rdbでは、スナップショット・ファイルのファイル仕様は格納されません。かわりに、ルート・ファイル（.rdb）のファイル仕様を使用して、スナップショット・ファイルのファイル仕様が決定されます。
  スナップショット・ファイルを別のデバイスまたはディレクトリに配置する場合、Oracle Rdbでは複数ファイルのデータベースを作成することをお薦めします。
  ただし、隠し論理名に関する検索リストを定義することにより、OpenVMSプラットフォームに対する制限を回避できます。（ただし、非指定のルート論理は使用しないでください。非指定のルート論理を使用して定義されたデータベース・ファイルは、バックアップはできますが、予想どおりにはリストアされません。）
  別のデバイスまたはディレクトリにあるスナップショット・ファイルを使用してデータベースを作成する手順は、次のとおりです。

  1. 隠し論理名を使用して検索リストを定義します。検索リストの1番目の項目にはルート・ファイルの場所を指定し、2番目の項目にはスナップショット・ファイルの場所を指定します。

  2. ディレクトリ仕様の論理名を使用してデータベースを作成します。

  3. 2番目のデバイスまたはディレクトリにスナップショット・ファイルをコピーします。

  4. 元の場所からスナップショット・ファイルを削除します。

  既存のデータベースでこれを行う場合は、検索リストを定義する前にRMU Closeコマンドを使用してデータベースをクローズし、元のスナップショット・ファイルを削除した後にRMU Openコマンドを使用してデータベースをオープンします。それ以外の場合は、ここに示した手順に従ってください。
  スナップショット・ファイルおよびデータベース・ファイルを別のデバイスに配置する場合は、データベースのバックアップとリストアのプロセスを考慮することが重要です。データベースのバックアップにはRMU Backupコマンドを使用します。ファイルはその後、RMU Restoreコマンドを実行することによりリストアできます。スナップショット・ファイルは、それを常時保管するデバイスまたはディレクトリにコピーし、リストア先として使用した場所から削除します。詳細は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

- データベース・ルート・ファイル、記憶域およびスナップショット・ファイルを別のディスクに移動する場合は、RMU Move_Areaコマンドを使用します。データベース・ファイルを別のシステムに移動する場合は、RMU BackupコマンドおよびRMU Restoreコマンドを使用します。Oracle RMUコマンドの詳細は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

- RDB$SYSTEM記憶域が読取り専用の場合に、排他モードまたはバッチ更新モードで表の読取りを行うと、例外メッセージが返されます。
  表または索引への排他アクセスでは、変更されたデータの変更前のイメージがスナップショット・ファイルに書き込まれないため、常にRDB$SYSTEM記憶域に書き込む必要があります。したがって、それらと同じ表または索引に対して読取りアクセスを行う場合には、必要なデータをスナップショット・ファイルが生成できるかどうかを確認する手段が必要となります。
  Oracle Rdbでは、アクセス・モードの設定が索引単位または表単位で行われるため、排他アクセスを実行するたびに、スナップショットが索引単位または表単位では保持されないという情報を記録する必要があります。スナップショットが保持されないという情報は、表定義または索引定義と同じ場所に格納するのが適切です。これは、表または索引を予約する際にはこれらの定義にアクセスする必要があるためです。別の場所に格納すると、さらにオーバーヘッドが発生します。
  表定義および索引定義は、RDB$SYSTEM記憶域に格納されます。したがって、RDB$SYSTEM記憶域が読取り専用に設定されている場合、表や索引に排他モードではアクセスできません。この条件は、すべてのデータベース・アクセスに適用されます。

- Oracle Rdbでは、別のジャーナル・ファイルを具体的に追加しないかぎり、拡張可能なアフター・イメージ・ジャーナル機能がデフォルトで使用されます。

- ジャーナル・ファイルを既存の拡張可能なジャーナル・ファイルに追加すると、追加されたジャーナル・ファイルは自動的に固定サイズのジャーナル・ファイルに変換されます。詳細は、『Oracle Rdb7 Guide to Database Design and Definition』を参照してください。

- ジャーナル・ファイルを作成しても、ジャーナル・ファイルの切替えはすぐには実行されないため、Oracle Rdbでは、ジャーナル・ファイルを削除しないことをお薦めします。

- Oracle Rdbでは、ハードウェアまたはソフトウェアの障害が発生した場合にリカバリできるように、各.aijファイルを配置するデバイスは、それぞれ別にするのみでなくその他のデータベース・ファイルとも別にすることをお薦めします。

- 排他的なデータベース・アクセスは、次の操作に必要となります。

  - アフター・イメージ・ジャーナル・ファイルの予約

  - アフター・イメージ・ジャーナル・ファイルの有効化

  - アフター・イメージ・ジャーナル・ファイルの無効化

  - 記憶域の予約

- .aijファイルまたは記憶域の追加、削除、変更には、排他的なデータベース・アクセスは必要ありません。
  ただし、記憶域を追加する際、そのページ・サイズが記憶域の最小ページ・サイズより小さい場合には、データベースへの排他アクセスが必要です。

- ジャーナリングを無効にして、追加スロットを予約し、ジャーナリング機能を再度有効にせずに処理を続けることもできます。この場合、データベースはリカバリできないという内容のメッセージが表示されます。なんらかの処理を続ける場合は、ジャーナリングを必ず有効にしてください。

- 現在のジャーナリングおよび記憶域のステータスを確認する場合は、Header修飾子を指定したSHOW文またはRMU Dumpコマンドを使用します。

- データベースのバックアップにはRMU Backupコマンドを使用します。

- AIJバックアップ・サーバー（ABS）に対するテープのサポートはありません。

- 記憶域の追加および削除は、オンライン操作です（排他的なデータベース・アクセスは不要）。記憶域スロットの予約はオフライン操作です（排他的なデータベース・アクセスが必要）。そのため、ADD句またはDROP STORAGE AREA句とRESERVE STORAGE AREA句を同一のALTER DATABASE文の中で指定できません。次に例を示します。