MUPIP JOURNAL

MUPIP JOURNALはジャーナルファイルを、分析し、抽出し、報告し、および、リカバリーします。次のセクションでは、参照フォーマットでMUPIP JOURNALコマンドについて説明します。

JOURNALコマンドの形式:

MUPIP J[OURNAL] -qualifier[...] <file selection argument>

どこに<file selection argument>があるか?次のセクションで説明します。

MUPIP JOURNALに含まれているMUPIPコマンドと修飾子の概要表については、"MUPIP"の章を参照してください。

MUPIP JOURNALコマンドは、次のようなアクション修飾子を1つ以上含めなければなりません:

-EX[TRACT][=file-specification]

-REC[OVER]

-RO[LLBACK]

-SH[OW][=show-option-list]

-[NO]V[ERIFY]

MUPIP JOURNALコマンドは、次のようなディレクション修飾子を1つ(1つだけ)含めなければなりません:

-BA[CKWARD]

-FO[RWARD](フォワード)

MUPIP JOURNALコマンドは、次のような時間(time)修飾子を1つ以上オプションとして含むかもしれません:

-A[FTER]=time

-BE[FORE]=time

-[NO]LOO[KBACK_LIMIT][=lookback-option-list]

-SI[NCE]=time

MUPIP JOUNALは、次のようなシーケンス番号の修飾子を1つ含むかもしれません:

-FET[CHRESYNC]=<port number>

-RES[YNC]=<jnl sequence number>

MUPIP JOURNALコマンドは、次のような制御(control)修飾子を1つ以上オプションとして含むかもしれません:

-[NO]AP[PLY_AFTER_IMAGES]

-BR[OKENTRANS]=<extract file name>

-[NO]CHA[IN]

-[NO]CHE[CKTN]

-[NO]ER[ROR_LIMIT][=integer]

-FE[NCES]=fence-option

-FU[LL]

-[NO]IN[TERACTIVE]

-LOST[TRANS]=<extract file name>

-RED[IRECT]=file-pair-list

-VERB[OSE]

MUPIP JOURNALコマンドは、次のようなセレクション(selection)修飾子を1つ以上オプションとして含むかもしれません:

-G[LOBAL]=global-list

-ID=pid-list

-T[RANSACTION]=transaction-type

-U[SER]=user-list

MUPIP JOURNALは、排他的(スタンドアロン)で使用できる非アクティブなジャーナルファイルを操作します。ジャーナルファイルはテープに転写することができます。しかし、それらは常にディスク上で生成され、そして、MUPIP JOURNALによって処理されるようにディスクへ復元する必要があります。

JOURNAL処理は、<CTRL-C>を押して停止することができ、または、オペレータのアクションやエラーにより異常終了するJOURNALコマンドは、不完全な結果を生成します。この場合、結果のデータベースが破損している可能性があります。もしJOURNAL操作がミスによって停止されたならば、コマンドの再発行は -RECOVER (or -ROLLBACK) -BACKWARDによって適切な結果を生成します 。-RECOVER -FORWARDのために、バックアップからデータベースを復元し、そして、コマンドを再発行してください。

ジャーナルファイル選択引数

RECOVER(またはROLLBACK)を操作で使用するべく、ジャーナルファイルのカンマ区切りリストを示すこの引数を使用してください。ときに、、この引数のためにアスタリスク(*)を指定する時には、GT.Mは UNIX環境変数 gtmgbldirが指し示すグローバルディレクトリでリストされたDBファイルのジャーナルファイルを使用します。シェルの拡張を防ぐためにアスタリスク(*)を二重引用符 (" ")で囲んでください。現在、 - ROLLBACK 修飾子でこの引数を受け入れられた唯一の値はアスタリスク(*)です。これは、-ROLLBACK 操作に供給されている存在から不完全な入力を防ぎます。もし-ROLLBACKによりいくつかの他の値が提供されるならば、GT.Mはエラーをレポートします。

アスタリスク(*)の値は、-FORWARD と -BACKWARD の両方のディレクション修飾子を指定することができます。しかし、もしDBが有効なジャーナリングを持っていないならば、MUPIPは" journal file name not found error "を表示して終了します。-RECOVERはジャーナルファイルのリストを受け入れます。

MUPIP JOURNAL -RECOVER -BACKWARDは、複数世代のジャーナルファイル名を受け入れません。は、アスタリスク(*)は、、-REDIRECT 制御の修飾子を指定することはできないことに、注意してください。

FISは、-RECOVER と -ROLLBACKに、ジャーナルファイルの選択引数のためのアスタリスク(*) 引数の使用を強く推奨します。

ジャーナル アクション修飾子

このセクションでは、ジャーナル・アクション(action)修飾子について説明します。

-EX[TRACT][=file-name]

JOURNALがMプログラムにより処理するために意図されるフォーマットの中に単一の出力ファイルへ1つ以上のジャーナルファイルの内容を転送すべきで、これらのことを指定します。-EXTRACTの出力レコードフォーマットの説明については、 この章で後述する"ジャーナルを抽出するフォーマット"のセクションを参照してください。

-EXTRACTは、出力ファイルの仕様を提供するオプション引数を取ります。もし出力ファイルの仕様が提供されて無いならば、MUPIP JOUNALは、最初のジャーナルファイルの名前を使用して抜き出した出力ファイルの仕様派生します。そのジャーナルファイルは転送処理フェーズと .mjf のファイルタイプで処理されます。もしコマンド行に複数のジャーナル名が指定されている場合、指定された最初のジャーナルは、フォワード・フェーズで処理された最初のジャーナルと異なる場合があることに、注意してください。-EXTRACTが -RECOVER(または- ROLLBACK)で指定されている時に、 - JOURNALコマンドは、-RECOVER -FORWARD コマンド、または、( -RECOVER or -ROLLBACK) -BACKWARD コマンド転送フェーズの間に、処理されているすべてのジャーナルレコードを抽出します。

-RECOVER (or -ROLLBACK)を独立して使用される時は、DBファイルが存在しないにもかかわらず、- EXTRACTオプションは結果を処理することができ、しかし、それが利用できるならば、DBにアクセスしようとしません。データベースアクセスが何らかの理由でエラーアウトするならば、ジャーナルファイルの内容は、一時的なデータベースファイルのリネームまたは移動によって、それでもなお抽出することができます。

もしデータベースにあるグローバルの照合が有効ならば、それら照合の情報は、データベースのグローバル変数のツリーに保存され、そして、ジャーナルファイルにはされません。対応するデータベースの存在なしにこのようなグローバルのジャーナルを抽出は意味がないだろうし、もしグローバルが照合されるとしても、MUPIP JOURNALコマンドは、ジャーナルファイルから知る手段はない、したがって、もしそれらが非照合していたならば、それらを抽出するでしょう。

トランザクションが壊れて見つかった場合は、破損トランザクションファイルは抽出され(詳細については-BROKENTRANSのセクションを参照してください)、そして、将来のすべての完全なトランザクションは失われたトランザクションとしてみなされ、そして、失われたトランザクションファイルに抽出されることに(詳細については、- LOSTTRANS セクションを参照してください)、注意してください。

トランザクションの破損を避けるために、または、トランザクション処理を失い、代わりに1つのファイルにすべてのジャーナルレコードを抽出するために、コントロールの修飾子-FENCES=NONEを使用してください。もし-RECOVER または -ROLLBACKをも指定されるならば、- FENCES=NONE を使用しないことを強く推奨します。

-RECOVER

適切なデータベースの中へ指定されたジャーナルファイルからデータベースの更新を再生するためにJOURNALコマンドを指示します。- RECOVERはレプリケートされないデータベースの主要なJOURNAL操作を開始します。JOURNALコマンドは、-RECOVER 単独で、または、- ROLLBACKを除く他のアクション修飾子を用いて、指定することがあります。

