SET

MUPIP SETは、ジャーナリング(-JOURNALを使用)とレプリケーション(-REPLICATIONを使用)を確立しアクティブ化するために使用される主なユーティリティです。

GDEがグローバルディレクトリを作成するとき、明示的に指定されたジャーナリング情報、または、指定されていない特性としてGDEのデフォルト値((SET -JOURNAL オプション ”) を参照)のどちらかを格納します。

MUPIP CREATEは、既存のジャーナリング情報をグローバルディレクトリからデータベースファイルにコピーし、GDEでサポートされているすべてのジャーナルオプションのジャーナリング特性を確立します。

[重要] 重要

GT.Mは、作成されたときにのみ、グローバルディレクトリ内のジャーナリング情報をデータベースファイルに適用します。その後、データベースファイルのジャーナリング特性を変更するには、MUPIPを使用するか、通常とは異なる環境でDSEを使用します。GDEを使用して、現行のジャーナリングのニーズを反映させて、それで次に、MUPIP CREATEを使用して、必要なジャーナリング特性を取得するようにしてください。

DSE DUMP -FILEHEADER は、確立されているすべてのジャーナリング特性の現在の値を表示します。

このセクションでは、ジャーナリング関連の修飾子を具体的に参照して、MUPIP SETコマンドについて説明します。他のMUPIP SET修飾子については、 第5章: “一般的なデータベース管理を参照してください。

MUPIP SET -JOURNALは、ジャーナリングが特定のファイルまたは領域(Region)に対してアクティブな場合、一部のデータベース特性を変更できます。古いデータベース上でMUPIP SET -JOURNALを初めて実行すると、現在のGT.Mバージョンで必要とされるジャーナル設定に合わせて、最大/最小ジャーナル設定が自動的に変更されます。MUPIP SETは、データベースファイル、ジャーナルファイル、領域(Region)またはレプリケーションの状態で動作します。

MUPIP SETコマンドの書式は次のとおりです。

