複数の編集文字列オプション間にはプラス記号(+)を使用します。編集文字列の長さは32文字以下である必要があります。
デフォルトはNO EDIT STRINGで、供給されるBACKUP FILENAMEがバックアップ・ファイルの名前の指定に使用されるすべてであることを意味します。
BACKUP SERVER IS MANUALが指定されている場合、手動でRMU Backup After_Journalコマンドを実行する必要があります。BACKUP SERVER IS AUTOMATICが指定されている場合、セットのジャーナル・ファイルが満杯な場合には特別なバックアップ・サーバーが実行され、別のジャーナル・ファイルに切り替ります。
デフォルトはMANUALです。
バッファ・サイズはグローバル・パラメータであり、ページごと(またはバッファごと)のブロック数はページごとに64ブロックに制約されます。ページ・サイズは複数ファイルのデータベースの記憶域ごとに異なり、ページ・サイズは各記憶域に格納されるレコードのサイズで決まります。
バッファごとにブロック数を選択する場合は、バッファに収まる概算ページ数を選択します。つまり、複数ファイルのデータベースのすべての記憶域のすべてのページ・サイズで完全に割り切れるバッファ・サイズです。たとえば、記憶域が3つあり、ページ・サイズがそれぞれ2、3および4ブロックの場合、12ブロックのバッファ・サイズを選択するとバッファの使用が最適になります。反対に、バッファ・サイズとして8を選択すると、ページ・サイズが3の記憶域のバッファごとに2ブロックが無駄になります。Oracle Rdbによって、バッファに収まるできるかぎり多数のページ数が読み取られますが、この例ではバッファに3ブロックのページが2つ読み取られ、2つの無駄なブロックが残されます。
変更されたバッファ・サイズは既存のページ・サイズの使用が可能である必要があります。既存の最大ページ・サイズより小さいバッファ・サイズは指定できません。
ALTER DATABASE文を完了する前に、指定したキャッシュを追加するか、そのキャッシュがすでに存在している必要があります。
データベースおよび記憶域を変更して、データベースのデフォルト物理領域行キャッシュをオーバーライドする新規の物理領域行キャッシュを割り当てます。各記憶域に対して割り当てることができる物理領域行キャッシュは1つのみです。
論理領域行キャッシュを定義して、単一の記憶域の行を含む、複数の行キャッシュを保持できます。この場合、行キャッシュ名は表または索引の名前と一致します。
CACHE USING句もNO ROW CACHE句も指定しない場合、デフォルトはNO ROW CACHE句です。
頻繁に更新される環境では、カーディナリティ更新を無効にするほうが便利な場合があります。この機能を無効にする場合は、RMU Collect Optimizer_Statisticsコマンドを使用して手動でカーディナリティを管理する必要があるため、オプティマイザには見積り用に非常に正確な値を指定します。
カーディナリティ収集はデフォルトで有効です。
キャリーオーバー・ロックの最適化の詳細は、「CREATE DATABASE文」を参照してください。
次に例を示します。
SQL> alter database cont> filename db$:scratch cont> cont> journal is enabled cont> (fast commit is enabled cont> (checkpoint every 20 transactions, cont> checkpoint timed every 20 seconds cont> ) cont> ) cont> add journal rdb$journal cont> filename db$:scratch_aij cont> ; %RDMS-W-DOFULLBCK, full database backup should be done to ensure future recovery |
チェックポイント間隔に割り当てた値により、更新されたページの転送前に.aijファイルが増やすことができるブロック数を指定します。たとえば、チェックポイント間隔値を100に設定した場合、最後のチェックポイントから100ブロックが.aijファイルに書き込まれると、すべてのプロセスで更新されたページが転送されます。したがって、すべてのプロセスが.aijの拡張に関係します。
チェックポイント間隔が設定されず、1000トランザクションの処理が完了して1001番の実行中に失敗した場合、DBRではトランザクション1〜1000を再実行してから1001番を元に戻す必要があります。
プロセスがデータベースにアタッチされている場合、そのプロセスによってチェックポイント・レコードが.aijファイルに書き込まれ、チェックポイント・レコードが配置される.aijファイルの仮想ブロック番号(VBN)が記述されます。チェックポイントがVBN 120に配置され、チェックポイント間隔が100ブロックである場合、VBN 220に到達するとプロセスによってチェックポイントが再実行されます。
すべてのプロセスが.aijファイル拡張に関係するため、他のプロセスによる更新アクティビティが活発でない場合、チェックポイントの実行前にプロセスは多くのトランザクションをコミットできる場合があります。反対に、プロセスの最初のトランザクションが長く、他のプロセスによる更新アクティビティが活発な場合は、最初のトランザクションをコミットする際にプロセスに強制的にチェックポイントが実行される場合があります。
データベース・チェックポイント間隔値に到達すると、Oracle Rdbでは次の手順が実行されます。
たとえば、TIMED EVERY 100 SECONDSを指定した場合、各プロセスでは最後のチェックポイントから少なくとも100秒が経過してからチェックポイントが実行されます。
チェックポイントは、時間に基づくチェックポイントおよびファイルの.aijファイルの拡張に基づくチェックポイントのどちらも設定できます。Oracle Rdbでは、最初に到達したどのチェックポイントでもチェックポイント操作が実行されます。
次の文では、高速コミット処理が有効になり、512ブロックと12秒のチェックポイント間隔が指定されます。
SQL> ALTER DATABASE FILENAME test1 cont> JOURNAL IS ENABLED cont> (FAST COMMIT ENABLED cont> (CHECKPOINT INTERVAL IS 512 BLOCKS, cont> CHECKPOINT TIMED EVERY 12 SECONDS) cont> ); |
チェックポイント操作のターゲットがBACKING FILEである場合、RCSプロセスによってソース行キャッシュ・エントリがバッキング(.rdc)・ファイルに書き込まれます。バッキング・ファイルの作成には、行キャッシュLOCATION句、ALLOCATION句およびEXTENT句が使用されます。ノード障害からのリカバリ時に、データベース・リカバリ・プロセスにより行キャッシュをバッキング・ファイルにある行からメモリー内に再移入できます。
ターゲットがDATABASEである場合は、更新済の行キャッシュ・エントリがデータベースに書き込まれます。行キャッシュLOCATION句、ALLOCATION句およびEXTENT句は無視されます。ノード障害からのリカバリ時に、データベース・リカバリ・プロセスでは行キャッシュのコンテンツにデータが存在しません。このため、行キャッシュをメモリー内に再移入できません。
CREATE CACHE句、ADD CACHE句またはALTER CACHE句のLOCATION句が、このデータベース・レベルのCHECKPOINT句より優先されます。
デフォルトはENABLEDです。
チェックサム計算をデフォルトのまま有効にしておくことをお薦めします。 |
現在の技術では、チェックサム計算では検出できますが、他のハードウェア、ファームウェアまたはソフトウェアでは検出できないエラーが発生する場合があります。メモリー内またはディスク上でページが破損していて、検出されていない場合は、予期しないアプリケーション結果が生じ、データベースが破損する可能性があります。
次のような特定の状況を除き、チェックサム計算を実行することをお薦めします。
チェックサム計算によるCPU使用率の低下と、チェックサム計算を無効にした場合のデータベース整合性の損失の可能性の妥協点を慎重に検証することをお薦めします。 |
チェックサム計算を無効化し、後でエラーなしで再有効化できます。ただし、チェックサム計算が無効化されると、後でチェックサム計算が再有効化されても、破損ページが検出されない場合があります。
デフォルトは5バッファです。最小値は1、最大値はバッファ・プール・サイズと同じ大きさまで指定できます。
論理名RDM$BIND_CLEAN_BUF_CNTを定義すると、クリーン・バッファの数をオーバーライドできます。値の設定の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。
COMMIT TO JOURNAL OPTIMIZATIONを指定する場合、スナップショットを無効にするか遅延する必要があります。 スナップショットをENABLED IMMEDIATEに変更する場合は、NO COMMIT TO JOURNAL OPTIMIZATIONを指定する必要があります。 |
COUNT IS句が省略された場合、デフォルトは3です。nの値には、1〜8の範囲の値が可能です。
デフォルトの数は、バッファ・プールの4分の1で、上限は8です。論理名RDM$BIND_APF_DEPTHを使用すると、CREATE文またはALTER DATABASE文で指定したバッファの数をオーバーライドできます。
DETECTED ASYNC PREFETCH句を使用してこのオプションを指定することもできます。
経験則を使用することで、順次I/Oをその時点で実際に実行していなくても、検出済非同期プリフェッチによってI/Oパターンが順次動作するかどうかが決まります。たとえば、LIST OF BYTE VARYING列がフェッチされた場合、フェッチ中のページが順次処理され、ページが引き続き非同期に順次フェッチされることが経験則によって検出されます。これにより、ページが本当に必要な場合には待機時間が回避されます。
検出済非同期プリフェッチはデフォルトで有効です。
ALTER DATABASE文でDICTIONARY引数を指定する場合は、他のどのデータベース・ルート・ファイルまたは記憶域パラメータも指定できません。
データベースを作成したCREATE DATABASE文のデータベース・ルート・ファイル・パラメータからPATHNAME句を省略した場合に、同じデータベースに対してALTER DATABASE文でDICTIONARY IS REQUIREDを指定すると、SQLによってエラーが生成されます。これは、そのデータベースに対してALTER DATABASE文でDICTIONARY IS REQUIRED句を指定する前に、CREATE PATHNAME句とともにINTEGRATE文を使用してデータベース定義をリポジトリにコピーしている場合はTRUEではありません。
デフォルトはDICTIONARY IS USED句です。
モードが指定されていない場合は、デフォルトはRESTRICTです。
現行ではなく、バックアップ済の.aijファイルを1つのみ削除できます。
RESTRICTキーワードを使用する場合、記憶域マップなどのデータベース・オブジェクトによって参照されているか、データが存在する場合、その記憶域を削除できません。
CASCADEキーワードを使用する場合、記憶域を参照しているすべてのオブジェクトがOracle Rdbによって変更されるため、以降は参照しなくなります。ただし、オブジェクトの削除によってデータベースに不整合が発生する場合には、Oracle Rdbによるオブジェクトの削除は実行されません。
ALTER DATABASE文を使用して記憶域を削除する場合、その変更はジャーナリングされますが、変更する前にデータベースをバックアップしてください。
記憶域の削除の追加情報およびジャーナリングされない変更の重要情報は「使用方法」を参照してください。
サイズが不適切な記憶域が作成され、エクステントが有効な場合は、混合ページ形式の記憶域にハッシュ索引を作成する際に、パフォーマンス上の問題が生じる場合があります。エクステントを無効にすると、この問題を早期に診断して修正し、パフォーマンスを向上させることができます。
ジャーナル高速コミット処理を有効にして、コミット処理方法を変更できます。ジャーナル高速コミットを有効にすると、更新されたページはOracle Rdbによって(メモリー内の)バッファ・プールに保持され、トランザクションをコミットしてもそのページがディスクに書き込まれません。更新されたページはプロセスがデータベース管理者またはアプリケーション・プログラマが指定した条件を満たすまでバッファ・プールに保持されます。(チェックポイントの)条件が満たされると、複数トランザクションに対してプロセスによって更新されたすべてのページがディスクに書き込まれます。
次の場合に、プロセスにチェックポイントを設定できます。
トランザクションが失敗すると、Oracle Rdbによって現在の失敗したトランザクションが元に戻され、最後のチェックポイント以降のコミット済トランザクションがすべて再実行される必要があります。更新の再実行には、.aijファイルの読込みおよび関連するデータ・ページへの変更の再適用が含まれます。
高速コミット処理は操作の削除、変更および格納などのデータ更新のみに適用されます。論理領域の作成や索引作成操作などのデータ定義文を含むトランザクションでは、トランザクションの最後に強制的にチェックポイントが実行されます。FAST COMMIT句で値を指定しない場合は、デフォルト値が適用されます。
FAST COMMITを有効にするには、まずアフター・イメージ・ジャーナルを有効にする必要があります。 |
PATHNAMEを指定すると、SQLではリポジトリの完全修飾名が使用されません。かわりに、SQLではリポジトリに格納された名前がユーザー指定の名前として使用されます。次の例では、ファイル名としてDB$DISK:[DBDIR]TEST.RDBではなくTESTが、SQLによって使用されます。その結果、データベース・ルート・ファイルが現在の作業ディレクトリに配置されるか、PATHNAME句を使用する場合はデータベース名が論理名になる必要があります。
$ REPOSITORY OPERATOR . . . CDO> show database/full test Definition of database TEST | database uses RDB database TEST | database in file TEST | | fully qualified file DB$DISK:[DBDIR]TEST.RDB; | | user-specified file DB$DISK:[DBDIR]test.rdb |
PATHNAMEまたはFILENAME引数で参照されているデータベースがアタッチされている場合、ALTER DATABASE文はファイル・アクセスの競合エラーにより失敗します。
OpenVMS GalaxyはOpenVMS Alphaオペレーティング・システム用のソフトウェア・アーキテクチャで、OpenVMSの複数のインスタンスが単一のコンピュータで協調して実行されることを可能にします。インスタンスはOpenVMS Alphaオペレーティング・システムのコピーを参照します。Oracle Rdb内の既存OpenVMSクラスタ・サポートの拡張子として、Oracle Rdbでは、Galaxyシステム内の複数のインスタンス(またはノード)でオープンされたデータベースのサポートが提供され、メモリー内のデータ構造が共有されます。Oracle Rdb Galaxy環境内では、オープン・データベースにより、すべてのインスタンスで次のものが共有されます。
GALAXY SUPPORTが有効な場合、単一のグローバル・バッファ・プールがすべてのGalaxyノードによって共有されます。 |
INCREMENTAL BACKUP SCAN OPTIMIZATIONを指定する場合、SPAMトランザクション数(TSN)が最新の全体バックアップTSNより大きい場合にのみ、Oracle Rdbで各領域のSPAMページがチェックされ、ページのSPAM間隔がスキャンされます。これは、SPAM間隔のページが最後の全体バックアップ操作後に更新されたことを意味します。
使用するデータベースのSPAM間隔が大きいか頻繁に更新されない場合、および増分バックアップの速度を上げる場合は、INCREMENTAL BACKUP SCAN OPTIMIZATIONを指定します。(NO INCREMENTAL BACKUP SCAN OPTIMIZATION句を使用して)この属性を無効にする場合は、次回の全体バックアップ直後まで有効にできません。
NO INCREMENTAL BACKUP SCAN OPTIMIZATIONを指定すると、Oracle Rdbでは各ページがチェックされ、増分バックアップ中の変更が検索されます。
使用するデータベースが頻繁に更新される場合、バルク・ロード操作が使用される場合、増分バックアップが使用されない場合、または実行時のパフォーマンスを向上させる場合には、NO INCREMENTAL BACKUP SCAN OPTIMIZATION句を指定します。
デフォルトは、INCREMENTAL BACKUP SCAN OPTIMIZATIONです。
ジャーナル・ファイルがすでに存在する場合は、JOURNAL IS ENABLED句によってジャーナリング機能が単に再開されます。
ALTER DATABASE ... JOURNAL IS ENABLED文が完了したときにジャーナル・ファイルが存在しない場合には、例外が発生します。次に例を示します。