もし不完全な囲い(フェンス)を持つトランザクションが見つかった場合、それは壊れているとみなされます。リカバリのフォワード・フェーズ中に、破損したトランザクションの後に、完全なトランザクション(囲い込または囲い込なし(fenced or unfenced))が見つかった場合、 - RECOVERはエラーカウントをインクリメントします。もし - ERRORLIMITが達しているならば、完全なトランザクションが、失われたトランザクションファイルへ行き、それ以外の場合は、データベースに適用されます。

すべてが壊れそして失われたトランザクションは、-RECOVERY の結果として利用できるようになります。それらは2つの異なるテキストファイルにジャーナル抽出形式として書かれます。それらは破損したトランザクションファイルと失われたトランザクションファイルです。BROKENTRANSとLOSTTRANSの制御修飾子の項を参照してください。

フェンスを持ったJOURNAL -RECOVER (FENCES="PROCESS" or FENCES="ALWAYS") を実行する時に、それは論理データベースを構成するデータベースファイルの完全なセットに対応するすべてのジャーナルファイルを含めるためにコマンドは不可欠です。もし指定されたジャーナルのセットが不完全な場合、リカバリーは欠落している領域を含むすべてのトランザクションが壊れていること報告しす。典型的に、これはリカバリーの結果が不十分であるか、または、使用不能でさえあることを意味します。

MUPIP JOURNAL -RECOVERは、リカバリーが発生することができる前に、データベースファイルへの排他アクセスが必要です。これにより、データベース・ファイルへの排他的アクセスが維持されます。つまり、リカバリ時にデータベースファイルにアクセスできなくなります。

-FORWARDのディレクション修飾子について、もしターゲットデータベースの現在のトランザクション数が、その領域により指定されたジャーナルファイルで処理されるための最初のトランザクション数より少ない場合は、-NOCHAIN修飾子が指定されない限り、- RECOVERはその処理の中で前世代のジャーナルファイルを含めることを試みます。ジャーナルファイルの連続する前のリンクに続き、ジャーナルファイルが作成された時からトランザクション数まで-RECOVERは、ジャーナルファイルの前世代を含むように試み、ターゲットデータベースのそれよりも小さくまたは以上に匹敵します。前世代のジャーナルファイルが含まれる時に、 - RECOVERは1つ以上の情報メッセージを発行します。

ターゲットデータベースの現在のトランザクション数は、領域で処理されるために初期のジャーナルファイルの最初のトランザクションの数未満で、-NOCHECKTNが使用されない限り-RECOVERはエラーで終了します。もし1つの領域に複数のジャーナルファイルがMUPIP JOURNAL -RECOVER -FORWARD コマンドの中で指定されるならば、それは- NOCHAINが指定されたように振る舞います。もしジャーナルファイルが完全なセット(たとえば、mumps1.mjl, & mumps3.mjl が指定され、コマンドラインから mumps2.mjl が喪失している)ならば、MUPIP JOURNALエラーアウトは、ジャーナルファイルが指定されて以来、データベーストランザクションの観点で、不連続です。一方、mumps3.mjlだけを指定すると、リカバリにmumps2.mjlとmumps1.mjlが自動的に含まれます。

フォワード・リカバリは、ターゲット・データベース・ファイルの現在のジャーナリング状態を無視します。データベースの更新をフォワード処理中に、ターゲットデータベースファイルのジャーナリングを無効にします(現在、有効(ENABLE)にしている場合)。ただし、ジャーナリングが有効(ENABLE)になってからリカバリの前にオンになっている場合を除き、正常なリカバリが完了した時点で(必要に応じて)データベースのジャーナリング状態をリストアします。後者の場合、リカバリーが成功した時点のジャーナリング状態は、ENABLEおよびOFFに切り替わります。ジャーナリングのないことは、JOURNAL -RECOVER -FORWARDのためにDBへの論理的な更新が実行されます。

ディレクション修飾子-BACKWARDについて、ターゲットDBファイルは、GT.Mがジャーナルへの最後の完全なトランザクションを書き込んだ時のように同じでなければなりません。データベースは障害のための不確定状態にある可能性があるため、この一致のために正確なチェックは不可能です。もしターゲットDBがジャーナリング DISABLE'd(またはENABLE, OFF)になっているならば、 -RECOVER -BACKWARDは、エラーメッセージで終了します。

もしターゲットDBがジャーナリング ENABLE, ON を持ち、しかしDBファイルヘッダーがその領域に指定された最新世代のジャーナルファイル名と一致しない場合は、 -RECOVERはエラーで終了します。

JOURNAL -RECOVER -BACKWARDの先方フェーズの間では、MUPIPジャーナルはDBへ論理更新されます。また、前のイメージも作成されます。それは常に、-RECOVER -BACKWARD または -ROLLBACKのため、ジャーナリングENABLE'd とONを持つことが必要です。

もし時間修飾子が指定されないならば、MUPIP JOURNAL -RECOVER (または -ROLLBACK) -BACKWARDは最適なリカバリーはありません(適切なリカバリーを確保するために必要な最小限の期間に処理しているレコード)。-RECOVER -BACKWARDは、時間修飾子に基づいたいくつかの前世代のジャーナルファイルを含める必要があります(暗黙的または明示的な)。このような包括が発生する時はいつでも、これは適切なメッセージを発行します。バックワードリカバリーの終わりには、DBジャーナリングステータスはENABLE, ONに留まります。

DBファイルが-RECOVER -BACKWARDによってバックアップがロールバックされる時には、2つが同期されるように、対応するジャーナルファイルもロールバックされます。-RECOVER -BACKWARDは、その時には新しいジャーナルファイルを作成します。もしジャーナルレコードのフォワード再生が必要でない場合、新しく作成されたジャーナルファイルは空のままであり、データベースは新しいジャーナルファイルを指し示します。新しいジャーナル・ファイル内のジャーナル割り当ておよび拡張の値は、データベースからコピーされます。新しいジャーナル・ファイル内のautoswitchlimitの値は、最新の世代のジャーナル・ファイルから折り返し点ジャーナル・ファイルの生成までのすべてのジャーナル・ファイルのautoswitchlimit値の最大値です  (折り返し点は、バックワード処理が停止し、転送処理が開始されるジャーナル・ファイル内のポイントです)。新しいジャーナルファイル内のジャーナル 割り当て / 拡張値は、最大のautoswitchlimit の値を共有するジャーナルファイルのセットの最も早い世代から取得されます。

rolled_bak_接頭辞はジャーナルファイルに追加されていることは、その内容全体が-RECOVER -BACKWARDによって、排除されています(ロールバック)。これらのファイルは、MUPIP JOURNAL -RECOVERの後にGT.Mで使用されていません、そして、必要に応じて移動/削除されることができます。

- ROLLBACK

- ROLLBACKは、レプリケートされたデータベースの主要なJOURNAL操作を開始します。MUPIP JOURNALコマンドは、-ROLLBACK単独で、または、他のアクション修飾子を用いて、指定することがありますが、しかし、-RECOVERは用いません。もしあなたが - FETCHRESYNC修飾子を使用しないならば、データベースは最後の一貫した状態にロールバックします。唯一アスタリスク(*)修飾子は、ジャーナルファイル選択のため許可され、つまり、-ROLLBACKはそれ自身によってジャーナルファイル選択をします。MUPIP JOURNAL -ROLLBACKは、リカバリーが発生することができる前に、データベースファイルへの排他アクセスが必要です。それは、データベースファイルへ排他的なアクセスを保ちます、つまり、 - ROLLBACK操作の間に、これらのデータベースファイルはアクセスできなくなります。