MUPIP SE[T] -qualifier... {-F[ILE] file-name|-JN[LFILE journal-file|-REG[ION] region-list}

ファイル指定、ジャーナル・ファイル指定、または region-listは、SETのターゲットを識別します。カンマ(,)で区切られた領域名(region-name)は、領域リスト(region-list)を構成します。

ジャーナリング特性を確立するには、 -[NO]JOURNAL[=journal-option-list]修飾子と次のSETオブジェクト識別修飾子のいずれかを指定してMUPIP SETコマンドを使用します。

-F[ILE]
-JN[LFILE]
-R[EGION]

-FILEと-REGIONは、1つ以上のSETアクション修飾子とともに動作します。

-[NO]JOURNAL[=journal-option-list] -REPLICATION=<replication-option>'

修飾子を識別するSET オブジェクト

次の修飾子は、ジャーナル・ターゲットを識別します:

-F[ILE] 

SETへの引数が単一のデータベースファイルのファイル仕様であることを指定します。ジャーナル・ファイルの名前にはユニコード文字を含めることができます。

古いジャーナルファイルは、新しいジャーナルファイルに切り替わって約10秒間開いたままになります。

-R[EGION] 

SETへの引数が、現在のグローバルディレクトリのマッピングによってデータベースファイルのセットを識別するワイルドカードを含む可能性のある1つ以上の領域名(region-names)のリストであることを指定します。SET -REGIONは、パラメータに複数の名前が含まれている場合に複数のファイルを変更します。

-REGION修飾子は、-FILEおよび-JNLFILE修飾子と互換性がありません。

-JN[LFILE] 

SETのターゲットがジャーナル・ファイルであることを指定します。JNLFILE修飾子のフォーマットは次のとおりです:

-jnlfile jnl_file [-[no]prevjnlfile[=jnlfilename]] [-bypass] [-repl_state={on|off}] [-dbfilename=file_name]

jnl_file はターゲット・ジャーナル・ファイルの名前を指定します。

-bypass

setコマンドの影響を受けるデータベースファイル(またはそれに対応するジャーナルファイル)をスタンドアロンで使用できるようにする必要があります。

注意 注意

ロールバックオペレーションが進行中か、または、ソースサーバーがアクティブに複製している時に、前世代のファイルリンクの変更は、ジャーナルファイルに損傷を与え回復を妨げることになります。

-dbfilename=file_name

ジャーナルファイルを別のデータベースファイルに関連付けます; このコマンドは、異常なRECOVERまたはROLLBACKシナリオを整理するのに役立ちます。

-prevjnlfile=jnlfilename

jnl_fileのヘッダーにある前の世代のジャーナル・ファイルの名前をjnlfilenameに変更します(例えば、前世代のジャーナル・ファイルを別の場所に移動する場合など)。ファイル名には完全パス名または相対パス名を指定できます; ただし、ファイル名がヘッダーに格納される前に、フルパス名に展開されます。

-noprevjnlfile

Cuts the generation link of the journal file jnl_file .The name of the previous generation journal file is nullified in the header of jnl_file. 前世代のジャーナルファイルへロールバックの理由とはならないことを保証される時は、このような操作は適切です。

-repl_state={on|off}

ジャーナルファイルのレプリケーション状態を変更します; このコマンドは、GT.Mサポートプロバイダの指示の下でのみ使用することを意図しています。

SET Action 修飾子

-JOURNALおよび-REPLICATION修飾子は、ジャーナリングに関連する唯一のSET修飾子です。他のMUPIP SET修飾子については、 第5章: “一般的なデータベース管理を参照してください。

-[NO]J[OURNAL][=journal-option-list]

指定したデータベースファイルまたは領域(Region)のジャーナリングを有効または無効にします。この修飾子付きのMUPIP SETコマンドは、ジャーナル・ファイルの特性も確立します。FISでは、ジャーナル・ファイル特性のデフォルト値と最小値が、現在のハードウェア能力に則しており、プロダクション運用環境に適していると、考えています。

journal-option-listには、カンマ (,)で区切られたキーワードが二重引用符で囲まれています。これらの二重引用符は、リストに1つだけキーワードが含まれている場合はオプションです。このオプションリストは、GDEを経由して利用できる journal-option-list のスーパーセットです。

  • -NOJOURNALは、データベースがジャーナリングを許可しないこと、または現在有効になっているデータベースのジャーナリングを無効にすることを指定します。これは -JOURNAL=DISABLEと同等です。

  • -NOJOURNALは引数の代入を受け付けません。新しいジャーナルファイルを作成しません。データベースが -NOJOURNALに設定されている場合、ジャーナリングファイル名やその他の特性はまったく無いです。

  • -JOURNAL= はデータベースファイルのジャーナリングを有効にします。-JOURNAL= は、ジャーナル・オプション・リスト内の1つ以上の引数をとります。ジャーナリングが有効になっていて、コマンドの最後でONになっている限り、SET -JOURNAL= は常に、指定されたジャーナルファイルの新しいバージョンを作成します。

  • -NOJOURNALは、データベースがジャーナリングを許可しないこと、またはジャーナリングがアクティブなデータベースのジャーナリングを無効にすることを指定します。

  • データベース・ファイルのBEFORE_IMAGEまたはNOBEFORE_IMAGEジャーナリングを使用可能にします。

  • ジャーナリングが有効になっていて、コマンドの最後でONになっている限り、SET -JOURNAL= は常に、指定されたジャーナルファイルの新しいバージョンを作成します。

  • ONまたはOFFの journal-activationオプションを指定するデータベースファイル上のすべてのMUPIP SET -JOURNALコマンドは、明示的に指定されたすべてのジャーナル・ファイル・オプションの値を、以前に確立されたこれらのオプションの特性を上書きするデータベースに格納します。

  • もし同じコマンド行に-JOURNALと-NOJOURNALの両方を指定すると、後者が有効になります。

  • MUPIP SETは新しいジャーナルファイルを作成するたびに、ユーザーが新しいジャーナル・ファイルをコマンド・ラインで明示的に指定するジャーナル・ファイル・オプションのすべての値を使用します。ジャーナル・ファイル・オプションを指定しない場合、MUPIP SETは既存のジャーナル・ファイルの特性をとります。

  • MUPIP SETは、データベース・ファイルの非ジャーナリング特性を変更するための修飾子(例えば -ACCESS_METHODなど)をサポートしています。もしこれらの修飾子 -JOURNALを指定すると、MUPIP SETは非ジャーナリング特性を最初に変更し、次にジャーナリング特性を変更するために移動します。コマンドの実行は、エラーが発生すると停止します。もしコマンド・ラインまたは非ジャーナリング特性の処理中にMUPIP SETでエラーが発生すると、特性に変更はありません。ただし、もしMUPIP SETでジャーナリング特性の処理でエラーが発生すると、非ジャーナリング特性はすでに正常に変更されています。

  • -NOJOURNALは、-JOURNAL=DISABLEと同等です。

  • -NOJOURNALは引数の代入を受け付けません。新しいジャーナルファイルを作成しません。データベースが -NOJOURNALに設定されている場合、ジャーナリングファイル名やその他の特性はまったく無いです。

ジャーナル・オプション・リストの詳細については、SET -JOURNAL オプション ”を参照してください。

-REPLI[CATION]=replication-option

-REPLICATIONは、ジャーナルの特性を設定し、レプリケーションの状態を同時に変更します。-JOURNAL修飾子とともに使用することもできます。もしジャーナリングが有効でONに設定されている場合、SET -REPLICATION=ONは新しいジャーナル・ファイルのセットを作成し、バック・リンクを以前の世代のジャーナル・ファイルにカットし、レプリケーションをオンにします。

SET -JOURNAL オプション

ALI[GNSIZE]=blocks

  • ジャーナル・ファイルのALIGNSIZEに512バイト・ブロックの数を指定します。

  • もしALIGNSIZEが完全な2のべき乗で無い場合、GT.Mは、それに最も近い2のべき乗に丸めます。

  • デフォルトおよび最小ALIGNSIZE値は4096ブロックです。最大値は4194304(= 2Gバイト)です。最大値は4194304(= 2GB)です。

  • ジャーナル・ファイルは、サイズの異なるジャーナル・レコードのシーケンシャル・ストリームで構成されます。異常終了したジャーナル・ファイル(例えば、システム・クラッシュなど)の最後の有効なジャーナル・レコードの開始を検出することは、一般的には容易ではありません。システムクラッシュ時にジャーナル回復を容易にするために、GT.Mランタイムシステムは、ALIGNSIZE(ジャーナル・ファイル・ヘッダーを格納するオフセット0を除く)の複数のオフセットがあるジャーナル・ファイルのオフセットが常に有効なジャーナル・レコードの先頭であることを、保証します。これを保証するために、GT.Mランタイムシステムは、ALIGNSIZE境界の直前にALIGNジャーナルレコードの形式でパディング・データを(必要に応じて)書き込みます。これらのALIGNレコードもまた、可能な限り多くの破損ジャーナル・ファイルのデータを抽出できるようにMUPIP JOURNAL -EXTRACT -FORWARD -FULLを許可するジャーナル・ファイルの途中で無効なレコードをスキップすることを助けます。

  • アラインメント・サイズが大きくなるとクラッシュ・リカバリー時間が短縮され、ジャーナリング・スループットが向上します。特に、before image・ジャーナリングを使用するときは、数MBを超えるアラインメント・サイズを使用する場合には限界値があります。

  • サポートされている最小のALIGNSIZEは、常に最大ジャーナル・レコード・サイズ以上で、最大ジャーナル・レコード・サイズは最大データベース・ブロック・サイズに依存します。

  • ALIGNSIZEの値が大きいと、リカバリ境界の境界が狭くなり、それゆえバックワードリカバリが非常に遅くなることに注意してください。たとえば、最大値が4194304は、、そのジャーナル・ファイル上のフォワードリカバリと同じ時間を要するためにバックワードリカバリ(クラッシュの場合)を引き起こします。

ALL[OCATION]=blocks

ジャーナルファイルの割り当てサイズを設定します。GT.Mは、この情報を使用して、ジャーナル・ファイルで使用可能なディスク・スペースを最初に確認する時期を決定します。作成時のジャーナル・ファイルのサイズは定数(GT.Mバージョンに依存)ですが、ジャーナル・ファイルがALLOCATIONで指定されたサイズに達すると、すべての拡張機能が、ジャーナル・ファイルに使用されるデバイスで使用可能な空き容量のチェックを生成します。

利用可能な空きスペースが拡大サイズより多くないときはいつも、GT.Mはシステムログへの情報メッセージを発行します。GT.Mは、スペースがなくなる前に、ジャーナル・ファイルを保持しているファイル・システムの容量が少ないことを識別するための操作補助として、これらの拡張の検査を提供します。ジャーナル・ファイルを保持しているファイル・システム上に使用可能な空き領域がなくなると、GT.Mは対応するデータベース・ファイルのジャーナリングを停止します。

デフォルトのALLOCATION値は2048ブロックです。許可される最小値は2048です。最大値は8,388,607(4GB-512バイト、最大ジャーナル・ファイル・サイズ)です。

AU[TOSWITCHLIMIT]=blocks

ジャーナルファイルのサイズの制限を指定します。ジャーナルファイルのサイズが制限に達すると、GT.Mは自動的に新しいジャーナルファイルへ暗黙的にオンラインスイッチを実行します。

[注意] 注意

AUTOSWITCHLIMITをファイルシステムの最大ファイルサイズ(ブロック単位)よりも大きな値に設定することは可能です。現在、GT.Mは指定時刻にこの条件をチェックしようとしません。ジャーナル・ファイルがファイル・システムの最大サイズに達すると、GT.Mは実行時エラーを生成します。したがって、AUTOSWITCHLIMITがファイルシステムの制限を超えないようにしてください。

AUTOSWITCHLIMITのデフォルト値は8386560で、最大値は8388607ブロック(4GB〜512バイト)です。AUTOSWITCHLIMITの最小値は16384です。もしAUTOSWITCHLIMITと割り当て値の差が拡張値の倍数でない場合、GT.Mは値を切り捨てて拡張値の倍数にし、情報メッセージを表示します。AUTOSWITCHLIMITの丸められた値が最小値よりも小さい場合、GT.Mはエラーを生成します。

もし、GDEまたはMUPIP SET -JOURNALのどちらかを使用して(ALLOCATION + EXTENSION > AUTOSWITCHLIMIT)のような領域(Region)のALLOCATION、EXTENSION、およびAUTOSWITCHLIMITの値を指定すると、GT.Mは、ALLOCATIONをAUTOSWITCHLIMITと一致するように設定し、JNLALLOCGROWメッセージを生成します。

ジャーナルの自動切り替え時間を含むジャーナル拡張時間では、もし領域(Region)の(ALLOCATION + EXTENSION > AUTOSWITCHLIMIT)の場合、GT.Mは、使用可能なジャーナル・ディスク・スペースが少ないことを警告するために、EXTENSIONおよびAUTOSWITCHLIMITのうち大きい方を増分として使用します。それ以外の場合は、EXTENSIONを使用します。

[NO]BEFORE_IMAGES

1つのアップデートが修正しようとしているGDSブロックのBEFORE_IMAGESをジャーナルに取り込むかどうかを制御します。SET -JOURNAL=ONは、付随するジャーナル・オプション・リストにBEFORE_IMAGESまたはNOBEFORE_IMAGESのいずれかを含める必要があります。

もし同じジャーナル・オプション・リストにNOBEFORE_IMAGESとBEFORE_IMAGESの両方を指定すると、最後の指定が前の指定を上書きします。

GT.MはONオプションのみで新しいジャーナル・ファイルを作成するため、すべてのON仕様にはBEFORE_IMAGESまたはNOBEFORE_IMAGESが含まれている必要があります。もしユーザーがOFFオプションと共に[NO]BEFORE_IMAGESを指定した場合は、何の目的も果たしません。

ただし、NOBEFORE-IMAGE ジャーナリングから(へ) BEFORE-IMAGEジャーナリングへ(から)データベースのオンラインスイッチを実行することが可能ですが、もしBEFORE-IMAGESのないデータベースのためにジャーナルファイルセットの1つでも遭遇するならば、逆方向のリカバリーが決して成功しないことを理解することが重要です。

BU[FFER_SIZE]=blocks

ジャーナル・ファイル出力をバッファーするために使用されるメモリーの量を指定します。

MUPIPでは、BUFFER_SIZEを変更するためにデータベースへのスタンドアロン・アクセスが必要です。したがって、GT.Mは、現在のジャーナル・バッファ・サイズをジャーナル・ファイルのオンライン・スイッチの一部として変更するために、BUFFER_SIZEオプションの使用を制限します。

デフォルト値は2308ブロックです。最小のBUFFER_SIZEは2307ブロックです。最大BUFFER_SIZEは32Kブロックです。これは、ジャーナル・ファイル出力に設定できる最大バッファーが16MBであることを意味します。

DISABLE

MUPIP SETの-NOJOURNAL修飾子と同等です。ジャーナリングは、名前のある領域(Region)またはファイルのオプションではないものを指定します。もしユーザーがDISABLEを指定すると、MUPIP SETは ジャーナル・オプション・リストの他のすべてのオプションを無視します。

ENABLE

データベース・ファイルまたは領域(Region)をジャーナリング可能にします。デフォルトでは、同じオプション・リストにOFFが指定されていない限り、ENABLEはジャーナリングをONにします。ENABLEを含むコマンドには、BEFORE_IMAGESまたはNOBEFORE_IMAGESも指定する必要があります。

EP[OCH_INTERVAL]=seconds

seconds(秒) は、2つの連続するEPOCH間の経過時間の間隔を指定します。EPOCHはチェックポイントで、データベースファイルに対するすべての更新がディスクにコミットされます。すべてのジャーナル・ファイルは、エポック・レコードが含まれています。

より小さなEPOCH_INTERVALは、(より頻繁なチェックポイントのために)ラン・タイム・システム上のI/O負荷の増加のコストに対して、クラッシュ後の回復時間を短縮します。より大きなEPOCH_INTERVALは逆の効果を持ちます。したがって、EPOCH=intervalを設定すると、実行時間が長くなり、間隔の値が大きくなり、より効率的なROLLBACK処理が行われ、間隔の値が小さくなります。

デフォルトのEPOCH_INTERVAL値は300秒(5分)です。最小値は1秒です。最大値は32,767秒(32K未満)、つまり約9.1時間です。もしジャーナリングを有効にしてEPOCH_INTERVALの値を指定しないと、GT.Mはその領域(Region)の最後のジャーナル・ファイルのEPOCH_INTERVALの値を継承します。EPOCH_INTERVALは、ユーザーがジャーナリングをオンにし、以前のジャーナル・ファイルがない場合にのみ有効になります。

EX[TENSION]=blocks

blocks は、ファイルが拡張されて満杯になるジャーナルファイル拡張のサイズを指定します。

EXTENSION=blocks は、ALLOCATIONが使い尽くされた後、ジャーナル・ファイルに使用可能なディスク・スペースをGT.Mが見直すべき時を指定します。また、各再調査時で利用できるスペースの量も指定します。

UNIXファイルシステムでは遅延割り当て方式が使用されるため、割り当て値と拡張値ではジャーナル・ファイルの物理ディスク・ブロック割り当ては行われません。

この値は、GT.Mがファイル・システムを調べて、ジャーナル・データの拡張分を保持するのに十分なスペースがあるかどうかを判断します。ジャーナル・ファイルがALLOCATIONのサイズとEXTENSIONの倍数に達すると、GT.Mは、ファイル・システムを調べて空き領域がEXTENSIONの3倍未満であれば、オペレータ・ログに警告を書き込みます。GT.Mは、スペースがなくなる前に、ジャーナル・ファイルを保持しているファイル・システムの容量が少ないことを識別するための操作補助として、これらの拡張の検査を提供します。ジャーナルファイルを保持しているファイル・システムに空き容量がなくなった場合、または、ジャーナル・ファイルを自動切り替えしようとするプロセスの許可がない場合、GT.Mは対応するデータベース・ファイルのジャーナリングを停止します。

デフォルトのEXTENSION値は2048ブロックです。最小拡張はゼロ(0)ブロックで、最大値は1073741823(1ギガ以下)ブロックです。

F[ILENAME]=journal_filename

journal_filename はジャーナルファイルの名前を指定します。複数の領域(Region)を指定すると、FILENAMEはSET -REGIONと互換性がありません。

GT.Mはファイル名をベース名と拡張子の2つの構成要素として扱います。ジャーナルファイル名のフォーマットはbasename.extensionで、拡張子にピリオド (.)は含まれませんが、ファイル名に複数のピリオド (.)が含まれる場合、basenameには最後のピリオド (.)を除くすべてが含まれます。また、これらも注意してください。ファイル名にピリオド(.)が含んでないならば、"拡張子"は空の文字列("")です。

FILENAMEのデフォルト値の規則は次のとおりです。

  • GT.Mは、データベースにdat拡張子がある場合は、拡張子がmjlのジャーナル・ファイルのベース名として、データベース・ファイル名のベース名を取ります。たとえば、データベース名mumps.datの場合は、デフォルト名はm​​umps.mjlになります。もしデータベース・ファイル名にdat拡張子がない場合、GT.Mはすべてのピリオド (.)を下線(_)でmjlの拡張子に置き換え、完全なデータベースファイル名をとります。たとえば、データベース名mumps.acnの場合は、デフォルト名はm​​umps_acn.mjlになります。したがって、デフォルトでは、FILENAMEジャーナル・オプションで別の拡張子を明示的に指定しない限り、ジャーナル・ファイルの拡張子はmjlになります。もし新しいジャーナルファイル名(FILENAMEオプションまたはデフォルトで指定されたファイル名)がすでに存在する場合、GT.Mは、既存のファイル拡張子に "_YYYYJJJHHMMSS"という文字列を付けて既存ファイルの名前を変更します。ジャーナルファイルの形式は次のとおりです:

    YYYY	4桁の西暦年 半角数字			例えば: 2010 
    JJJ	3桁のユリウス日 半角数字(1〜366の間)	例えば: 199 
    HH	2桁の時  半角数字  24時間フォーマット	例えば: 14 
    MM	2桁の分  半角数字			例えば: 40 
    SS	2桁の秒  半角数字			例えば: 30

    上記の文字列の例を前提とすると、GT.Mは新しいジャーナルファイルに切り替えると、ジャーナルファイルmumps.mjlの名前をmumps.mjl_2010199144030に変更します。

  • もしGT.Mがリネーム論理が既に存在するファイル名を検出した場合、文字列 "_N[N[N[N...]]]"は、名前が変更されたファイル名に "N[N[N...]]"は、数字0,1,2,3,4,5,6,7,8,9,90,91,92,93,94,95,96,97,98,99,990,991、..のシーケンスを示します。

    GT.Mは、存在しない変更されたファイル名が見つかるまで、上記の順序ですべての数字を試します。

    mumps.mjl_2010199144030とmumps.mjl_2010119144030_0がすでに存在する場合は、上記と同じ例を使用して、リネーム文字列をmumpsにします。

  • もし上記で説明した既存のファイル名変更スキームまたはデフォルトのジャーナル・ファイル命名スキームが、(接尾辞作成ルールのために)ファイル名が255文字を超える場合、GT.Mはエラーを生成し、ジャーナリングをオフにします。

ジャーナルファイル名にはユニコード文字を含めることができます。

[注意] 注意

GT.Mは、ジャーナル・ファイルを自動切り替えしようとするプロセスに対して、使用可能なディスク・スペースがないか、または許可されていないなどの実行時の条件により、ジャーナリングを暗黙的にオフにすると、エラーが発生し、付随するメッセージでその条件の理由を識別します。

ジャーナル・リカバリの場合、GT.Mは、同じデータベース・ファイルの前世代のジャーナル・ファイルの名前を格納するすべてのジャーナル・ファイルのヘッダーにフィールドを保持します。MUPIP SETがジャーナル状態をDISABLEDまたはOFFからONに変更すると、GT.Mは以前の世代のジャーナル・ファイル名の無い新しいジャーナルファイルを作成します。これは、特定のデータベースの新しいジャーナリングの開始であることを示します。ジャーナリングがすでにONになっていて、新しいジャーナル・ファイルを作成することをGT.Mが暗黙的に(AUTOSWITCHLIMITに達しているため)または明示的に(MUPIP SET JOURNALのために)必要な場合は、GT.Mは、以前の世代のジャーナルファイル名(適切な名前を変更した後)を新しいジャーナルファイルのヘッダーに追加します。

ジャーナル・ファイル・スイッチの前後の両方でジャーナリングがONになっているすべての場合では、現在のジャーナル・ファイルの異常終了を検出したためにGT.Mが暗黙の切り替えによって新しいジャーナルファイルを作成したとき、または、現在のジャーナルファイルがシステムクラッシュのために正しく閉じられてなくて、かつ、その後データベースがMUPIP RUNDOWNの対象だった場合、GT.Mは、前の世代のジャーナル・ファイル名を、新しいジャーナル・ファイルのヘッダー以外の内に保持します。

[注意] 注意

クラッシュが発生した場合、FISは、ジャーナリングまたはレプリケーションのいずれも使用していない場合のみ、レプリケーションがあるデータベース上のMUPIP JOURNAL ROLLBACKと、ジャーナルデータベース上のMUPIP JOURNAL RECOVERと、MUPIP RUNDOWNを実行することを強く推奨します。GT.Mのエラーメッセージは、この意思決定モデルを促進するためのコンテキスト固有の指示が提供され、クラッシュ後のデータの保護と復旧に役立ちます。

以前の世代のジャーナル・ファイル名は、現在の世代のジャーナルからのバック・リンクです。

GT.Mはエラーを生成し、FILENAMEが既存のファイルであり、そのデータベースのアクティブ・ジャーナル・ファイルではない場合、データベースのジャーナリング状態を変更しません。このようにして、GT.Mは、バック・リンクの可能なサイクルを防止する(例えば、a3.mjlはa2.mjlへのバックリンクを持ち、順にa1.mjlへのバックリンクを持ち、次にa1.mjlへのバックリンクはa3.mjlへのバックリンクを持ち、それによってサイクルを作ります)。サイクルがジャーナル回復を妨げる可能性があります。また、バックリンクのサイクルは、明示的なFILENAME仕様のためにのみ可能であり、そして、データベースからの既存のFILENAME特性に起因するものでも、デフォルトのFILENAMEの使用によるものでもないことに、注意してください。

NOPREVJNLFILE

ジャーナルファイルのバックリンクを削除します。

[NO]S[YNC_IO]

特定の追加のIOフラグを使用してジャーナルファイルを開くようにGT.Mに指示します(正確なフラグのセットは、SYNC_IOがサポートされているプラットフォームによって異なります。たとえば、LinuxではO_DIRECTフラグを使用します)。通常の操作では、データはジャーナル・ファイルに書き込まれますが、ジャーナルファイルからは読み込まれません。したがって、実際のワークロードとコンピュータ・システムによっては、SYNC_IOジャーナル・オプションを使用すると、より良いスループットが得られる場合があります。

このオプションの効果を経験的に判断する必要があります。これは、パフォーマンスの向上または影響を事前に予測する方法がないためです。SYNC_IOを使用してGT.Mの動作に機能的な違いはありません。もし異なるワークロードがSYNC_IOの異なる設定で最もよく動作すると判断した場合は、いつでもMUPIP SETを使用してワークロードを変更できます。

デフォルトはNOSYNC_IOです。もし同じジャーナル・オプション・リストにNOSYNC_IOとSYNC_IOの両方を指定すると、GT.Mは最後に現れたものを使用します。

OFF

後続のデータベースの更新をジャーナルファイルに記録しないようにします。ジャーナル・ファイルを作成せずにジャーナリング特性を確立するか、またはジャーナリングを開始するには、OFFを指定します。

SET -JOURNAL= のデフォルトはONです。

ON

そのジャーナル・ファイルの後続のデータベース更新を記録します。MUPIP SET -JOURNAL=ON は、付随するジャーナル・オプション・リストにBEFORE_IMAGESまたはNOBEFORE_IMAGESのいずれかを含める必要があります。デフォルトでは、もしこのコマンドによってデータベースの複製状態(詳細は 第7章: “データベースの複製 を参照)がOFFからONに変更され、JOURNAL=NOBEFORE_IMAGEが指定されていない場合、GT.MはBEFORE_IMAGEにジャーナル操作を設定します。

[重要] 重要

ON キーワードは、以前に有効(ENABLE)になった領域(Region)でのみ機能します。ジャーナリングが無効(DISABLE)であれば、GT.MはONを無視します。つまり、ENable/DISable は多くのテレビの背面にある電源スイッチに似ており、ON/OFFはリモコンのON/OFFに似ています。リモコンのON/OFFは、テレビの背面にある電源スイッチが有効になっている場合にのみ機能します。

もし現在の世代のジャーナル・ファイルが破損/欠損がある場合、MUPIP SET -JOURNAL=ON は指定された領域(Region)のジャーナリングを暗黙的にオフにし、以前の世代のジャーナルファイルへのバックポインタを持たない新しいジャーナルファイルを作成し、ジャーナリングをオンに戻します。さらに、もし複製が有効になっている場合、MUPIP SETコマンドが、ジャーナル・プール・バッファの外で動作していて損傷したジャーナルファイルを参照する必要がない限りは、ジャーナリングをオフにし正常に戻る時に、MUPIP SET -JOURNAL=ONは、一時的に時間窓の中の複製WAS_ON状態を切り替えます。この操作の間、MUPIP SET -JOURNAL=ONは、領域(Region)のPREJNLLINKCUTメッセージをアプリケーションおよびオペレータ・ログにも送信します。この操作が、たとえ現在の世代のジャーナルファイルが破損/欠損してたとしてもジャーナリングが続行されることを確保している間は、バックポインタのない新しいジャーナルファイルを作成すると、以前のジャーナルファイルとの不連続が作成されます。したがって、FIPは、MUPIP RECOVER/ROLLBACKがこの不連続を過ぎて戻ることができないので、できるだけ早くデータベースバックアップを取ることを推奨します。また、他の領域(Region)のRECOVER/ROLLBACKが影響を受けないように、インスタンス内のすべての領域(Region)上のジャーナル・ファイルは(REGION "*"を使って)切り替えることを検討してください。

SET -JOURNAL= のデフォルトはONです。

Y[IELD_LIMIT]=yieldcount

yieldcount は、決して最適でないI/O操作を開始する前に、ジャーナル・バッファの内容をディスクにフラッシュしようとするプロセスが、そのタイムスライスを生成し、かつ、同時にアクティブなプロセスによって追加のジャーナル・バッファ・コンテンツが満たされるを待つ、そのプロセスの回数を指定します。

軽い負荷状態には小さいYIELD_LIMITが適していますが、負荷が増加するにつれて大きな値が適切です。

[注意] 注意

一方、大規模なYIELD_LIMIT(多くの生産性ため)は、重要なアイドル時間のためにパフォーマンスが低下する原因があるでしょう。小さなYIELD_LIMITは、部分的なページ書き込みのためパフォーマンスが低下する原因があるでしょう。

最小のYIELD_LIMITは 0(ゼロ)で、最大のYIELD_LIMITは 2048 で、デフォルトYIELD_LIMITは8です。

ディスクはデータのブロック全体のみを書き込むことができるので、多くのI/Oサブシステムは、ブロック全体の単純な書き込みとは異なり、書き込むデータが部分ブロックであるときにREAD-MODIFY-WRITのE操作を実行します。YIELD_LIMIT修飾子は、その間にジャーナル・バッファがより多くのコンテンツを蓄積し、最適な全ブロック書き込みを行うことを期待して、できるだけそのような書き込みを延期することによって、最適には達していない部分ブロック書き込みの頻度を減らそうとします。

MUPIP SETの例

$ mupip set -journal="enable,nobefore" -file mumps.dat

この例では、mumps.datでNOBEFORE_IMAGEジャーナリングを有効にしています。もしジャーナリングがすでに有効になっている場合、このコマンドは現在のジャーナルファイルを切り替えます。

例:

$ mupip set -journal=on,enable,before -region "*"

この例では、BEFORE_IMAGEジャーナリングを使用してジャーナリングをオンにします。もしジャーナリングがすでに有効になっている場合、このコマンドはすべての領域(Region)の現在のジャーナルファイルを切り替えます。

$ mupip set -file -journal="nobefore,buff=2307" gtm.dat

この例では、ジャーナル・バッファ・サイズが2307ブロックのデータベース・ファイルgtm.datに対してNOBEFORE_IMAGEジャーナリングを開始します。また、新しいジャーナルファイルに切り替わります。このコマンドは、以前のMUPIP SET -JOURNALの一部がgtm.datに対してENABLEを指定していることを前提としています。

例:

$ mupip set -region -journal=enable,before_images,allocation=50000,ext=5000 "*"

この例では、現在のグローバル・ディレクトリのすべての領域(Region)でBEFORE_IMAGESを使用してジャーナリングを有効にし、各ジャーナル・ファイルに50000ブロックのALLOCATIONと5000ブロックのEXTENSIONを与えます。もし領域(Region)の更新レベルが大きく異なる場合は、いくつかのMUPIP SET -FILEまたは-REGIONコマンドを使用します。

例:

$ mupip set -region -journal="enable,before" areg,breg

この例では、現在のグローバルディレクトリの領域aregと領域bregのBEFORE_IMAGESでジャーナリングをアクティブにする宣言しています。

例:

$ mupip set -file -nojournal mumps.dat

この例では、データベースファイルmumps.datのジャーナリングを無効にします。

例:

$ mupip set -journal="ENABLE,BEFORE_IMAGES" -region "AREG"
$ mupip set -journal="ON,BEFORE_IMAGES" -region "*"

この例では、領域AREGのジャーナルのみをオンにしています。領域AGREGは、ジャーナリングに「使用可能」な唯一の領域であることに注意してください。

例:

$ mupip set -access_method=MM -file gtm.dat

この例では、アクセス方法としてMM(Memory Mapped)を、データベースファイルgtm.datからデータを格納および取得するためのGT.Mバッファリング方法を設定しています。MMはBEFORE_IMAGEジャーナリングではサポートされていないため、この例ではBEFORE_IMAGEジャーナリングを有効にしたデータベースでエラーが発生します。また、-access_method=BGを使用して、バッファリング方法としてBG(Buffered Global)を設定することもできます。これらのアクセス方式の意味については、 “セグメント修飾子” を参照してください。

例:

$ mupip set -journal=before,noprevjnlfile,file=newmumps.mjl -file mumps.dat

上記のコマンドは、新しく作成されたジャーナルファイルnewmumps.mjlのバックリンクを切断します。

inserted by FC2 system