-ROLLBACK -BACKWARD は、以下の条件によりエラーメッセージで終了します:

  • 処理されたジャーナル・ファイルに対応するデータベースの領域(Region)には、レプリケーション状態がオフになっています。レプリケートされた領域(Region)と少なくとも1つの複製されていないがジャーナリングされた領域(Region)がある構成は、複製元サーバーによって許可されていないことに注意してください。このような構成では、ジャーナル・プールを設定せずに起動時にソースサーバーがエラーになります。レプリケートされた領域(Region)へすべてのGT.Mの更新がジャーナル・プールのセットアップを持つためにソース・サーバーが必要とされて以来、構成がレプリケートされた領域(Region)、また、「複製されないそしてジャーナルされてない」(non-replicated-and-non-journaled)領域のみを持つために変更されるまで、更新は不要です。

  • コマンド引数により識別されたジャーナル・ファイルに対応する任意のデータベース領域は、ジャーナリングス・テータス DISABLEまたはENABLEとOFFを持ちます。

  • ジャーナルファイルに対応する任意のデータベース領域は、ジャーナルステータスENABLE そしてONを持ち、しかし、データベースファイルのヘッダーに指定されたジャーナルファイル名は、コマンドの引数によって識別される1つよりも異なっています。

もし不完全な囲い(フェンス)を持つトランザクションが見つかった場合、それは壊れているとみなされます。ロールバックの持続期間については、レプリケーションでは、すべての領域ではOFFにされ、そして、ロールバックの終わりでONに戻されます。

ロールバックの前方フェーズの間に、もし完全なトランザクション(フェンスされている、または、フェンスされてない)が、破損したトランザクションの後に発見されるならば、それは失われたトランザクションとして考えられます。ロールバックのフォワードフェーズの間では、MUPIPジャーナルはDBへ論理更新されます。すべてが壊れそして失われたトランザクションは、ロールバックの結果として利用できるようになります。これらは、ジャーナルを抽出するフォーマットとして異なる2つのテキストファイルに書き込まれます。

DBファイルが-ROLLBACKによってロールバックされる時には、2つが同期されるように、対応するジャーナルファイルもロールバックされます。-ROLLBACKは、その時には新しいジャーナルファイルを作成します。もしジャーナルレコードのないフォワード再生が必要ならば、新しく作成されたジャーナルファイルは、空になりそして新しいジャーナルファイルへのデータベースのポイントになります。新しいジャーナルファイルにジャーナルの割り当て/拡張/autoswitchlimitの値は、- RECOVERの下で以前のセクションで-RECOVER -BACKWARDを記述する方法でセットします。

rolled_bak_接頭辞はジャーナルファイルに追加されていることは、その内容全体が-ROLLBACKによって、排除されています。これらのファイルは、MUPIP JOURNAL <s2>-</s2>RECOVERの後にGT.Mで使用されていません、そして、必要に応じて移動/削除されることができます。

-ROLLBACKについて、ターゲットDBファイルは、GT.Mがジャーナルへの最後の完全なトランザクションを書き込んだ時のように同じでなければなりません。

もし - FETCHRESYNCまたは - RESYNC修飾子が指定されてなければ、MUPIPは最適なロールバックをします。

[注意]

-FORWARD, -CHAIN, -CHECKTN, -REDIRECTと他のすべての時間修飾子は、 - ROLLBACKで許可されません。

-SH[OW]=show-option-list

どのようなJOURNALコマンドの情報が指定できるかどうか、ジャーナルファイルについて表示します。もし-FORWARD方向修飾子が-SHOWを使用されて、そして、-RECOVERアクション修飾子が指定されてない場合は、全体のジャーナルファイルは処理されます。-SHOWが -RECOVER(または- ROLLBACK)で指定されている時に、 - JOURNALコマンドは、-RECOVER -FORWARD コマンド、または、( -RECOVER or -ROLLBACK) -BACKWARD コマンド転送フェーズの間に、処理されているすべてのジャーナルレコードを考慮します。 - のRECOVER(または - ROLLBACK)が独立して使用されるならば、このオプションはデータベースアクセスを必要としません。

表示オプションの一覧(show-option-list)には次のものが含まれます(これらは小文字を区別しません):

AL[L]

H[EADER]

P[ROCESSES]

AC[TIVE_PROCESSES]

B[ROKEN_TRANSACTIONS]

S[TATISTICS]

次のリストで、 - SHOWオプションを説明します。

  • AL[L]

    ALLはジャーナルファイルについての情報のすべて利用可能なタイプが表示されます。ショーオプションリスト(show-option-list )を省略すると、ALLはデフォルトです。追加情報については、他の各SHOWキーワードの説明を参照してください。

  • AC[TIVE_PROCESSES]

    ACTIVE_PROCESSESは、JOURNALコマンドのタイム修飾子によって暗黙的にまたは明示的に指定された期間の最後にすべてのアクティブなプロセスを表示します。

  • B[ROKEN_TRANSACTIONS]

    BROKEN_TRANSACTIONSは、JOURNALマンドによってカバーされた期間の最後で不完全なフェンスで囲まれたトランザクションを持った、すべてのプロセスを表示します。

  • H[EADER]

    HEADERは、ジャーナルファイルのヘッダー情報が表示されます。もしMUPIP JOURNALコマンドが-SHOW=HEADERアクション修飾子のみを含んでいるならば、-BACKWARD または -FORWARD のどちらもディレクション修飾子が指定されているかどうかに関係なく、ジャーナルファイルのヘッダ(内容ではない)は処理されます。

    HEADERは、ジャーナルファイルのヘッダにて、ほぼすべてのフィールドが表示されます。NODEフィールドは、最初の12文字の最大まで表示されます。このような情報が含まれています:

    Before-image journal                           ENABLED
    Journal file header size                          2048  [0x00000800]
    Virtual file size                                  100  [0x00000064] blocks
    Crash                                            FALSE
    Recover interrupted                              FALSE
    End of Data                                       7568  [0x00001D90]
    Prev Recovery End of Data                            0  [0x00000000]
    Journal Creation Time                  2003/06/18 11:18:44
    Time of last update                    2003/06/18 11:19:02
    Begin Transaction                                    1 [0x00000001]
    End Transaction                                            101 [0x00000065]
    Align size                                       65536 [0x00010000] bytes
    Epoch Interval                                      30
    Replication State                               CLOSED
    Updates Disabled on Secondary                    FALSE
    Jnlfile SwitchLimit                            8388600 [0x007FFFF8] blocks
    Jnlfile Allocation                                 100 [0x00000064] blocks
    Jnlfile Extension                                  100 [0x00000064] blocks
    Maximum Physical Record Length                    1080 [0x00000438]
    Maximum Logical Record Length                     1056 [0x00000420]
    Turn Around Point Offset                             0 [0x00000000]
    Turn Around Point Time                               0
    Start Region Sequence Number 0000000000000001 [0x0000000000000001]
    End Region Sequence Number   0000000000000000 [0x0000000000000000]
  • P[ROCESSES]

    PROCESSESは、JOURNALコマンドのタイム修飾子によって暗黙的にまたは明示的に指定された期間中にすべてのアクティブなプロセスを表示します。

  • S[TATISTICS]

    STATISTICSは、JOURNALコマンドのタイム修飾子によって暗黙的にまたは明示的に指定された期間中に、プロセスされたすべてのジャーナルレコードのタイプの数を表示します。

-[NO]V[ERIFY]

- VERIFYは、整合性のためにジャーナルファイルを検証します。この修飾子には値を指定できません。もしそれが正規フォームならば - VERIFYはファイルをスキャンしそしてチェックし、もしそうでないならば、データベースファイルに影響を与えずに終了します。

-FORWARDと共に指定された時に、-VERIFYは-NOVERIFY -FORWARDによってジャーナルファイル全体を検証し、だがしかし、ジャーナルファイルの尾部は交差する領域の整合性を検証されます。両方の場合において、 もし-RECOVER - もまた指定されているならば、検証のパスが完了しエラーフリーとなるまでは、ジャーナルレコードの前方再生は、区切られたパスで実行されます。

-BACKWARDと一緒に-VERIFY は、ジャーナルファイルの末尾からポイント周りのターンまで、すべてのジャーナルレコードを検証します。-VERIFY -BACKWARDが-RECOVER または -ROLLBACKと共に指定されている時、バックワード処理は2つのパスに関連があり、それは、ポイント周りのターンまで検証を実行するための最初のパスと、イメージ(PBLK)レコードを適用するための2番目のパスです。

-NOVERIFY -BACKWARDが-RECOVER または -ROLLBACKと共に指定されている時、PBLKsは検証と同じパス内にてデータベースを適用されます。これにより処理が高速化されます。 しかし、このアプローチの欠点は、バックワード処理の途中で終了する検証の場合、領域(Region)横断の完全性の保護がないことです。F.I.S.は、-RECOVER or -ROLLBACKをともなった-VERIFYの使用を推奨します。

<s11> - </s11>RECOVER(または<s12> - </s12> ROLLBACK)が独立して使用されるならば、-[NO]VERIFY オプションはデータベースアクセスを必要としません。デフォルトは-VERIFYです。

ジャーナル ディレクション修飾子

次の2つの修飾子はジャーナル処理のディレクション(方向)を制御します:

-バックワード(BACKWARD)

MUPIP JOURNAL処理はジャーナルファイルの末尾から続行する必要があることを指定します。もしアクションを含むならば、-RECOVER, JOURNAL -BACKWARDは、それが順方向(フォワードフェーズ)でデータベースの更新を反転し処理する前に明示的または暗黙的に指定されたポイント(ポイントの周りの変化)へファイルのバックアップの最後からビフォアイメージを復元します。

[注意]

-BACKWARDは、-FORWARDと互換性はありません。

-FO[RWARD](フォワード)

指定されたaction修飾子のMUPIP JOURNAL処理が、与えられたジャーナル・ファイルの先頭から始まることを指定します。-RECOVERアクション修飾子が処理している時、特定のケースでは、MUPIP JOURNALは指定されたジャーナルファイルの最初のレコードの前へ行く必要があり、すなわち、それは前世代のジャーナルファイルから起動することができます(詳細は-RECOVERを参照)。

もし複数のジャーナルファイルがコマンドラインで指定されているならば、-FORWARDは、各領域の作成時刻に基づいた範囲内でジャーナルファイルをソートし、そして、初期のジャーナルファイルからそれらの開始を処理します。もし- NOCHECKTN修飾子を指定して無い場合は、 -FORWARDはトランザクション数の全範囲だけでなく時間の全範囲の条件の両方で、それらが連続することが確実になるためにそれぞれの地域に対応する、ジャーナルファイルのチェックを実行ます。不連続性を検出た場合は、-FORWARDはエラーアウトします。

[注意]

-FORWARDは、-BACKWARD と -ROLLBACKとは互換性がありません。

ジャーナル時間修飾子

時間を指定するジャーナル修飾子は、絶対時刻または相対時刻(delta time)形式の引数を受け入れます。時間引数は二重引用符("")で囲んでください。UNIXのシェルによってプロセスの始まりからそれをエスケープするための開始と終了の引用符の両方の前に、バックスラッシュ(\)を含めてください。

絶対的なフォーマットはday-mon-yyyy hh:mm:ss で、(day)は月の日付を表し(mon)は月の名前を短縮した3文字を示し(例えば、Jan, Feb,..)年(yyyy)と時刻の(hh)はスペースで区切られています。絶対的な時間は、時(hours)の前に"-- "を付けて今日の日付を示してください。

デルタフォーマットは day hh:mm:ss で、日、時、分、秒、の数を示しますが、ここでは、日と時間(hh)は、スペースで区切られています。もしデルタ時間が1日未満の場合は、ゼロ(0)ではじまりスペースが続く必要があります。

デルタ時間は、常にMUPIP JOURNALコマンドへ引数によって指定されたすべてのジャーナルファイルの中で最後のレコードの最大時間への相対パスです。

[注意]

すべての時間修飾子は、 - ROLLBACKと互換性がありません。

次のセクションでtime修飾子の詳細について説明します:

-A[FTER]=time

ジャーナルとポイントを識別する参照タイムスタンプを指定し、その後に、JOURNALはジャーナルファイルで処理を開始します。この時間修飾子は、-FORWARD のみに適用されます。

もし-AFTER= がジャーナルファイルの中に記録された最後の時間に続く、または、任意の-BEFORE= time に続く、時間を提供するならば、JOURNAL処理は結果をまったく生成せず、そして、警告メッセージが表示されます。もし -AFTERがコマンドラインで指定されたジャーナルファイルで記録された最初の時間に先行する時間を提供するならば、そして、前世代のジャーナルファイルがそのジャーナルファイルに存在するならば、前世代のジャーナルファイルは処理に含まれません。前世代のジャーナル・ファイルをコマンド行で明示的に指定して、考慮する必要があります。

-AFTERとともに-BEFOREを使用することは、ジャーナルファイルで特定の期間の時間を処理することを制限します。

[注意]

-AFTER=は、-EXTRACT, -SHOW, -VERIFYを除いて、-BACKWARD とすべてのアクション修飾子とは互換性がありません。

-BE[FORE]=time

任意のアクション-FORWARD または -BACKWARD のために終了する時間を指定してください。指定された時刻は、ジャーナル・ファイルのタイム・スタンプを参照します。もし-BEFORE= がジャーナルファイルの中に記録された最初の時間に先行し、または、任意の-AFTER= または -SINCE= time に先行する時間を特定するならば、JOURNAL処理は結果をまったく生成せず、そして、警告メッセージが表示されます。

もし-BEFORE= time がジャーナルファイルに記録されたを最後の時間を超えるならば、効果的なジャーナル処理は修飾子を無視し、そして、ジャーナルファイルの末尾で終了します。デフォルトでは、JOURNAL処理はジャーナルファイルの最後で終了します。

[注意]

-BEFORE=は、- ROLLBACKを除き、他のすべてのJOURNAL修飾子と互換性があります。

-[NO]LOO[KBACK_LIMIT][=lookback-option-list]

開いているトランザクションのフェンスを解決しようとする間は、どれくらいJOURNAL -BACKWARDが過去のターンアラウンドポイントの処理なのかを指定してください。(そのポイントとは、フォワードディレクションでのデータベースを反転し処理する前に-RECOVERがバックワードを続行するためにアップされるジャーナルファイルで明示的または暗黙的なポイント)このオプションは、ZTSTARTとZTCOMMITを持つトランザクション・フェンスでのみに適用されます。TSTARTとTCOMMITを持つトランザクションフェンスについては、 -RECOVERは常に開いているトランザクションのフェンスを解決します。

LOOKBACK_LIMIT=optionsは、時間とトランザクション数が含まれます。-NOLOOKBACK_LIMIT は、指定するJOURNAL -BACKWARDは、必要に応じて、開いているトランザクションのフェンスを解決するために、、、ジャーナルファイルを開始するすべての方法を処理できます。LOOKBACK_LIMIT= は、-FORWARDと互換性はありません。

-FENCES=NONE の時、 JOURNAL処理は-LOOKBACK_LIMITを無視します。

- LOOKBACK_LIMITオプションは:

  • TIME=time

    これは、LOOKBACKをデルタまたは絶対ジャーナル時間の指定された量だけ制限します。

  • OPERATIONS=integer

    これにより、LOOKBACKは指定されたデータベース・トランザクション数に制限されます。

TIME LOOKBACKオプションの名前とその値は、引用符( "")で囲む必要があります。

例:

-lookback=\"time=0 00:00:30\"

-LOOKBACK_LIMIT= に両方のオプションを指定する場合は、カンマ(,)で区切る必要があります。たとえば、次のようにします:

-lookback=\"time=0 00:00:30,operations=35\"

LOOKBACK_LIMIT= が両方のオプションを指定すると、最初の制限に達したLOOKBACKを終了します。

デフォルトでは、MUPIP JOURNALは、オープンフェンスを解決するために、 -SINCE= の前にジャーナル時間を5分を提供する-LOOKBACK_LIMIT=\"TIME=0 00:05\" を使用します。 - LOOKBACK_LIMITは、 - NOLOOKBACK_LIMITが指定されたように、初期のジャーナルファイルの作用が開始する前よりはるか上限を指定します。

-SI[NCE]=time

-BACKWARDを持ってアクション修飾子による開始時間を指定してください、つまり、 -SINCEはどれくらい時間が後退するかを指定するかについて、JOURNAL -BACKWARDがフォーワード処理を開始する前に(ジャーナルファイルの末尾から)処理すべきです。

指定された時刻は、ジャーナル・ファイルのタイム・スタンプを参照します。JOURNAL -BACKWARDが-SINCE= time に位置する時に、もしフェンスで囲まれたトランザクションが開いているならば、コマンドがまた-FENCES=NONE を指定する場合を除き、それは、それらを解決するためにバックワード処理を続行します。もし-SINCE= time がジャーナルファイルに記録された最後の時間を上回りまたは任意の-BEFORE=timeが続くならば、JOURNAL処理は事実上修飾子を無視し、警告メッセージが表示されます。

デフォルトでは、 -SINCE= time は 0 00:00:00 です。

[注意]

-SINCE= は、-FORWARDと互換性はありません。

ジャーナル シーケンス番号修飾子

これらの修飾子は、-ROLLBACKのみ互換性があります。

-FET[CHRESYNC]=<port number>

-FETCHRESYNC は、プライマリシステムからフェッチされる参照ポイント(a JNL_SEQNO)により識別されるそのトランザクションをロールバックするために使用されています。このコマンドは、セカンダリソースサーバー(現プライマリー)を引き継いだその時のジャーナルシーケンス番号を旧プライマリソースサーバーにロールバックします。通信ポート番号<port number>は、現在のプライマリソースサーバーからの参照ポイントを取得するロールバックコマンドを使用します。

ロールバックのための<port number>は、受信側のサーバーによって使用される同じ番号で、それはプライマリが通信の確立を試みようとする番号であることに、注意してください、、、

プライマリシステムのから送信された参照ポイントは、プライマリソースサーバーが保持するRESYNC_SEQNOです。データベース/ジャーナルファイルは、以前のRESYNC_SEQNOにロールバックされます(つまり、プライマリソースサーバーから1つの受信され、または、ローカルに1つ保持される)。

-RES[YNC]=<journal sequence number>

データベース/ジャーナルファイルが特定のポイントにロールバックされることが必要な時にのみ、-RESYNC= はジャーナルのシーケンス番号により識別されるトランザクションをロールバックするために使用されます。もし一貫性のある状態の最後より大きいジャーナルシーケンス番号を指定するならば、データベース/ジャーナルファイルの一貫した状態の最後にロールバックされます。通常の動作条件下では、この修飾子は必要ありません。F.I.S.は、 - FETCHRESYNCを信頼し-RESYNC修飾子の使用を避けることを強く推奨します。

ジャーナル Control修飾子

次の修飾子はジャーナル処理を制御します:

-[NO]AP[PLY_AFTER_IMAGE]

- APPLY_AFTER_IMAGEは、イメージレコード(AIMG)がバックワードリカバリーまたはロールバックのフォワード処理の一部としてデータベースに適用される後に指定します。AIMGは、DSEの更新が原因で発生した変更の直後に、GTMによりキャプチャーされたデータベース更新の"スナップショット"です。デフォルトでは、バックワード・リカバリーまたはロールバックのフォワード・フェーズの間に、AIMGレコードはデータベースに適用されます。

デフォルトでは、 -RECOVER -FORWARDは、データベースに記録されたAIMGを適用しません。-APPLY_AFTER_IMAGEは、、-RECOVER または -ROLLBACK アクション修飾子だけと互換性があります。

-BR[OKENTRANS]=<extract file>

-BROKENTRANS= は、-ROLLBACK, -RECOVER, -EXTRACTのためのオプションの修飾子です。もしこれが指定されておらず、破損したトランザクション・ファイルの作成が必要な場合、MUPIP JOURNALは、処理中の現在のジャーナルファイルの名前を .broken 拡張子を使って1つ作成します。

もし selection修飾子が指定されている場合、破棄されたトランザクションの決定(したがって、トランザクションの決定も同様に失われます)は、selection修飾子でフィルタリングされたジャーナル・ファイルに基づいて行われます。これは、トランザクションのジャーナルレコードが、選択修飾子の性質に応じて、完全にまたは破損または失われたことを考慮すべきことを意味します。選択修飾子と共に-FENCES=NONEの使用は、完全とみなされるすべてのジャーナルレコードの中でこのゆえ破損を防止または処理中に失われたトランザクションの結果になります。

-[NO]CHA[IN]

-CHAINは、-FORWARD修飾子によってジャーナルファイルの前世代を含むためにJOURNAL処理を許可されることを指定します。もしJOURNAL -RECOVERが、前世代のジャーナルファイルを処理することを必要としそして-NOCHAINが指定されるならば、MUPIP JOURNALはエラーで終了します。

-CHAINはデフォルトです。この修飾子は-FORWARD ディレクション修飾子のみ互換性があります。

-[NO]CHE[CKTN]

データベースファイルの現在のトランザクションと同じである領域に処理されるための最早のジャーナルファイルのトランザクションを開始する番号と、すべてのジャーナルファイルの最後のトランザクション数が領域に与えられる次の世代のジャーナルファイルのトランザクションの開始する番号とが等しいことを、JOURNAL -FORWARDは各々の領域を検証すべきで、これらのことを、-CHECKTN は指定します。

- CHECKTNは、-BACKWARD修飾子と - ROLLBACKコマンドとも、互換性はありません。デフォルトでは、JOURNAL -FORWARDは、-CHECKTNを使用します。

-[NO]ER[ROR_LIMIT][=integer]

MUPIP JOURNAL処理を受け入れるエラーの数を指定します。エラーの数が-ERROR_LIMITを超える時、 -INTERACTIVE修飾子は、JOURNAL処理を停止するか、または、オペレータによって延期するかどうかを決定します。 - NOERROR_LIMITは、エラーによる停止からMUPIP JOURNALを防ぎます。ジャーナル処理は、エラーの数にかかわらず、ジャーナル・ファイルの終わりに達するまで続きます。

-NOERROR_LIMITは、-ERROR_LIMIT=0と同じではないことに、注意してください。

デフォルトでは、MUPIP JOURNALは、適切なエラーアクションを開始するたの最初のエラーを引き起こしている-ERROR_LIMIT=0を使用します。クラッシュの場合、そこではジャーナルファイルの末尾にいくつかの不完全なジャーナルレコードがあるかもしれない。MUPIP JOURNALは、エラーとしてこれらをみなしません。加えて、フェンスで囲まれたトランザクションは、エラーとはみなされませんが、壊れています。

リカバリーのフォワードフェーズの間では、もし壊れたトランザクションが見つかったならば、後で処理されるすべての論理レコードは、疑わしいと見なされます。もし完全なトランザクションが、すべて壊れたトランザクション後に発見されるならば、MUPIP JOURNAL -RECOVERはエラーカウントをインクリメントし、そして、もしエラーの制限よりも小さい場合は、それをデータベースに適用されます。それ以外の場合は、失われたトランザクションとして処理され、抽出されます。もし完全なトランザクションがすべて壊れたトランザクション後に発見されるならば、MUPIP JOURNAL -ROLLBACKは失われたトランザクションを処置し、そして、エラー制限に無関係なそれを抽出します。

もしMUPIP JOURNALがその処理の間にインクリメントエラーカウントを必要とするならば、エラーカウントがインクリメントされる時には、以下の場合を除いて遭遇されるすべてのエラーについて警告メッセージが発生するが、しかし、警告メッセージは表示されない。

  • 壊れたトランザクションの後に完全なトランザクションが見つかった場合

  • -EXTRACT -FULLがエラーに遭遇する時

もしMUPIP JOURNALがエラーカウントの値が0以外で正常に完了すると、戻りステータスは成功ではなく警告になります。

-FE[NCES][=fence-option]

どのようにJOURNALがフェンスで囲まれたトランザクションを処理するかを指定します。フェンスで囲まれたトランザクションは、TSTARTまたはZTSTARTコマンドとそれぞれに続くTCOMMITまたはZTCOMMITコマンドにより先行するデータベースの更新が成立する論理トランザクションです。TSTARTまたはZTSTARTとTCOMMITまたはZTCOMMIT間のすべての更新は共にに発生するように設計され、そのため、ジャーナルリカバリーデータベースはフェンスで囲まれたトランザクション、または、それらが無いどちらか一方に一致するすべての更新を含みます。

MUPIP -RECOVERの-FENCES オプションの引数の値は、大文字と小文字は区別されません。

フェンスオプションは:

  • NONE

    これは、あたかもトランザクションのフェンスが存在していないように、すべての個別の更新を適用するためにMUPIP JPURNALを引き起こします。これはTPまたはZTPトランザクション内のSET/KILLが、あたかもフェンスのないSET/KILLがあったかのように、再生されるべきことを意味することに、注意してください。これにより、新しいジャーナルを作成したデータベースを引き起こす可能性があります(存在する場合 - 下位互換)の状態からの回復が行われたの前に異なることが指定されます。

  • ALWAYS

    これにより、MUPIP JOURNALは、フェンス(囲い込み)の無いまたは不適切なフェンス(囲い込み)の更新を破損したトランザクションとして扱います。

  • PROCESS

    これにより、MUPIP JOURNALは、フェンス(囲い込み)の無いデータベースの更新を受け付け、フェンスが現れたときにそれを観察し、対応するTCOMMITがないTSTARTの場合は破損したトランザクションファイルを生成し、対応するZTCOMMITがない場合はZTSTARTを監視します。また、もしTSTARTとTCOMMITを使用する複数の領域(Region)のトランザクションでN個の領域(Region)が関係すると予想されるが、見つかったTSTART/TCOMMITペアの数がN個より少ない場合にも、破損したトランザクションが生成されます。複数の領域(Region)のZTSTARTおよびZTCOMMITについても同様に生じます。

デフォルトでは、MUPIP JOURNALは-FENCES=PROCESSを使用します。

-FU[LL]

-EXTRACT 修飾子と共に使用した時の-FULLは、抽出されるすべてのジャーナルレコードを指定します。ジャーナルファイルの内容は、データベースとジャーナルを同期して維持するために、バックワードリカバリーまたはロールバックの場合には、ロールバックすることができます(詳細はRECOVER または ROLLBACKのセクションを参照)。ジャーナルファイルの内容を切り捨てでない代わりにジャーナルファイルのヘッダーにフィールドを設定し、これはMUPIP JOURNAL -SHOW=HEADERの出力で "Prev Recovery End of Data" として表示し、ファイルのヘッダーにロールバックと別のフィールドを設定する前にジャーナルファイルの終了を指示するために、新しいジャーナルファイルの終わりを指示するために、これは達成されます。(このフィールドは MUPIP JOURNAL -SHOW=HEADERの出力で"End of Data"として示しています)。一度ジャーナルファイルの内容がロールバックされると、将来のすべてのMUPIP JOUNALコマンド( - EXTRACTを含む)は、ロールバックされたジャーナルのファイルのみ動作します。しかし、もし-FULLが、-EXTRACTと共に指定されてるならば 、全体のジャーナルファイルの内容は抽出されます(ロールバックされたこれらのレコードを含む)。この修飾子は診断ツールとしてのみ使用され、通常の操作では使用されません。

-FULL修飾子は、-EXTRACTのみ互換性があります。

-[NO]IN[TERACTIVE]

-ERROR_LIMIT の各々のエラーオーバーかどうかを指定してください。JPURNAL処理は処理の継続を制御するためのオペレータ呼び出し応答を促します。もしオペレータが処理を続行すべきでないことをレスポンスした場合、MUPIP JOURNALコマンドは終了します。

MUPIP JOURNALコマンドが- ERROR_LIMITで指定されたエラー番号を生成するとすぐに、-NOINTERACTIVE はジャーナル処理が終了します。

この修飾子は、対話モードまたは端末モードにのみ適用されます。デフォルトは - INTERACTIVE です。

-LOST[TRANS]=<extract file>

-LOSTTRANSは、-RECOVER, -ROLLBACK, -EXTRACTのためのオプションの修飾子です。もしこれが指定されてなくて、失われたトランザクション・ファイルの作成が必要な場合、MUPIP JOURNALは .lost 拡張子で処理されている現在のジャーナル・ファイルの名前を使用してジャーナルファイルを作成します。

壊れたトランザクションの後の完全なトランザクションは、失われたトランザクションとみなされます。それらは失われたトランザクション・ファイルに書き込まれます。もし - ERROR_LIMIT 修飾子がそれをするようであれば、-RECOVERのために、それは良いのトランザクションでかつデータベースに適用されるとして見なされるかもしれない。

もし selection修飾子が指定されている場合、破棄されたトランザクションの決定(したがって、トランザクションの決定も同様に失われます)は、selection修飾子でフィルタリングされたジャーナル・ファイルに基づいて行われます。これは、トランザクションのジャーナルレコードが、選択修飾子の性質に応じて、完全にまたは破損または失われたことを考慮すべきことを意味します。選択修飾子と共に-FENCES=NONEの使用は、完全とみなされるすべてのジャーナルレコードの中でこのゆえ破損を防止または処理中に失われたトランザクションの結果になります。

レプリケートされたデータベースの場合、失われたトランザクションには更なる原因があります。もしフェールオーバーが発生するならば、(つまり、プライマリソースサーバーAがフェイルし、そして、セカンダリーソースサーバーBがプライマリシステムの役割をすることを前提として)、Aのデータベースへコミットされたいくつかのトランザクションは、Bのデータベースに反映されないことがあります。旧プライマリが新セカンダリになる前に、これらのトランザクションをロールバックすべきです。これらのトランザクションは、"失われたトランザクション" として知られます。これらは完全なトランザクションであり、壊れたトランザクションとは異なることに注意してください。MUPIP JOURNAL -ROLLBACKは、この修飾子で指定された抽出ファイルの中で、抽出される失われたトランザクションを保存します。失われたトランザクションを検索のための開始点は、 - FETCHRESYNC 操作でプライマリソースサーバーから取得されるジャーナルのシーケンス番号です。

-RED[IRECT]=file-pair-list

JOURNAL -RECOVER は、それが作成された1つ以上の異なるデータベースへ ジャーナルファイルを再生することを指定してください。トレーニングやテストするデータベースを作成したりまた整備するためにこの修飾子を使用します。

この修飾子は、-RECOVERアクションと-FORWARD ディレクション修飾子のみに適用します。JOURANLが-REDIRECTを拒否しない限りは、それは-RECOVERを現れます。

file-pair-listは、ファイル名を括弧()で囲まれカンマ(,)で区切られた1つまたは複数のペアで構成されます。ペアは、以下の形式で、等号(イコール)で区切られています:

old-file-name=new-file-name

ここでは、、、、古いfile-nameは元のデータベースファイルを識別し、そして、新しいファイル仕様のファイル名は- RECOVERのターゲットを識別します。古いファイルの仕様は、常に、-SHOWを使用して決定されることができます。

デフォルトでは、JOURNALは、ジャーナルに作られたそれからデータベースファイルへ-RECOVERを指示します。-REDIRECTは、-ROLLBACKと互換性はありません。

例:

$ mupip journal -recover -forward -redirect="(bgdbb.dat=test.dat)" bgdbb.mjl

このJOURANLコマンドは、-REDIRECT が bgdbb.dat からtest.datへbgdbb.mjl の中で更新するようなフォワード・リカバリーをします。

-VERB[OSE]

- VERBOSEは、処理過程で冗長な出力をプリントアウトするMUPIP JOURNALを作り出すオプションの修飾子です。それは無視されず、デフォルトではOFFに設定されています。

ジャーナル選択修飾子

ジャーナル選択修飾子は、-EXTRACT と -SHOW 操作のみ互換性があります。これは、ほとんどのアプリケーションが、アプリケーション設計の外部にある基準に基づいてトランザクションのサブセットを安全に削除するように構築されていないためです。いくつかの選択基準に基づいたリカバリーからのトランザクションを除外するには、方法論は-EXTRACT レコードで、そして、ジャーナルリカバリーというよりむしろアプリケーションロジックを通してそれらを適用します。このアプローチにより、アプリケーションロジックは、削除されたトランザクションと保持されたトランザクションとの間のあらゆる対話を適切に処理することができます。 selection修飾子を使用すると、フェンスされた(囲われた)トランザクションのジャーナル・レコードのサブセットのみが抽出されることに注意してください (例えば、対応するTCOMMITレコードが抽出されて取り出されている間、トランザクションがselection修飾子によって取り除かれるその最初の更新の理由でTSTARTレコードは抽出されないことがあります)。これは、実際にそれがない時に破壊が見えるために、フェンス(囲い込)されたトランザクションが発生することができます。

次の修飾子は、ジャーナル処理のためのselection基準を制御します。

[注意]

- TRANSACTIONを除いて、すべての修飾子は、カンマ(,)で区切られたリストの値を指定することを可能にします。

-G[LOBAL]=global-list

処理を含めるか、または、処理から除外するにはMUPIP JOURNAL用のグローバルを指定してください。この修飾子は、特定のデータを抽出し解析するために役に立つと思うかもしれません。

グローバル・リスト(global-list)には、キャレット記号(^)の前に1つ以上のグローバル名(添え字なし)が含まれています。複数のグローバルを含めるには、次の構文のいずれかを使用してください:

$ mupip journal -forw -glob="^A*,^C" mumps.mjl
or
$ mupip journal -forw -glob="(^A*,^C)" mumps.mjl

名前は、アスタリスク(*)でワイルドカードを含めることができます。つまり、-GLOBAL="^A*" は、Aから始まる名前を持つすべてのグローバル変数を選択します。指定されたグローバルへデータベース更新を除外するためにJOURNALを必要となっているリスト全体またはそれぞれの名前は tilda sign (~)ティルダ記号より先にオプションを付ける必要があります。MUPIP JOURNAL -GLOBALでグローバルリストは、 tilda sign (~)ティルダ記号で開始しない時は、JOURNALは明示的に名づけられたグローバルのみを処理します。デフォルトでは、JOURNALはすべてのグローバルを処理します。

添字を指定するために、-GLOBAL="^A(1)" を使うことは、^A(1)ツリー以下に含まれるべきすべてのキーを生じさせ、すなわち、-GLOBAL="^A(1,*)"を使用するのと同等です。アスタリスク(*)またはパーセント(%)は、グローバル仕様の任意の位置で許可されます。パーセント(%)は任意の文字と一致し、アスタリスク(*)は任意の文字列(ゼロの長さもある)と一致します。アスタリスク(*)またはパーセント(%)の仕様では、-USER修飾子も使用することができます。

例:

^GBLTMPを除いて、すべての^GBL*を抽出するためには:

mupip journal -extract -global="^GBL*,~^GBLTMP" -for mumps.mjl

^GBL(1,"TMP")を除いて、すべての^GBLを抽出するためには:

mupip journal -extract -global=\"^GBL,~^GBL\(1,\"\"TMP\"\"\)\" -for mumps.mjl

バックスラッシュ(\) 区切り文字は、添字開始の二重引用符(")をMUPIPに渡すためにUNIXでは必要とされます。

グローバル修飾子の文字列のエラー解析が発生した時は必ず、INVGLOBALQUALエラーはコマンドラインでエラーオフセットと共に発行されます。

-ID=pid-list

プロセス識別番号(PIDs)によって識別された1つまたは複数のプロセスによって生成されたデータベースの更新が含まれまたは除外されるJOURNALプロセスを指定します。指定されたPIDにより開始されるデータベース更新を除外するためにJOURNALを必要としているリスト全体またはそれぞれのPIDは、 tilda sign (~)ティルダ記号より先にオプションを付ける必要があります。トラブルシューティングやデータ解析のため、この修飾子を使用することがあります。

デフォルトでは、JOURNALはそれによって開始されるPIDに関係なくデータベースの更新を処理します。

-T[RANSACTION]=transaction-type

処理を含めるか、または、処理から除外するにはJOURNALのためにトランザクションタイプを指定してください。たとえば、データを見落とすことに可能性がある原因を見つけるためにKILL操作でレポートだけを行う、この修飾子を使用することがあります。

トランザクションタイプは、SETおよびKILLであり、そして、否定ができます。これらのタイプは、同じ名前のMコマンドに対応します。JOURNAL -TRANSACTIONを持つトランザクションタイプ が否定されていない時は、JOURNALは名づけられたタイプのトランザクションのみを処理し(例えば、-TRANSACTION=KILL )、もし否定されるならば、JOURNALは名づけられたタイプのトランザクションは処理しません(例えば、-TRANSACTION=NOKILL)。

デフォルトでは、そのタイプに関係なく、JOURNALはトランザクションを処理します。

-U[SER]=user-list

一人または複数ユーザによって生成されたデータベースの更新が含まれまたは除外されるJOURNALプロセスを指定します。特定のユーザーのアクションを監査するためにこの修飾子を使用することができます。ユーザーリストは、1つまたは複数のユーザの名前が含まれます。カンマ(,)で区切られた名前で複数のユーザーを示します。名前は、アスタリスク(*)でワイルドカードを含めることができます。指定されたユーザにより開始されるデータベース更新を除外するためにJOURNALを必要としている、リスト全体またはそれぞれのPIDは、マイナス記号 (-) ティルダ記号 (~)より先にオプションを付ける必要があります。JOURNAL -USERでユーザリストは、 tilda sign (~)ティルダ記号で開始しない時は、JOURNALは、明示的に名づけられたユーザにより生成されたそのデータベース更新のみを処理します。アスタリスク(*)またはパーセント(%)の仕様では、-USER修飾子を使用することができます。パーセント(%)は任意の文字と一致し、アスタリスク(*)は任意の文字列(ゼロの長さもある)と一致します。

デフォルトでは、JOURNALはそれらによって開始されるユーザに関係なくデータベースの更新を処理します。

ジャーナル修飾子の規則と互換性

ただし、各修飾子の非互換性リストに対抗する説明があるが、他の修飾子を共有するこれらのすべてはこのセクションにまとめられています。以下の説明では、XがYアクション修飾子のセットのみに互換性があるならば、Xはコマンドラインで指定される時はいつも、少なくとも1つのYアクション修飾子も同じコマンドラインで指定される必要があり、さもなければ、それはエラーとなることを、これは意味します。

  • ファイルリストは、-ROLLBACKでアスタリスク(*)である必要があります。

  • ファイルリストは、-REDIRECTでアスタリスク(*)である必要があります。

  • -FORWARDは、-BACKWARD, -ROLLBACK, -SINCE, -LOOKBACK_LIMIT と互換性がありません。

  • -BACKWARDは、-FORWARD, -AFTER, -CHECKTN, -NOCHAIN, -REDIRECT と互換性がありません。

  • -ROLLBACKアクション修飾子は、-RECOVERアクション修飾子と互換性がありません。

  • -AFTERは、-RECOVER, -ROLLBACK アクション修飾子と互換性がありません。

  • -FETCHRESYNC または -RESYNC は、-ROLLBACK アクション修飾子だけ互換性があります。

  • <-LOSTTRANSは、-RECOVER, -ROLLBACK, または -EXTRACT アクション修飾子のみ互換性があります。

  • <-BROKENTRANSは、-RECOVER, -ROLLBACK, または -EXTRACT アクション修飾子のみ互換性があります。

  • -REDIRECTは、-RECOVERアクション修飾子のみ互換性があります。

  • - APPLY_AFTER_IMAGEは、、-RECOVER, または -ROLLBACKのみ互換性があります。

  • -DETAILは、-EXTRACTアクション修飾子のみ互換性があります。

  • -FULLは、、-EXTRACT, -SHOW, または -VERIFY アクション修飾子のみ互換性があります。

  • ジャーナル時間修飾子は、 - ROLLBACKアクション修飾子と互換性がありません。

  • ジャーナル選択修飾子は、、-RECOVER, -ROLLBACK, -VERIFY アクション修飾子と互換性はありません。

ジャーナル抽出フォーマット

ジャーナル抽出(Journal EXTRACT)ファイルは、常にラベルで始まります。GT.Mの現在のリリースでは、単純なジャーナルを抽出ファイルで、ラベルは GDSJEX01 です。このラベルは、ファイルのフォーマットを識別するために必要です。

ラベルはジャーナルレコード抽出が続きます。-EXTRACT 出力レコードは、バックスラッシュ (\) によって区切られたフィールドまたは部品(piece)で構築されています。-EXTRACT 出力レコードの最初の部品(piece)は2桁の10進数のトランザクションレコードの種類を含みます(例えば、プロセスの初期レコードとして 01)。2番目の部分は、$HOROLOG形式で表されている完全な操作の日付と時刻を含みます。3番目の部品(piece)は、このジャーナルレコードを書いている時点での、データベースのトランザクション番号が含まれます。4番目の部品は、10進数として表される、操作を実行したプロセスのプロセスID(PID)が含まれます。残りのレコードはレコード・タイプによって異なります。フィールドは、GT.Mに割り当てられた番号を含んでいる"データベースのトランザクション番号"として説明されます。その番号とは、ジャーナルファイルでカバーされた時間の範囲内でトランザクションを識別する一意な割り当て番号です。

レコードタイプ、SET, KILL, ZKILL, TSTART, TCOMMIT は、出力の一部としてトークン・シーケンス(token_seq)が含まれます。これは、ジャーナルレコード抽出の出力では6番目のフィールドです。利用中にレプリケーションがある時は、トークンシーケンス(token_seq)は、各トランザクションをユニークに識別するそのジャーナルのシーケンス番号(jsnum)です( 詳細な情報は、 第7章: "データベースのレプリケーション" のジャーナルのシーケンス番号を参照してください)。利用中にレプリケーションが無くそしてトランザクションがTPまたはZTPの時には、token_seq は、TPまたはZTPトランザクション全体を一意に識別するその、8バイトのトークンです。ジャーナルレコードの非レプリケート、非TP、非ZTPのために、token_seq は 0(ゼロ)です。

タイプ01 - プロセスの初期化レコード

タイプ01レコードは、最初に現在のジャーナルファイルへの更新を初期化するプロセス/イメージを示します。プロセスの初期化レコードのフォーマットは:

01\time\tnum\pid\nnam\unam\term\clntpid\clntnnam\clntunam\clntterm

これは:

time

$HOROLOG形式の完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

nnam

ノード名(最初の20文字が抽出されるまで)

unam

ユーザ名

term

ターミナル名

clntpid

クライアントの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

clntnnam

クライアントプロセスのノード名(GT.CMの場合)

clntunam

クライアントプロセスのユーザ名(GT.CMの場合)

clntterm

クライアントプロセスのターミナル名(GT.CMの場合)

タイプ02 - プロセス終了レコード

タイプ02 レコードは、現在のジャーナルファイルの関心領域から落されるプロセス/イメージを示します。プロセス終了レコードのフォーマットは:

02\time\tnum\pid\clntpid

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

タイプ03 - ファイルレコードの最後

タイプ03 レコードは、このジャーナルファイルへの関心領域から落されるすべてのGT.M イメージを示し、ジャーナルファイルを正常に閉鎖されました。ファイル終了のレコードフォーマットは:

03\time\tnum\pid\clntpid\jsnum

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

jsnum

ジャーナル シーケンス番号

タイプ04 - Killレコード

タイプ04 レコードは、KILLコマンドによって引き起こされるデータベース更新を示します。KILLレコードのフォーマットは:

04\time\tnum\pid\clntpid\token_seq\node

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token_seq

リプリケーションでは jsnum、レプリケーションがなk囲まれている場合はトークン(token)、そうでない場合はゼロ(0)

node

外部形式のMノード参照

タイプ05 - セットレコード

タイプ05 レコードは、SETコマンドによって引き起こされるデータベース更新を示します。SETレコードのフォーマットは:

05\time\tnum\pid\clntpid\token_seq\sarg

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token_seq

リプリケーションでは jsnum、レプリケーションがなk囲まれている場合はトークン(token)、そうでない場合はゼロ(0)

sarg

M set の引数

[注意]

M SET引数は、等号(=)とM データ文字列の式によって続くノードの参照を持ちます。

タイプ06 - ZTransactionスタートレコード

タイプ06 レコードは、ZTSTARTコマンドを示します。トランザクションスタートレコードのフォーマットは:

06\time\tnum\pid\clntpid\token\jsnum

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token

8バイトのトークン( token )

jsnum

レプリケーション用のジャーナル シーケンス番号、そうでなければ ゼロ(0)。

タイプ07 - ZTransactionコミットレコード

タイプ07 レコードは、ZTCOMMITコマンドを示しています。トランザクションコミットのレコードフォーマットは:

07\time\tnum\pid\clntpid\token\jsnum\part

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token

8バイトのトークン( token )

jsnum

レプリケーション用のジャーナル シーケンス番号、そうでなければ ゼロ(0)。

part

この囲まれたトランザクションに関与する異なった領域の数

タイプ08 - トランザクション開始レコード

タイプ08 レコードは、TSTARTコマンドを示しています。トランザクションスタートレコードのフォーマットは:

08\time\tnum\pid\clntpid\token_seq

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token_seq

リプリケーションでは jsnum、レプリケーションがない場合はトークン(token)

タイプ09 - トランザクションCOMMITレコード

タイプ09 レコードは、TCOMMITコマンドを示しています。トランザクションコミットのレコードフォーマットは:

09\time\tnum\pid\clntpid\token_seq\part\tid

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token_seq

リプリケーションでは jsnum、レプリケーションがない場合はトークン(token)

part

トランザクションに関与する異なった領域の数

tid

TSTARTコマンドに対応している指定されたトランザクションIDの文字列(BATCH or ONLINEなど)

タイプ10 - ZKILLレコード

タイプ10 レコードは、ZKILLコマンドによって引き起こされるデータベース更新を示します。ZKILLレコードのフォーマットは:

10\time\tnum\pid\clntpid\token_seq\node

これは:

time

完全な日付と時刻

tnum

データベースのトランザクション番号

pid

プロセスID

clntpid

クライアントプロセスの pid(GT.CMサーバ更新の場合)、そうでない場合はゼロ(0)

token_seq

リプリケーションでは jsnum、レプリケーションがなk囲まれている場合はトークン(token)、そうでない場合はゼロ(0)

node

外部形式のMノード参照

抽出ファイルの例

このセクションは、グローバル変数 ^x へ 1 の値をM SET操作でアップデートを行った場所のジャーナル抽出ファイルのサンプルの詳細です。

GDSJEX01
01\59372,45246\1\21872\gtmnode\gtmuser\3\0\\\
02\59372,45246\1\21872\0
01\59372,45284\1\21877\gtmnode\gtmuser\3\0\\\
05\59372,45284\1\21877\0\0\^x="1"
02\59372,45284\2\21877\0
03\59372,45284\2\21877\0\0
inserted by FC2 system