MUPIPコマンドと修飾子

MUPIPコマンドの一般的なフォーマット:

MUPIP> command [-qualifier[...]] [object[,...]] [destination]

MUPIPは、コマンドおよび修飾子の略語を許可します。各セクションにおける、コマンドまたは修飾子の記述は、現在の最小の省略形で記載されます。コマンドの省略形は、コマンド構文規則が表示されます(例: B [ACKUP] )。この例では、コマンドラインで使用できるコマンドの省略形は、 ”B”です。将来的に内含する問題を回避し、読みやすさを向上するには、スクリプト中にMUPIPコマンドを含める際、少なくとも4文字を使用します。

ただし、コマンドは大文字と小文字の両方で入力することができるので、 この章で使用される表記上の習慣は、コマンドをすべて大文字で表記されます。もう1つの規則は、行の構文規則です。コマンドのフォーマットは、印刷の単一行がとても長いならば、コマンドは、2行目へ、任意の継続文字を使用せずに、回り込み折り返されます。

コマンドとコマンド引数が入力する時、1つの変数の複数の引数が、領域のリスト(region-list)です。領域のリスト(region-list)は、コマンドの目的を識別します。領域のリスト(region-list)は、UNIXのワイルドカード ("?" や"*.")を含めるますし、UNIXのワイルドカード文字を含む領域のリスト(region-list)は、 UNIXのシェルで不適切な拡張を防ぐために、常に二重引用符で囲む必要があります。(例えば、" *, " )

MUPIP修飾子の値は、コマンド入力行の最大サイズによってのみ制限され、最大は32Kです。

バックアップ

BACKUPコマンドは、データベースの内容を保存することができます。 - ONLINE 修飾子を使う場合を除き、BACKUPは、開始時の最初の領域(REGION)から最後の領域(REGION)が終了するまで、BACKUPコマンドにより指定されたすべての領域(REGIONS)への更新を一時停止する。 バックアップは、バックアップに関係するすべてのデータベース領域のいたるところにある、一貫性のあるアプリケーションの状態を保障する。バックアップは、データベースからの読み取りのプロセスのみ停止しません。

BACKUP ONLINEは、MUPIP BACKUPを拡張します。 BACKUP ONLINEは、バックアップコマンドが発行されている時に、データベースのバックアップを作成します。もし実行中のプロセスが引き続きデータベースを更新するならば、バックアップはそれらの更新は反映しません。

BACKUP コマンドのフォーマット:

B[ACKUP] [-qualifier[...]] region-list[,...] destination-list

例:

$ BACKUP -BYTESTREAM acn,hist bkup

オプションの修飾子は以下のとおりです:

  • -B[YTESTREAM]

  • -C[OMPREHENSIVE]

  • -D[ATABASE]

  • -I[NCREMENTAL]

  • -[NO]J[OURNAL][=options. . .]

  • -NET[TIMEOUT]

  • -[NO]NEW[JNLFILES]

  • -[NO]O[NLINE]

  • -R[ECORD]

  • -S[INCE]=D[ATABASE] | B[YTESTREAM] | R[ECORD]

  • -T[RANSACTION]=transaction-number

デフォルトでは、BACKUPは、 - DATABASEONLINE です。

任意の領域名が存在するアクセス可能なファイルにマップしないならば、または、コピー先リストの任意の要素が無効ならば、BACKUPはコマンドを拒否します。

BACKUPコマンドは、リストにある現在のグローバルディレクトリの1つの領域(REGION)より多くを指定することがあります。領域(REGINs)は、コンマで区切られます。任意の領域名は、DCLにワイルドカード文字 "*" と "%" を、含めることができます。

最初の引数は、リストにある現在のグローバルディレクトリの一回の領域(REGION)より多く指定することがあります。各領域は、カンマで区切られます。

注意

バックアップは、既存のファイルの上書きを防ぎます。しかし、同じデータベースファイルの異なるバージョンへの意図しないアクセスのいくつかの危険性を避けるために、使用する任意のファイルへ上書きする方法では、 BACKUPの使用を注意してください。特に他のコマンドでも

-B[YTESTREAM]

- B[YTESTREAM]修飾子は、BACKUPが - SINCE または - TRANSACTION修飾子により、指定された前の時点より以降に変更しているデータベースからのブロックのみ含めることを、指定します。BACKUPは、磁気テープなどを含むファイルをサポートする任意のデバイス上に、ファイルを出力します。MUPIP RESTOREは、データベースに、BACKUP - BYTESTREAMの結果を統合します。

- BYTESTREAM修飾子が、 - ONLINE修飾子をもって使用される場合は、TCP/IP接続へ出力を送信することがあります。

例:

$MUPIP BACKUP -reg REGA tcp://<machine name>:<port>

このコマンドは、TCP / IP接続を確立します。<machine name >は、IPアドレス、または、IPアドレスに解決されたもマシン名(DNS)のいずれかの必要があります。バックアップの出力は、データストリームを受け入れる準備がされているポートに、この接続を介して渡されます。

-C[OMPREHENSIVE]

- COMPREHENSIVE修飾子は、 - DATABASE 修飾子によって置き換えられてます。上位互換性については、MUPIPは、一時的に、COMPREHENSIVE修飾子をサポートし続けている。COMPREHENSIVE修飾子の機能は、 - DATABASE修飾子と同じです。詳細な - DATABASE修飾子の記述を参照してください。

-DATABASE

ディスクからディスクへ、選択しされたすべての領域(REGIONs)のファイルをコピーするには、BACKUPユーティリティに指示を出します。完了すると、バックアップはGT.Mデータベースとして使用するために準備ができます。このオプションは、磁気テープへのバックアップはサポートしていない。

BACKUP -DATABASEは、ファイルへ排他アクセスを必要としません。アプリケーションが複数のデータベースファイルを使用するならば、バックアップは、ビューのアプリケーションポイントからは矛盾はない。

- DATABASEの修飾子は、最初にディスクへフラッシュされるキャッシュにバッファされたすべての情報を保障します。 - DATABASE修飾子は、 - JOURNAL、 - [NO]NEW[JNLFILES] - ONLINE、 - RECODE修飾子については、唯一互換性があります。

デフォルトでは、BACKUPは、 - DATABASEです。

-I[NCREMENTAL]

- INCREMENTAL修飾子は、 - DATABASE 修飾子によって置き換えられてます。上位互換性については、MUPIPは、一時的に、INCREMENTAL修飾子をサポートし続けている。INCREMENTAL修飾子の機能は、 - BYTESTREAM修飾子と同じです。詳細な - BYTESTREAM修飾子の記述を参照してください。

-[NO]J[OURNAL][=options...]

BACKUPプロセスの一部として、ジャーナルのアクションを指定します。ジャーナル オプションについては、"GT.Mジャーナリング"の章を参照してください。

-NET[TIMEOUT]=seconds

バックアップデータがTCP/IP接続を介して送信される際に、タイムアウトの期限を指定します。この修飾子は、 - ONLINE と - BYTESTREAM修飾子だけに意味があります。それ以外は、GT.Mは、コマンドを無視します。デフォルト値は30秒です。

- NET[TimeOut]修飾子は、 - DATABASE と - COMPREHENSIVE修飾子には適合しません。

-[NO]NEW[JNLFILES]

バックアップの開始直後後に発生する更新のために、GT.Mは、ジャーナルファイルをスイッチするかどうかを指定します。

-[NO]O[NLINE]

一方、バックアップの結果に影響を与えることなく、他のプロセスがデータベースに対し読み取りと更新ができるなら、バックアップがアクティブである間は、これを指定してください。デフォルトでは、BACKUPは、 - ONLINE です。

BACKUP - ONLINEは、データベースを使用してアプリケーションの操作を続けることを許可します。-BYTESTREAM形式は、TCP/IP接続、または、パイプへ出力する転送が可能です。

-R[ECORD]

引き続き - BYTESTREAM のバックアップのために、参照ポイントとして、このバックアップを記録するためのBACKUPユーティリティへ指示します。- SINCE修飾子をともなった - RECORD修飾子の使用方法の詳細は、 - SINCE修飾子のセクションの下を参照してください。

バックアップは、 - RECORDを指定するたびに、そのバックアップは、タイムスタンプまたはトランザクション数と関連して、ファイルの - RECORD 参照ポイントとして、以前に記録されたバックアップのタイムスタンプを置き換えます。

-S[INCE]=keyword

BACKUP -BYTESTREAMを、最後に指定したバックアップ以降に変更が含まれているブロックを含め、指定します。

- SINCEは、以降の次のキーワードを認めます:

  • D[ATABASE] - 最後のBACKUP - DATABASE以降のすべての変更をバックアップします。

  • B[YTESTREAM] - 最後のBACKUP -BYTESTREAM以降のすべての変更をバックアップします。

  • R[ECORD] - 最後のBACKUP -RECORD以降のすべての変更をバックアップします。

SINCE修飾子は、-COMPREHENSIVE、 -DATABASE、 - TRANSACTION修飾子には、適合しません。

デフォルトでは、BACKUP -BYTESTREAM は、-S[INCE]=DATABASE として操作します。

-T[RANSACTION]=transaction-number

指定されたトランザクションとすべての後続トランザクションによって変更されている、すべてのブロックをコピーすることがBACKUP -BYTESTREAMの原因となる、トランザクションの開始を指定します。トランザクション番号は、16進数です。彼らは、"Current TN" ラベルをもつ、DSEのDUMP -FILEHEADERを表示します。トランザクション番号が無効な場合、BACKUPは、エラーを報告しコマンドを拒否します。

BACKUP -BYTESTREAM -TRANSACTION=1 は、すべての in-use ブロックをコピーし、そして、 以下のことを認めます:

  • それは、ファイルへ排他アクセスを必要としません。

  • それは、同時に複数のファイルを連結することができます。

  • データベースがほとんどは空の場合、それは速いかもしれない。

  • それは、ディスクI/Oの帯域幅の余りと、可能な限り速い現マシンがそのオフ中での移動により、TCP/IP接続またはパイプを介して送信が可能です。

時間のポイントは、アプリケーションの観点から、すべてのデータベース領域で、同じトランザクション番号を持つことはほとんどないことを、一貫しています。したがって、-TRANSACTION=1 を除いて、この修飾子は、複数の領域を含むバックアップに便利になる可能性が高いではありません。

- TRANSACTIONの修飾子は、-COMPREHENSIVE, -DATABASE, -SINCE 修飾子には、適合しない。

BACKUPの例

$ MUPIP BACKUP "*" /GTM/BKUP

このコマンドは、/GTM/BKUP/TBLS.DAT と /GTM/BKUP/UBG.DAT のデータベースのバックアップファイルの実行可能状態(ready-to-run) を作成します。この例では、/GTM/BKUPがディレクトリとして存在し、そして、環境変数 $gtmgbldir で指定された現在のグローバルディレクトリが存在し、/GTM/PROD/TBLS.DATおよび/GTM/PROD/UBG.datへファイルをマップする領域(REGION)を持つと、想定してます。

例:

$ MUPIP BACKUP -BYTESTREAM ACN, HIST BKUP

このコマンドは、バイトストリームのバックアップファイル BKUP/ACN.DATとBKUP/HIST.DATを作成します。この例では、BKUPが既存サブディレクトリにあり、現在のグローバルディレクトリが、ACNとHISTの領域を持ち、/VG01/ACN.DATおよび/VG02/HIST.DATへファイルをマップする、と想定してます。

CReate

CREATEは、グローバル ディレクトリ ファイルの情報を使用する、データベースファイルを作成し初期化します。

新しいデータベースファイルを作成するために、MUPIP CREATEコマンドを使用します。もしファイルが、既に任意のセグメントに存在する場合は、CREATEは、そのセグメントにno actionをとります。

CREATEコマンドのフォーマット:

CR[EATE] [-qualifier]

単一のオプションの - REGION修飾子は、データベースファイルを作成するための領域を指定します。

-R[EGION]=region-name

データベースファイルの作成のために、1つの領域を指定します。デフォルトでは、CREATEコマンドは、ファイルを持たない現在のグローバルディレクトリ内で、すべての領域のために、データベースファイルを作成します。

CREATE -region=REG1は、領域 REG1として、グローバル ディレクトリ(GT.M グローバル ディレクトリの環境変数によって命名された)によって指定されたデータベースファイルを、作成します。

EXit

EXIT または<CTRL Z>で、MUPIPを終了します。そこからMUPIPが起動されたプロセスに制御を戻します。

EXITコマンドのフォーマット:

EXI[T]

EXITコマンドは、任意の修飾子を受け付けてません。

EXTEnd

EXTENDは、データベースファイルのサイズを増やします。データベースファイルは、自動的に通常使用の下に拡張されます。これらは、通常、 MUPIPを持つファイルを拡張する必要はありません。

EXTENDコマンドのフォーマット:

EXTE[ND] -qualifier] region-name

領域名に必要とされるパラメータは、拡張が求められている領域の名前を指定します。EXTENDは、動的なセグメントとファイルへのセグメントへ領域をマップするために、グローバルディレクトリを使用します。

EXTENDは、1つのオプションの修飾子を取ります:

-B[LOCKS]=blocks

MUPIPがファイルを拡張するGDSデータベースブロックの数を指定します。GDSファイルは、ビットマップに追加ブロックを使用します。EXTENDは、オーバーヘッドを必要に応じて、ビットマップブロックに加えて、指定されたブロック数を追加します。ビットマップについての詳細情報は、"グレイストーンデータベース構造"の章を参照してください。

デフォルトでは、EXTENDは、データベースファイルを拡張するGDSのブロックの数として、ファイルヘッダーに拡張の値を使用します。

EXTRact

EXTRACTは、 3つのフォーマット( GO, BINARY、またはZWR )の内の1つで、現在のデータベースからシーケンシャル出力ファイルへ、グローバルをコピーします。 別のシステムで使用するデータベースから、 特定のグローバルのバックアップするため、または、データを抽出するために、EXTRACTを使用します。EXTRACTは、使用するデータベースファイルのどれかを決定するために、グローバルディレクトリを使用します。加えて、EXTRACTは、ユーザの照合ルーチンをサポートします。EXTRACTは、通常のGT.Mデータベースアクセスで、同時に操作することがあります。

確実に、EXTRACTが一貫性のあるアプリケーションの状態を反映するために、以下をする必要があります:

  • データベースを一時停止します。データベースは、 - FREEZE修飾子を持って抽出に関係ある、すべての領域を更新します。または、

  • データベースをバックアップします。 - ONLINE修飾子と、バックアップからファイルの抽出をもって。

EXTRACTコマンドのフォーマット:

EXTR[ACT] [-qualifier[...]] file-name

オプションの修飾子は以下のとおりです:

  • -FO[RMAT]=GO | B[INARY] | Z[WR]

  • -FR[EEZE]

  • -LA[BEL]=text

  • -[NO]LO[G]

  • -S[ELECT]=global-name-list

EXTRACT places its output in the file defined by the file- name. EXTRACTは、磁気テープなどを含むファイルをサポートする任意のデバイス上に、ファイルを出力します。

[注意]

磁気テープは、ディスクよりも小さい最大ファイルサイズがあります。

For information on extracting globals with the %GO utility, refer to the "M Utility Routines" chapter of the GT.M Programmer's Guide. EXTRACTは、通常は高速ですが、しかし。%GOは、カスタマイズすることができます。

-FO[RMAT]=GO|B[INARY] | Z[WR]

出力ファイルのフォーマットを指定します。

フォーマットコードは次のとおりです:

  • GO - グローバル出力(Global Output)フォーマットは、トランスポートまたはアーカイブに必要とする、ファイルに使用されます。

  • B[INARY] - バイナリフォーマットは、データベースの再編成や、短期的なバックアップに使用されます。

  • ZWR - ZWRITEフォーマットは、トランスポート、または、非グラフィカルな情報を含むであろうアーカイブに必要とする、ファイル用に使用されます。

- FORMAT=GO は、レコードのペアでのデータを保存します。各グローバル ノードは、キーと1つのデータに対して、1つのレコードを生成します。-FORMAT=GO は、2つのヘッダーレコードを持ちます。

-FORMAT=ZWR は、グローバルノードごとに1つのレコードとしてデータを格納します。/FORMAT=ZWR は、2つのヘッダーレコードを持ちます。

EXTRACT -FORMAT=BINARY は、 EXTRACT -FORMAT=GO と EXTRACT -FORMAT=ZWR より、はるかに速く働きます。

[注意]

それらは、ひとつのGT.Mの実装から他へバイナリデータを転送するために、定義された標準は全くありません。

デフォルトでは、EXTRACTは、-FORMAT=ZWR を使用します。

-FR[EEZE]

EXTRACTがレコードをコピーすることから、すべてのデータベースファイルにために、データベースの更新を防ぎます。 - FREEZEは、コピーが進行中にの間に発生する更新による一つの "blurred" (ぼけ)よりは、むしろ、EXTRACTがグローバルの "sharp"(シャープ)イメージをキャプチャすることを、保証します。

デフォルトでは、EXTRACTは、操作中に領域を凍結していません。

-LA[BEL]=text

出力ファイルの最初のレコードとなるテキスト文字列を指定します。EXTRACT -FORMAT=BINARY は、32文字までのラベルテキストを切り捨てます。

デフォルトでは、EXTRACTは、ラベル "GT.M MUPIP EXTRACT." を使用します。"

-FORMAT=BINARY のヘッダのラベルの詳細については、 EXTRACT -FORMAT=BINARYの説明を参照してください。

-[NO]LO[G]

各グローバルを抽出し、この修飾子は、stdoutメッセージを表示するかどうかを指定します。このメッセージは、グローバルノード数と、各グローバルの最大の添字の長さと、最大のデータ長を表示します。

デフォルトでは、EXTRACTは - LOG を操作します。

-S[ELECT]=global-name

グローバル仕様は、(a,B,C)ような括弧内のリストです。この例では、EXTRACTは、 ^A, ^B, ^C を除き、すべてのグローバルを選択します。

-S[ELECT]=global-name-list

グローバルを抽出する方法を指定します。グローバル名の仕様では、キャレット記号(^)は、オプションです。

グローバル変数を指定する仕様は以下のとおりです:

  • MEFのようなグローバル名

  • A7:B6 のようなグローバル名の範囲

  • A,B,Cのようなリスト

  • TMP*のように、同じ接頭辞をもつグローバル名

最初のケースでは、EXTRACTは、唯一のグローバル ^MEF を選択します。2番目のケースでは、EXTRACTは、^A7 と ^B6 の間のそれ自身を含む、すべてのグローバル名を選択します。3番目のケースでは、EXTRACTは、^A, ^B, ^Cのグローバルを選択します。4番目のケースでは、EXTRACTは、^TMPから^TMPzzzzzまでのすべてのグローバル名を選択します。

デフォルトでは、EXTRACTは、-SELECT=* を修飾するかのように、すべてのグローバルを選択します。

[注意]

もし、選択のためのルールが複雑ならば、データベースファイルへ取り出すグローバル変数をマップする、特別なグローバル ディレクトリを構築しやすくなります。これが、許容されていない場合、データベースファイルは、レプリケートされたインスタンスの一部です。このような場合は、データベースのバックアップで動作します。

EXTRACTの例

例:

$ MUPIP EXTRACT -NOLOG FL.GLO

このコマンドは、グローバル出力ファイルが作成されたことを EXTRACTへ指示します。 FL.GLO(データベース内のすべてのグローバル変数から成る)global-by-global上の統計情報を表示せずに、なぜならば、ラベルなしを指定すると、FL.GLOの最初のレコードは、テキスト文字列 "GT.M MUPIP EXTRACT." が含まれます。"

例:

$ MUPIP EXTRACT -SELECT=DRG /dev/tty

このコマンドは、デバイス(ファイル名)/dev/tty へ グローバル ^DRG をダンプするために、EXTRACTへ指示します。

Extract -FORMAT=GO Header Label

GO形式のデータファイルの最初のレコードは、ヘッダーラベル "GT.M MUPIP EXTRACT," のテキストとして含まれます。

Extract - -FORMAT=BINARY Header Label

BINARY形式のデータファイルの最初のレコードは、ヘッダーラベルが含まれます。ヘッダーラベルは、87文字の長さです。次の表には、ヘッダーラベルのコンポーネントを示します。

バイナリ形式のデータファイルのヘッダーラベル

キャラクター

説明

1-26

固定長ASCIIテキスト: "GDS BINARY EXTRACT LEVEL 2"

27-40

$ZDATE() フォーマットで 抽出の日付と時間:"YEARMMDD2460SS"

41-45

データが抽出された各領域を結合した、10進数の最大ブロックサイズ

46-50

データが抽出された各領域を結合した、10進数の最大レコードサイズ

51-55

データが抽出された各領域を結合した、10進数の最大キーサイズです。

56-87

- LABEL修飾子によって指定され、スペースが埋めこまれたラベル

Freeze

FREEZEは、データベースへの更新をリダイレクトします。データベースファイルをアクセスする、オペレーティングシステムのユーティリティの呼び出しを持って、データベースのアクティビティを調整するために、FREEZEを使用してください。

注意

MUPIP FREEZE - ON は、1つまたは複数のデータベースファイルの更新を防ぎます。プロセスは、 FREEZされるまで、"ハング(hang)"を 更新しようとし、MUPIP FREEZE -OFF コマンド、または、DSEによって削除さる。MUPIP FREEZEを使用する手続きは、手動あるいは自動化であろうと、すべての適切なケースでFREEZを削除するための規定が含まれ、エラーが通常の流れを混乱させる時が含まれることを、確認してください。

一貫性のあるレコードのセットを含むデータベースファイルのバージョンをコピーし再編成を保証するために、同時MUPIPユーティリティは、 (ONLINE修飾子なしの)BACKUPとEXTRACTとして、MUPIPユーティリティがアクションを実行する間、データベースが変更しないことを保証するためのメカニズムが含まれます。FIS recommends the use of the -ONLINE qualifier with BACKUP.

バックアップや再編成を実行するための非GT.Mユーティリティを使用したい場合は、スタンドアロンンドのユーティリティは、ファイルへアクセスすることを与えるでしょう。

FREEZEコマンドの一般的な使用は、:

  • ディスク構成のミラーを作成、または、

  • ミラーを再統合

FREEZEコマンドのフォーマット:

F[REEZE] -OFF|-ON [-qualifier...] region-list

領域(REGION)リストは、FREEZEの対象を識別します。

FREEZEは、1つの修飾子を含める必要があります:

  • -OF[F]

  • -ON

オプションの修飾子は以下のとおりです:

  • -OV[ERRIDE]

  • -R[ECORD]

-OF[F]

- OVERRIDEを使用しない限り、現在進行中のFREEZEを停止します。 - OFFは、FREEZEを初期化されたプロセスによって発行される必要があります。 - OFF修飾子は、 - ONと - RECODE修飾子とは、併用できません。

-ON

FREEZEの開始を指定します。<s3> - </s3> ON修飾子は、<s4> - </s4> OFFと<s5> - </s5>RECODE修飾子とは、併用できません。

-OV[ERRIDE]

freezeを終了するために、別のプロセスを有効にします。 - OVERRIDEは、ほとんどのスキーム内で、必要に応じてはならない。(そして危険性さえもあります)、 - OVERRIDEは、freezeがリリースを失敗するプロシージャのケースでは、エラーの回復を許可するように提供されます。s3> - OVERRIDE修飾子は、 - ONと<s5> - </s5>RECODE修飾子とは、併用できません。

-R[ECORD]

FREEZEユーティリティは、引き続くバックアップのために、参照ポイントとして、イベントを記録する必要があることを、指定します。FREEZEが - RECORDを指定する時、現在のトランザクション識別子は、データベースファイルのために、以前のRECORDedトランザクション識別子を置き換えます。 - RECORDは、外部のバックアップ機構を持つ、MUPIP BACKUP - BYTESTREAMを統合するのに有用です。 - RECORD修飾子は、 - OFFと - OVERRIDE修飾子とは、併用できません。

Freezeの参考例

例:

$ MUPIP FREEZE -REGION "*"

このコマンドは、現在のグローバルディレクトリ内のすべての領域 を更新することを防止します。

例:

$ MUPIP FREEZE -OFF -OVERRIDE DEFAULT

このコマンドは、プロセスが、どのように、それらを以前に停止していたかもしれなかったに関係なく、現在のグローバルディレクトリのDEFAULTの領域への更新を有効にします。

例:

$ set +e
$ mupip freeze -on -record "*"
$ tar cvf /dev/tape /prod/appl/*.dat
$ mupip freeze -off
$ set -e

set + eコマンドは、エラーが任意のコマンドで遭遇されることに関係なく、シーケンス内のすべてのコマンドが試されるGT.Mへ指示します。これは、tarコマンドが失敗したとしても、freeze -off が処理されるようになります。FREEZEは、現在のグローバルディレクトリによって識別される、すべてのデータベースファイルを更新することを防ぎます。 -record修飾子は、各データベースの現在のトランザクションは、データベースファイルのヘッダーのレコードの一部分に格納することを、指定します。tarコマンドは、/drod/app から.dat拡張子を持つすべてのファイルを含めて、/dev/tapeデバイスに、テープアーカイブファイルを作成します。おそらく、現在のグローバルディレクトリ内のすべてのデータベースファイルは、そのディレクトリに、その拡張子で、保存されます。2番目のFREEZEコマンドは、を再は、最初のFREEZEにより一時中断された更新を、再び有効にします。set - eコマンドは、シェルによって、通常のエラーハンドリングを再び有効にします。

INTEG

INTEGコマンドは、GT.Mデータベースファイルの整合性チェックを実行します。INTEGは、現在のグローバルディレクトリ内の、1つまたは複数の領域を操作し、その操作中、それらの領域へ同時並行の更新を一時停止します。単一のファイルデータベースのINTEGは、グローバル ディレクトリではなく、そのファイルに対して排他的な(スタンドアロン)アクセスする必要があります。これにに対して、INTEGはデータベース領域を選択するための、ファイルシステムのレイアウトの関数であり、そして、ファイルが移動されるか作成されたように、変わることがあります。もしinteg(INTEG)を生成したいなら、そこで出力は常に、予測可能なシーケンスでデータベースファイルをリスト表示し、一度に1個 integs を実行します。たとえば、参照ファイルをもつ出力を比較するために、一度に1つのファイルに対して、INTEGを実行します。

以下の時に、INTEGを使用します。:

  • 定期的に - データベースの継続的な整合性を確保するために、それらがデータベースファイル全体に広がる前に、規則的にINTEGsは、整合性の問題の検出に役立ちます。

  • クラッシュの後 - データベースが破損していないことを保証するため。( 注:before-image ジャーナリングを使用する時、クラッシュ後にデータベースがジャーナルファイルから回復される時、integは不要です。)

  • データベースエラーが報告されたとき - 問題のトラブルシューティングを行います。

INTEGコマンドのフォーマット:

I[NTEG] [-qualifier[...]] [-FILE] file-name|-REGION region-name

INTEGは、ファイルか領域のどちらかの指定が必要です。

利用できる修飾子:

  • -A[DJACENCY]=integer

  • -BL[OCK]=block-number

  • -BR[IEF]

  • -FA[ST]

  • -FI[LE] file-name

  • -FU[LL]

  • -[NO]K[EYRANGES]

  • -[NO]MAP[=integer]

  • -[NO]MAXK[EYSIZE][=integer]

  • -[NO]TR[ANSACTION][=integer]

  • [参考] -R[EGION]=region-name

  • -S[UBSCRIPT]=subscript

  • -TN[_RESET]

ファイル名は、直接、INTEGへデータベースファイルを識別します。領域リスト(region-list)は、1以上の領域を識別します。順番に、現在のグローバルディレクトリを介してデータベースファイルを識別します。

さらなる破損を防ぐために、すぐにINTEGによって報告されるエラーを分析する。FISは、以下のエラーが発見されると直ちに修正することを強く推奨しています。

  • ブロックを誤って解放をマークされる - プロセスがデータベース領域の任意の一部分に対して更新を行う時、これらは損傷を加速する可能性があります。

  • インデックスブロックの整合性エラー - 障害のあるインデックスを使用して、プロセスがデータベース領域のその位置に対して更新を行うと、これらは損傷を加速する可能性があります。詳細は、"データベースの整合性を維持する"の章を参照してください。

INTEG - FASTと、"regular" INTEG のどちらも、これらのエラーを報告します。他のデータベースエラーは、GDSファイルで問題が急速に広がる脅威はありません。ただし、操作を続行すると、エラーは以下の問題を引き起こす可能性があります:

  • 無効なアプリケーションの操作が、ミスか、不正なデータのために

  • プロセスのエラー、不適切な無限ループを含む、データベースアクセスがエラーを発生する時

  • 以前の症状が原因とされるシーケンスを、不完全な更新の原因として、アプリケーションレベルの整合性を損傷します。

GT.Mデータベースを修復する時に、損傷の種類を判断する必要があります。それらは、継続的な操作の危険、データベースの修復を過ごしてしまった時間によって引き起こされた通常の操作での混乱、などデータベースエラーの分析と修正の情報については、 " データベースの整合性の維持 " の章を参照してください。INTEGエラーを判断するヘルプのために、定期的にGT.Mをサポートしてください。

プロセスが完了する前に、<CTRL-C>は、INTEGを停止します。

-A[DJACENCY]=integer

INTEGは、同じレベルに、別のデータベースブロックに隣接したブロックを考慮ます。そのINTEGは、ブロックの範囲を指定します。効率的なデータベースへのアクセスに直接影響を与えるための、物理的なデータ密度の近似を与えるINTEGから、接近することは報告します。効果は、この方法だけでなく、データベースが構成されて、測定します。システムの応答時間を、近接する改善する高い度合いを実装します。Use the -ADJACENCY qualifier to adjust the reporting to reflect characteristics of your disks. たとえば、ドライブ上のセクタの数と一致する要素を選択します。隣接関係を改善するために、MUPIP REORGを使用します。

デフォルトでは、INTEGは、-ADJACENCY=10 を使用します。

-BL[OCK]=block-number

データベースのサブツリーをチェックを開始するためのブロックを指定します。 - BLOCKは、ビジーエラーマークを誤って検出することはできません。ブロック番号は、INTEGエラーレポートの中か、または、DSEを使用によって、表示されます。

<s3> - </s3> BLOCK修飾子は、<s4> - </s4> SUBSCRIPTと<s5> - </s5>TN_RESET修飾子とは、併用できません。

-BR[IEF]

ディレクトリとインデックスとデータブロックの合計数を表示する、INTEGのサマリレポートを詳しく記します。 - BRIEF修飾子は、 - FULL修飾子と互換性はありません。

デフォルトでは、INTEGレポートは、 - BRIEF です。

-FA[ST]

INTEGは、インデックスブロックのみチェックすることを指定します。INTEG - FASTは、データブロックをチェックしません。典型的なデータベースの中にあるブロックの大半はデータブロックなので、INTEG - FASTは、フルINTEGより速い結果を、大幅に生成します。INTEG - FASTは、フルINTEGにより置換されない間、データベースの破損を速めることを防ぐために直ちに修復する必要があるので、それは、これらのエラーを非常に迅速に検出します。

- FAST修飾子は、 - TN_RESET修飾子と互換性はありません。

デフォルトでは、INTEGは、データベース内の、すべてのアクティブなインデックスとデータブロックをチェックします。

-FI[LE]

INTEGコマンドへのパラメータは、ファイル名であることを指定します 。INTEG FILE は、データベースファイルへの排他(スタンドアロン)アクセスを必要とし、グローバル ディレクトリを必要としません。それが、ファイルへのスタンドアロンのアクセスを持つので、INTEG - FILE が、参照カウントがゼロかどうかのチェックをすることができます。非ゼロの参照カウントは、データベースの異常終了の前に示しています。

- FILE修飾子は、 - REGION修飾子と互換性はありません。

デフォルトでは、INTEGは - FILE を操作します。

-FU[LL]

これは、、、、ディレクトリツリー内のインデックスとデータブロックの数が表示されるそれぞれのグローバル変数のツリー内だけでなく、ディレクトリ、インデックス、データブロックの合計数を、拡張されたINTEGのレポートは、指定します。 - FULL修飾子は、 - BRIEF修飾子と互換性はありません。

デフォルトでは、INTEGレポートは、 - BRIEF です。

-[NO]K[EYRANGES]

INTEGよって検出された疑わしいデータの問題を識別する、キーの範囲が含まれるINTEGレポートかどうかを指定します。

デフォルトでは、INTEGは、 - KEYRANGESを表示します。

-[NO]MAP[=integer]

INTEGレポートによる、"ビジーエラーをマークされた誤り状態" の最大数を指定します。

- NOMAPはがビジーレポートをマークされた誤りの制限を削除するので、INTEGは、すべてのマップエラーを報告します。 - NOMAPは、引数の割り当てを認めません。

[注意]

誤って解放されたエラーをマークすることは非常に危険なので、INTEGは常にそれらを報告し、 - MAPは、それらには影響しません。

インデックスブロック内のエラーは、データベースの大きい領域の潜在的な処理から、INTEGを防止します。シングル "プライマリ" エラーは、ビジーエラーを誤ってマークされた"セカンダリ"の大きな数字を引き起こすことがあります。"リアル"、または、ビジーエラーをマークされたプライマリの誤りは、システムへ使用できない"空"のブロックのみ作り、それらは低い影響であり、そして、すぐに修復する必要はありません。

[注意]

システムがクラッシュし、そして、データベースが、MUPIPの回復とロールバックでもって回復した後、データベースは正当に良性であり、ビジーエラーをマークされた誤りとすることができます。これらのエラーは、すぐに修復する必要はありません。次の便利な機会のため、スケジュールを修復します。

By default, INTEG reports a maximum of 10 map errors (-MAP=10).

-[NO]MAX[KEYSIZE][=integer]

INTEGレポートによる、"大きすぎるキーサイズ" の最大数を指定します。

INTEGがすべてのキーサイズを大きすぎるエラーと報告するために、 - NOMAXKEYSIZEは、キーサイズのレポート上の制限を削除します。 - NOMAXKEYSIZは、引数の割り当てを認めません。

最大キーサイズを少なくするために、DSE CHANGE - FILEHEADER - KEY_MAX_SIZE を使用する後に、"キーサイズが大きすぎます" というエラーは、正常時のみ発生すべきです。

By default, INTEG reports a maximum of 10 key size errors (-MAXKEYSIZE=10).

-[NO]TR[ANSACTION][=integer]

INTEGレポートによる、"block transaction- number-too-large errors" の最大数を指定します。

- NOTRANSACTIONは、トランザクションレポートの制限を削除するので、INTEGは、すべてのトランザクション数のエラーを報告します。 - NOTRANSACTIONは、引数の割り当てを認めません。

システムクラッシュは、「トランザクション番号のブロックが大きすぎます("block transaction number too large" )」というエラーを生成することがあります。これらのエラーは、BACKUP - INCREMENTAL、あるいは、トランザクションの処理の問題を引き起こします。通常、データベースの再オープン時にGT.Mが追加する1000ブロックの自動増分は、これらのエラーを回避します。もし、データベースが再オープンさらた後に問題がまだ存在するなら、"block transaction number too large number"というエラーを迅速に修正するために、DSE CHANGE -FILEHEADER -CURRENT_TN= コマンドの値を使用することができます。

By default, INTEG reports a maximum of 10 block transaction errors (-TRANSACTION=10).

-R[EGION]

INTEGパラメータがデータベースファイルというよりは、むしろ、1つ以上の領域(Region)を識別することを、指定します。

INTEG - REGIONは、データベースへのアクセスをスタンドアローンである必要ありません。その代わりに、それは、チェックしている間に、データベースへの更新がフリーズします。region-list引数は、カンマで区切られたリストに、現在のグローバルディレクトリの1つの領域(REGION)より多くを指定することがあります。INTEG -REGIONは、有効なグローバルディレクトリを指定する環境変数 gtmgbldir を必要とします。 、、、、 gtmgbldir のより詳細については、 "グローバル ディレクトリエディタに" の章を参照してください。

[注意]

KILLが、ビットマップの中で、それが " free "へ解放したブロックのマーキングを簡単に延期するので、IINTEG -REGIONは、 ビジーエラーをマークする誤りを、偽ブロックとして報告するかもしれません。これらのエラーは問題ありません。もし、これらのエラーが "Kill in progress" エラーと一緒に発生した場合は、"Kill in progress" エラーがもはや存在してた後に、エラーを解決します。

<s3> - </s3> REGION修飾子は、<s4> - </s4> FILEと<s5> - </s5>TN_RESET修飾子とは、併用できません。

デフォルトでは、INTEGは - FILE を操作します。

-S[UBSCRIPT]=subscript

INTEGのグローバルまたはキーの範囲を指定します。グローバルキーは、引用符(" ")で囲む必要があります。コロン(:)で、2つの添字を区切って、範囲を指定します。 - SUBSCRIPTが、ビジーエラーをマークされた誤りを検出することはできません。

添字のキーへのパスを知っていて、パスが破損されていないと信じる理由がある場合のみ、 - SUBSCRIPT を使用します。もし、パスに疑問があり、または、既知の破損ならば、 ブロックとINTEG -BLOCK を見つけるためにDSEを使用します。

<s3> - </s3> SUBSCRIPT修飾子は、<s4> - </s4> BLOCKと<s5> - </s5>TN_RESET修飾子とは、併用できません。

INTEGが領域または領域のリスト内のすべてのグローバル名を報告があるため、 - FULLを使用してください。

MUPIP> INTEG -SUBSCRIPT="^a" mumps.dat

これは、データベースファイル mumps.dat 内のグローバル変数 ^a をINTEGs します。

例:

MUPIP> INTEG -SUBSCRIPT="^a(100)":"^b(""c"")" -REGION $DEFAULT

これは、デフォルトの領域で、すべてのグローバル変数よりも、大きいか等しい、 ^a (100) か、または、等しい^b("c") を、INTEGs します。

[注意]

二重引用符を使用するコマンド文字列の中のリテラルを指定するには、例えば、^b(""c"") 。

-TN[_RESET]

現在有効なデータを保持するすべてのデータベースブロック内で、トランザクションの番号を1へリセットするために、INTEG -FILEに指示します。

- TN_RESET修飾子は、データを保持するすべてのブロックを書き換えます。もし トランザクションのオーバーフローがゼロ(0)にリセットされた場合、データベース操作は破裂します。 - TN_RESET修飾子は、0へのリセットからのトランザクションのオーバーフローを防ぐための保護機能です。

トランザクション数は、最大4,294,967,295(2 ** 32-1)まで上がることができます。現在のトランザクション数が 40億を超える場合、INTEGは、トランザクション数がデータベースの上限に近づいているという警告メッセージを表示します。トランザクション数が40億に達すると警告があらわれるので、データベースが失敗する原因が - TN_RESETを実行すると不成功になる前に、INTEGは約3億の更新数のマージンを提供しますこれは、INTEG -TN_RESETをスケジュールするために、十分な時間を与える必要があります。MUPIP EXTRACTを使うならば、ファイルを削除しMUPIP CREATEしMUPIP LOADする手順は - TN_RESETと同じ効果がある。

[注意]

GT.Mアップデートが正しく閉じられなかったデータベースファイルを開くたびに、GT.Mはトランザクション番号を1000だけインクリメントします。この自動インクリメントは、異常なデータベースのクローズによって誘導される問題を防ぎます。しかし、それは、あなたの操作手順で考慮しなければならない。GT.Mがトランザクション番号を使い切る("uses up")する割合は、運用手順と実際のデータベース更新の機能によります。

- TN_RESET修飾子は、 - FASTと<s5> - </s5>BLOCKと -REGIONとは、併用できません。

デフォルトでは、INTEGは、トランザクション番号のブロックを変更していません。

MUPIP INTEGを使用

MUPIP INTEGは、GDSのデータベースファイルの整合性を検証します。INTEGは、それらの検出としてエラーを報告します。エラー報告の終了時には、エラー合計を含む、これらはサマリ情報です。エラーを報告した後、INTEGはインデックスとデータがデータベースの一部の統計情報を提供します。このセクションの例は、INTEGレポートの種類の違いを示します。INTEGエラーレポートに関する追加情報については、GT.Mメッセージおよび回復手順リファレンスマニュアルを、参照してください。

-REGION修飾子が使われる時、データベースファイルへの排他アクセスが必要です。次の例では、MUPIPは $gtm_dist/mupipの別名(エイリアス)です。

例:

MUPIP> integ simple.dat
No errors detected by integ.
Type    Blocks  Records     %Used    Adjacent
Directory   2       11      6.835          NA
Index      10       10      1.367           1
Data       10       10      2.109           2
Free       78       NA         NA          NA
Total     100       31         NA           3

INTEG - REGIONは、グローバル ディレクトリを使用し、そのパラメータとして領域名を取ります。MUPIP INTEGコマンドのこのフォームは、複数のデータベースを識別するために、リストとワイルドカードを使用することができます。それもまた、ファイルへの排他アクセスすることのない操作をするように、INTEGを許可します。一方、INTEG - REGION が排他的なアクセスを必要としない間は、その処理の期間の更新を防ぎます。

例:

MUPIP> integ -region DEFAULT
Integ of region DEFAULT
No errors detected by integ.

Type      Blocks      Records     % Used      Adjacent
Directory   2           11          6.835       NA
Index      10           10          1.367        1
Data       10           10          2.109        2
Free       78           NA            NA        NA
Total     100           31            NA         3

MUPIP INTEG - FASTは、ファイルのインデックスとマップのみを検証します。これらの部分は比較的小さいので、しかし重要に適切な操作をされているので、もしファイルが損傷の増加する危険なしに更新をサポートすることができるならば、INTEG -FAST は、決定するための簡単な方法を提供します。

例:

MUPIP> integ -fast simple.dat
No errors detected by fast integ.

[参考] Type      Blocks      Records     % Used      Adjacent
Directory   2           11          6.835       NA
Index      10           10          1.367        1
Data       10           10          2.109        2
Free       78           NA            NA        NA
Total     100           31            NA         3

INTEGが問題を発見する時、システムは、エラーメッセージと位置(ブロック番号を与える)の説明を表示します。システムは、ブロックをもったエラーのオフセットを表示します。次のフォーマットです。:

block:offset Level
bbb:ooo 111 error-message
Directory Path: bbb:ooo...
Path: bbb:ooo...
Keys from kkk to kkk are suspect.

where bbb is a hexadecimal block number, ooo is a hexadecimal offset within a block, lll is a decimal level (refer to the "Greystone Database Structure" chapter for information on block levels), and kkk is an M global variable name or "the end" as text. エラーがファイルヘッダーに関連するブロックには、追加情報は無く、常にゼロ(0)として出現します。エラーがレコードに関連しないオフセットには、追加情報は無く、常にゼロ(0)として出現します。rootブロックから任意のブロックへ移動するポインターのシーケンスは、そのパスを形成します。

例:

MUPIP> integ -region DEFAULT
Integ of region DEFAULT
Block:Offset level
10:7        1        Keys out of order.
Directory Path: 1:7, 2:30
Path: 11:7, 10:7
Total error count from integ:
Type    Blocks      Records     % Used      Adjacent
Directory   2           11       6.835          NA
Index      10           10       1.367           1
Data       10           10       2.109           2
Free       78           NA          NA          NA
Total     100           31          NA           3
%GTM-E-INTEGERS, Database integrity errors
$

ジャーナル

JOURNALコマンドは、ジャーナルファイルを使用して、分析し、抽出し、レポートをし、および、データをリカバーします。JOURNALコマンドの説明については、"GT.Mジャーナリング"の章を参照してください。

Load

LOADコマンド:

  • シーケンシャルファイルからGT.Mデータベースへの、グローバル変数の名前とその対応するデータ値を、入力できます。

  • 使用するデータベースファイルのどれかを決定するために、グローバルディレクトリを使用します。

  • ユーザの照合ルーチンをサポートします。

  • 通常のGT.Mデータベースへのアクセスで、同時に操作することがあります。

アプリケーションの視点から、アプリケーションが実行中のデータのロードは、不合理なデータベースの結果になるかもしれない。

LOADコマンドのフォーマット:


L[OAD] [-qualifier...] file-
name

オプションの修飾子は以下のとおりです:

  • -FO[RMAT]=GO | B[INARY] | ZWR

  • -BE[GIN]=integer

  • -E[ND]=integer

  • -FI[LLFACTOR]=integer

LOADは、 file - nameで定義されたファイルからその入力を受け取ります。

LOADは、そのようなファイルをサポートする任意のデバイス上で、UNIXファイルからのその入力を受け取るでしょう。

For information on loading with an M "percent utility," refer to the %GI section of the "M Utility Routines" chapter in the GT.M Programmer's Guide. LOADは、通常は高速ですが、しかし。%GI ユーティリティは、カスタマイズすることができます。

<CTRL-C>にて、LAODからのステータスメッセージが生成されます。2回立て続けに<CTRL-C>を入力すると、LOADを停止します。LOADは、手動で停止する場合、または、内部エラーの理由で完全な停止をする場合があり、そして、アプリケーションレベルの整合性が不完全となる。しかし、kill -9で終了するを終了する場合を除き、 データベースの構造には影響しません。

入力ファイルのフォーマットを指定します。フォーマットは、操作するためのLOADの入力ファイルの実際のフォーマットと一致する必要があります。

フォーマットコードは次のとおりです:

  • GO - グローバル出力フォーマット

  • B[INARY] - バイナリ フォーマット

  • Z[WR] - ZWRITE フォーマット

デフォルトでは、LOADは、FORMAT=ZWRを使用します。

- FORMAT=GO は、レコードのペアでのデータを保存します。各グローバル ノードは、キーと1つのデータに対して、1つのレコードを生成します。

-FORMAT=ZWRは、単一のレコード内の各グローバルノードのデータです。

-FORMAT=BINARYのみ、グレイストーンデータベース構造(GDS)のファイルに適用されます。バイナリフォーマットファイルは、GOまたはZWR フォーマットのファイルよりも、大幅に速くロードします。-FORMAT=BINARY は、独自の形式でデータを格納します。-FORMAT=BINARYは、1つのヘッダーレコードを持ち、したがって、LOAD -FORMAT=BINARYは、 レコード番号2(2)で、アクティブな活動を開始します。

LOADを開始すべきかどうか、入力ファイルのレコード番号を指定します。有効なキーの先頭がエラーを発生する以外のポイントを開始するために、LAODを指示します。

- BEGIN ポイントを選択する時に、これはヘッダーレコードの数を考慮することが重要です。 詳細については、-FORMATのセクションを参照してください。

-FORMAT=GO入力の場合、値は通常は奇数です。-FORMAT=BINARYはヘッダからの重要な情報が必要となる以前から、このloadのタイプは、不注意な - begin の値の未変化のファイルヘッダが必要です。

-FORMAT = ZWR input 入力には、各レコードは、参照およびデータの情報の完全なセットが含まれます。ヘッダの2つのレコードを許可することを除き、最初の値は制限されていません。

デフォルトでは、LOADは入力ファイルの先頭から始まります。

LOADを停止すべきかどうか、入力ファイルのレコード番号を指定します。-END=integer は、LOADを操作するために、-BEGIN=integer よりも大きくなければなりません。番号で指定されたレコードを処理した後、 - END、または、入力ファイルの末尾に到達によって、LOADは終了します。

-FORMAT=GO の入力の値は、通常は偶数である必要があります。デフォルトでは、LOADは入力ファイルの最後まで続きます。

データベースブロックに格納されているデータの量を指定します。使用可能なスペース残りに充填されるブロックを更新します。ブロックは、引き続き更新を受信し、より効率的な操作のブロックの分割を回避します。

もし、あなたがデータベースのパフォーマンスの問題や、データベースの更新率が高いことを持つ場合は、あなたは定義されたFILL_FACTORsを調べる必要があります。アプリケーションで統一されたレコードしか使用しない限り、ほとんどのアプリケーションでは一般的ではありませんが、FILL_FACTORは正確に機能しません。

データにおけるFILL_FACTORは、それは相対的に静的で、または、新しいノードを加えることによって成長し、それは既存のノード前、または、後に照合し、100%になる必要があります。データにおけるFILL_FACTORは、それは既存のノードへの追加を増大させ、時間のいくつかの期間のために、予想成長のために、典型的なノードで、余地を残すために選択される可能性があります。一般に、これは、LOADと最初のREORGとの間、または、2つのREORGsとの間の時間です。また、これは、既存の照合順序の内部にあるノードの追加にも当てはまります。

例えば、もし、globalが毎月5%の増大が期待されるならば、(相対的に一様に分布のある更新として)、および、REORGsが四半期毎に1回スケジュールされるならば、オリジナルのLOADと後続のREORGsの両方のためのFILL_FACTORは20パーセントとなるかもしれない((3ヶ月+1ヶ月の "安全マージン")* 5%/1ヶ月)。

デフォルトでは、最大データ密度で、LOADは-FILL_FACTOR=100を使用します。

REOrg

MUPIP REORGは、データベースファイルをデフラグメントし圧縮することにより、パフォーマンスを改善するために使用するツールです。REORGは、更新を含む他のデータベースのアクティビティをもって、同時並行に実行します。競合するアクティビティは、一般に、REORGを実行するのに必要な時間だけでなく、競合する操作の時間も増加させます。もし、通常のデータベースにアクセスで、同時並行してREORGを使用し、そして、通常の操作のパフォーマンスに影響を与えるの通知するならば、REORGのパフォーマンスプロセスの優先順位を下げることができます。

Note、REORGがデータベースファイルのGDSの構造を最適化している間、それは、ネイティブなファイルシステムのファイルの断片化は扱いません。我々の経験では、ネイティブのファイルシステムレベルでの断片化は、GDSの構造レベルでの断片化よりも、より可能性が高いです。常に、大量の連続した空き領域をもつディスク上で、適切な割り当てや拡張をもつファイルを作成します。ネイティブのユーティリティを使用し、そしてあなたの手順に依存し、MUPIPは、データベースファイルが12倍以上に拡張されている時、ファイルの断片化を排除するために有益です。

MUPIP REORGは、データベースの論理的な内容は変更しません、そして、論理的なデュアルサイトのアプリケーションのプライマリまたはセカンダリのいずれも実行することができます。そのような場合、プロセス中のREORGを再開することは、バッチ再始動の一部でなければなりません。For more information about running REORG on a dual site application, see Chapter 7: “Database Replication.

REORGコマンドのフォーマット:

REO[RG] [-qualifier...] 

オプションの修飾子は以下のとおりです:

  • -E[XCLUDE]=global-name-list

  • -F[ILL_FACTOR]=integer

  • -I[NDEX_FILL_FACTOR]=integer

  • -R[ESUME

  • -S[ELECT]=global-name-list

<CTRL-C>でREORGを終了します。オペレータのアクションやエラーで異常終了されたREORGは不完全ですが、しかし、kill -9で終了する場合を除き、データベース構造には不利な影響はありません。

指定されたグローバル変数で使用されるスワッピングブロックから、REORGを制限します。たとえば、単一のMUPIPコマンドは、データベースや領域でのグローバルのサブセットを編成することがあります。2番目のMUPIP REORGコマンドが残りのグローバルをSELECTした場合、それは、編成された以前のブロックが非最適化によって、最初のREORGの結果を混乱させる傾向があるだろう、なぜなら以前のMUPIP REORGコマンドから渡された情報はないので。EXCLUDE修飾子を使用すると、MUPIP REORGがこれらのグローバルを含むGDSブロックをバイパスするように、以前にREORGされたグローバルの名前をリストすることができます。

もしREORG -EXCLUDE=global-name-list コマンドを入力し、指定されたグローバル変数が存在しな場合は、REORGは、画面にメッセージを発行し、任意の指定された存在するグローバル変数のプロセスを続行します。REORGがどのグローバルを処理することができない場合は、エラーで終了します。

この修飾子の引数は、個々のグローバル名、グローバル名の範囲、または、ワイルドカード記号に続くリスト名と接頭辞である必要があります。シェルによって不適切な拡大を防止するために、ワイルドカードを二重引用符("")で囲みます。グローバルの仕様では、キャレット記号(^)は、オプションです。

グローバル名です:

  • ACNのようなグローバル名

  • A7:B7 のようなグローバル名の範囲

  • A,B,Cのようなリスト

  • TMP*のように、同じ接頭辞をもつグローバル名

最初のケースで、REORGは、グローバル ^ACN のみ除外します。2番目のケースで、REORGは、A7からB7までの照合シーケンスの中のすべてのグローバル名を除外します。3番目のケースで、REORGは、A,B,Cを除外します。最後のケースで、REORGは、接頭辞がTMPのすべてのグローバルを除外します。

デフォルトでは、REORGは、任意のグローバルを除外しません。

任意のグローバルが、 - SELECTと - EXCLUDEの両方の引数リストの中に出現するケースでは、REORGはエラーで終了します。

各データベースブロックを、どのようにフルにするべきかを指定します。これは、ターゲットの数です。個々のブロックは、フィルファクターよりも、多かれ少なかれフルになることがあります。

もし、あなたがデータベースのパフォーマンスの問題や、データベースの更新率が高いことを持つ場合は、あなたは定義されたFILL_FACTORsを調べる必要があります。均一なレコードを使用するアプリケーションではない限り、典型的なほとんどのアプリケーションの場合を除き、FILL_FACTORsは、正確に動作しません。

データにおけるFILL_FACTORは、それは相対的に静的で、または、新しいノードを加えることによって成長し、それは既存のノード前、または、後に照合し、100%になる必要があります。データにおけるFILL_FACTORは、それは既存のノードへの追加を増大させ、時間のいくつかの期間のために、予想成長のために、典型的なノードで、余地を残すために選択される可能性があります。一般に、これは、LOADと最初のREORGとの間、または、2つのREORGsとの間の時間です。また、これは、既存の照合順序の内部にあるノードの追加にも当てはまります。

例えば、もし、globalが一か月当たり5%の増大が期待されるならば、(相対的に一様に分布のある更新として)、および、REORGsが四半期毎にスケジュールされるならば、オリジナルのLOADと後続のREORGsの両方のためのFILL_FACTORは20パーセントとなるかもしれない((3ヶ月+1ヶ月の "安全マージン")* 5%/1ヶ月)。

FILL_FACTOR修飾子の引数は、30から100までの整数でなければなりません。これらの整数は、REORGがフィル可能なデータブロックの割合(パーセンテージ)を表します。デフォルトでは、最大データ密度で、FILL_FACTORの値は100です。そのような場合については、REORGは、ブロック分割を実行することはありません。

インデックスブロック内に、将来のアップデートのための空き領域を残すためにREORGを指示します。この修飾子に対する引数は、REORGがフィル可能なインデックスブロックの割合(パーセンテージ)を表す30から100までの整数でなければなりません。REORGは、インデックスブロック内の詳細情報を配置したり、別のブロックヘデータを移動することによってスペースを作成したりするかどうかを決定し、この番号を使用します。

一定の条件の下で、特に大規模なデータベースのブロックサイズの場合は、データ用ブロックに比べてインデックス用ブロックがより小さなフィルファクタを使用することによって、高速なスループットを実現する可能性があります。その値が明示的に指定されているか、または、デフォルトで暗黙的に取得されたかのどちらにかかわらず、デフォルトでは、INDEX_FILL_FACTORはFILL_FACTORの値です。

もしREORGを割り込むならば、RESUME修飾子は、どこからかの操作停止のポイントで、REORG操作を再起動することができます。REORGは、データベースファイルのヘッダーに、最後のキー値を格納します。RESUME修飾子を入力するならば、プログラムは、データベースファイルのヘッダーから、最後のキーの値を取得し、そして、そのキーから操作を再起動します。

指定されたグローバルのサブセットへのREORG操作を制限します。デフォルトでは、REORGは、MUPIPコマンドの実行プロセスのために、現在のグローバルディレクトリで、識別されたすべてのデータベースファイル内の、すべてのグローバル上で。操作します。REORGにより実行される1つの機能は、ファイル内でそれが操作するグローバルの論理的順序となります。EXCLUDE修飾子が正しく使用されている場合を除き、同じファイルの中で異なる選択もつコマンドを繰り返すことは、作業の無駄で、そして、編成された最後の良い選択を残すだけです。

もしREORG -SELECT=global-name-list コマンドを入力し、指定されたグローバル変数が存在しな場合は、REORGは、画面にメッセージを発行し、任意の指定された存在するグローバル変数のプロセスを続行します。REORGがどのグローバルを処理することができない場合は、エラーで終了します。

この修飾子の引数は、個々のグローバル名、グローバル名の範囲、または、ワイルドカード記号に続くリスト名と接頭辞である必要があります。グローバルの仕様では、キャレット記号(^)は、オプションです。

グローバル名です:

  • ACNのようなグローバル名

  • A7:B7 のようなグローバル名の範囲

  • A,B,Cのようなリスト

  • TMP*のように、同じ接頭辞をもつグローバル名

最初のケースで、REORGは、グローバル ^ACN のみ除外します。2番目のケースで、REORGは、A7からB7までの照合シーケンスの中のすべてのグローバル名を除外します。3番目のケースで、REORGは、A,B,Cを除外します。最後のケースで、REORGは、接頭辞がTMPのすべてのグローバルを除外します。

デフォルトでは、REORGは、すべてのグローバル変数を選択します。

REPlicate

The REPLICATE command controls the logical dual-site operation of GT.M. For a description of the REPLICATE command, see Chapter 7: “Database Replication. chapter.

REstore

RESTOREは、データベースに一致する1つまたは複数のBACKUP -INCREMENTALを統合します。最初のインクリメンタルバックアップのトランザクション数は、データベースの現在のトランザクション数が1より大きい必要があります。そうでなければ、MUPIP RESTOREはエラーにより終了し、修復を実行することを拒否します。

RESTOREコマンドのフォーマット:

RE[STORE] [-qualifier] file-name file-list

file- nameは、出発点としてのRESTOREを使用するデータベースファイルの名前を、識別します。データベース内のトランザクション数は、RESTOREに連続する各入力の開始トランザクションの数と一致する必要があります。もしBACKUP - INCREMENTALは、-TRANSACTION=1を使用して作成されたならば、MUPIP CREATEを持つ新しいデータベースを作成し、そして、それにアクセスしないでください。RESTOREを初期化する前に、スタンドアロンのMUPIPコマンド以外、INTEG -FILE、EXTEND、およびSETは、、、

ファイルリストは、データベースにRESTOREするために、BACKUP -INCREMENTALによって生成される1つまたは複数のファイルを指定します。file- nameは、カンマ(,)で区切られ、そして、最も古いトランザクション数から、最も最近のトランザクションの数への順番でなければなりません。RESTOREは、そのようなファイルをサポートする任意のデバイス上で、UNIXファイルからのその入力を受け取るでしょう。

もし、それがデータを読み込むために必要なサイズよりも小さいならば、RESTOREはデータベースファイルを自動的に拡張する必要があるかどうかを、指定します。バックアップ間のMのアクティビティは、自動的にデータベースファイルを拡張することがあります。したがって、RESTOREのために出発点として指定されたデータベースファイルは、復元する前に、拡張を必要とする可能性があります。もしデータベースが拡張と - NOEXTENDで指定されるコマンドを必要とするならば、MUPIPはメッセージを表示します。メッセージは、データベースファイルの入力と出力のサイズと、データベースが拡張されたブロック数を提供します。もしRESTOREがファイルリストをもつ1つ以上のインクリメンタルバックアップを指定するならば、データベースファイルは拡張を1つ以上である必要があります。

デフォルトでは、RESTOREは自動的にデータベースファイルを拡張します。

RUndown

データベースへのアクセスが適切に終了されていない時は、RUNDOWNは現在の不活発なデータベースを適切に閉じ、そして、すべてのIPC資源の使用を解放します。通常の操作では、データベースファイルをクローズする最後のプロセスは、RUNDOWNアクションを実行し、そして、MUPIP RUNDOWNは必要ありません。データベースファイルが既に正しいrundownでは、MUPIP RUNDOWNは影響を与えません。疑しい場合は、常に安全にrundownを実行することです。FISは、GT.Mアプリケーションまたはシステムをシャットダウンする以下の方法を推奨しています。

  • すべてのGT.Mプロセスを終了、そして

  • アクティブになる可能性がある任意およびすべてのデータベースファイルをRundownします。

MUPIP RUNDOWNは、バージョンの不一致をチェックします。もしそれらがはミスマッチならば、それは、領域をスキップして、次の領域へと続きます。これは、同じマシン上に共存する複数(非相互作用)のGT.Mバージョンを容易に作ります。Note : GT.Mはソフトウェアの複数のバージョンでは、同じデータベースファイルへの同時アクセスをサポートしていません。

RUNDOWNコマンドのフォーマット:

RU[NDOWN] [-FILE file-name | -REGION region-list]

RUNDWONコマンドは、1つの修飾子を含める必要があります:

  • -FILE

  • -REGION

MUPIP RUNDOWNは、すでに閉じているファイル内の特定フィールドをクリアします。これにより、システムがクラッシュしたり他の動作異常からの回復を促進します。

システムがクラッシュした後、または、データベースへアクセスする最後のプロセスが異常終了した後、RUNDOWNを使用してください。RUNDOWNは、開いているデータベースが適切に閉じられ、そして、その後に使用する準備を、確実にします。RUNDOWNは、RUNDOWNが発行されているその時に、積極的にアクセスされている任意のデータベースに影響を与えません。

データベースの整合性を確保するため、すべてのシステムのシャットダウンアルゴリズムは、GT.Mのプロセスを停止し全てのデータベースファイルにRUNDOWNを実行するスクリプトを、インクルードする必要があります。

1つのデータベースファイルに file- nameである引数を指定します。 - FILE修飾子はREGION修飾子と互換性はありません。もしRUNDOWNパラメータがファイルのリストで構成するならば、コマンドはリスト内の最初の項目でのみ動作します。

現在のグローバルディレクトリによりマップされたデータベースファイルを識別する、1つ以上の領域名が含まれる引数を指定します。 - REGION修飾子は、 - FILE修飾子と互換性はありません。

Set

SETは特定のデータベース特性を変更します。SETは領域またはファイルのいずれかで動作します。

[注意]

引き続き有効なジャーナリングを持つ領域では、スタンドアロンアクセスが必要か、または、更新を凍結するかのどちらでもなく、ジャーナルファイルを切り替えることができます。

例:

mupip set -region -journal=on,nobefore "*"

もしMUPIP SETコマンドが -ACCESS_METHOD, -GLOBAL_BUFFERS, または, -NOJOURNALを指定するならば、またもしENABLE, DISABLE, ALLOCATION, EXTENSION, または, BUFFER_SIZEのオプションを持つ任意の -JOURNALが指定されるならば、データベースへの排他的アクセスが必要とされます。

SETコマンドのフォーマットは:

SE[T] -FILE | -REGION [-qualifier,...] filename | region-list

file- name(または領域リスト)は、SETの対象を識別します。

SETコマンドは、SETへの引数がfile- name または領域リストかどうかを決定する、次の修飾子のうち1つを含める必要があります。

-F[ILE]

1つのデータベースファイルに file- nameである引数を指定します。 - FILE修飾子はREGION修飾子と互換性はありません。

-R[EGION]

現在のグローバルディレクトリでマップされたデータベースファイルを識別する領域リストとなる引数を指定します。パラメータがリストおよび/またはワイルドカードを含む時、SET -REGIONは複数のファイルを変更します。 - REGION修飾子は - FILE修飾子と互換性はありません。

SETのアクションを決定するオプションの修飾子です:

-E[XTENSION_COUNT]=integer

既存のデータベースファイルを拡張するGDSブロックの数を指定します。ファイルまたは領域の名前が必要です。この修飾子はスタンドアロンアクセスが必要です。EXTENSION_COUNTコマンドのフォーマットは次のとおりです:

mupip set -e=integer

-F[LUSH_TIME]=integer

古いキャッシュバッファの書き込みを引き延ばす間の時間量を指定します。この時間はミリ秒の整数値として指定されます 。この修飾子はスタンドアロンアクセスが必要です。FLUSH_TIME修飾子のフォーマットです:

mupip set -f=time

-G[LOBAL_BUFFERS]=integer

BGデータベースに対するキャッシュバッファ数を指定します。この修飾子はスタンドアロンアクセスが必要です。GLOBAL_BUFFERSの良い作業サイズを決定する上での情報は、"グローバル ディレクトリエディタに"の章を参照してください。

一般的に、グローバルバッファ数の増加は、システム上のI/O負荷のピークを平滑化することにより、パフォーマンスを改善します。ただし、グローバルバッファ数の増加はシステムのメモリ要件も増加し、そして、大きいグローバルバッファ数はスワップアウトを得るバッファの確率を高めることができる。もしグローバルバッファがスワップアウトされるならば、グローバルバッファ数の増加から任意のパフォーマンスを得ること以上に、グローバルバッファのスワップのパフォーマンスへの影響により相殺されることでしょう。ほとんどのアプリケーションは頻繁に使用されるデータベース領域では1000から4000のグローバルバッファを使用します。特殊な状況を除いて、FISは 256以下のバッファを使用することは推奨しません。

最小は64バッファで、最大は65536バッファです。デフォルトでは、MUPIP CREATEはGLOBAL_BUFFERSはグローバルディレクトリに入った情報を使用して確立されます。

多くのUNIXシステムでは、デフォルトのカーネルパラメータではGT.Mのグローバルバッファにとっては不十分な可能性があり、システム管理者によって調整される必要があるでしょう。

-L[OCK]_SPACE=integer

Mの管理に割り当てられているページ数はデータベースに関連付けられたロックを指定します。LOCK_SPACEの詳細情報については、"グローバル ディレクトリエディタ"の章を参照してください。ファイルまたは領域の名前が必要です。この修飾子はスタンドアロンアクセスが必要です。LOCK_SPACE修飾子のフォーマットです:

mupip set -l=integer

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

データベースがジャーナリングと、そして、もしなるならば、ジャーナルファイルの特性を許可するかどうかを指定します。

- NOJOURNALは、ジャーナリングを許可しないデータベースを指定します。そして、また、引数の割り当ては受け付けてません。

- JOURNAL が許可されているジャーナリングを指定します。それは、ジャーナルオプションリストの1つ以上の引数をとります。-JOURNAL修飾子とそのキーワードの完全な説明については、"GT.Mジャーナリング"の章を参照してください。

-RES[ERVED_BYTES]=size

各データベースブロック内に確保されるサイズを指定します。RESERVED_BYTESは、一般的に、Mの通信プロトコルの制限を観察する他の実装、または互換性のための予備の部屋に使用されます。RESERVED_BYTESは、また、フィルファクターのユーザ管理として使用されることがあります。

最小のRESERVED_BYTESは、ゼロバイトです。プラットフォームに応じて、RESERVED_BYTESの最大は、ブロックサイズから7または8のどちらかのブロックヘッダを引いた値です。現実的に決定するこの量は、最大サイズのうちの少なくとも1つのレコードの余地を残す必要があります。

Stop

STOPはGT.Mイメージを終了します。イメージは現在開いているすべてのデータベースの整然としたrundownを実行し、そして終了します。MUPIP STOPはkill -15を実行し、したがって非GT.Mイメージも停止するために使用される可能性があります。

STOPコマンドのフォーマット:

ST[OP] process-id

いずれかの修飾子のうち少なくとも1つは出現する必要があります。もし両方の修飾子が出現するならば、それらは同じプロセスを参照する必要があり、または、STOPはコマンドを拒否します。

アクティブなプロセス名とプロセスID(PID)のリストを表示するために、シェルコマンドのps を使用します。

自分のアカウントに属するプロセスを停止するために、プロセスは特権を全く必要としません。別のアカウントに属するプロセスを停止するために、MUPIP STOPはrootとして実行する必要があります。

MUPIP トリガ

トリガー定義を検査またはロードします。MUPIP TRIGGER コマンドの形式は次のとおりです:

MUPIP TRIGGER {-TRIG[gerfile]=<trigger_definitions_file>[ -NOPR[ompt]]| [-SELE[ct][=name-list|*][ <select-output-file>]}

MUPIP TRIGGERコマンドを実行する前に:

  1. 環境変数 gtmgbldir:の値を設定して、現在のグローバルディレクトリの値を指定します。

  2. データベースのキー・サイズ、レコード・サイズ、ブロック・サイズが、トリガー定義を格納するのに十分であることを確認してください。それ以外の場合に必要となるデータベースのコンテンツよりも大きなキーとレコードのサイズを設定する必要があります。

MUPIP TRIGGER コマンドの修飾子は次のとおりです:

TRIGgerfile=<trigger_definitions_file>

トリガー定義ファイルをデータベースにロードします。TRIGGERFILE修飾子の形式は次のとおりです:

-TRIG[gerfile]=<trigger_definitions_file>[-noprompt]
  • For information on the syntax and usage of a trigger definition file, refer to GT.M Programmer's Guide.

  • MUPIP TRIGGER-TRIGGERFILE操作はトランザクション境界内で発生するため、トリガー定義ファイルからの1つのトリガでも正しく解析できない場合、MUPIP TRIGGERはトリガ定義ファイルのロード全体をロールバックします。

  • MUPIP TRIGGER -TRIGGERFILE は空白行と行内の余分な空白を無視します。最初の位置にあるセミコロンの行をコメントとして扱い、その内容を無視します。

  • MUPIP TRIGGERは、XECUTEアクション文字列をコンパイルし、コンパイルにエラーがある場合はロードを拒否します。

  • トリガの読み込みと実行中に、常に環境変数 gtm_chset に同じ値を指定してください。もしトリガのロードと実行中に異なるgtm_chsetの値を指定すると、MUPIP TRIGGERは実行時エラー(TRIGINVCHSET)を生成します。GT.Mはプロセスが異なるキャラクタセットを使用するトリガで異なるノードを更新するのを妨げませんが、GT.Mはプロセスが異なるキャラクタセットを持つ同じトリガノードを更新するのを防ぎます。すべてのデータベースの更新に関するコーディングの練習は、ロードコンパイルとランタイムコンパイル時にgtm_chsetに同じ値を指定するようにする必要があります。

  • 次の修飾子とは同時利用できません: -SELECT

[注意]

トリガ更新サマリーレポートは、名前とオプションの変更を「変更済み」としてカウントするだけでなく、-COMMANDSリストが機能的に追加または削除されている場合でもカウントされます。

SELEct=name-list

現在のトリガー定義を調べる機能を提供します。SELECT は、グローバル変数またはトリガ名のカンマ区切りリストの現在のトリガのリストを生成します。SELECT修飾子の形式は次のとおりです:

-SELE[ct][=name-list[*]|*][ <select-output-file>]

  1. Name-list can include global names, delimited with a leading up-arrow, (^) and/or trigger names with no leading up-arrow. いずれかを使用して末尾のアスタリスク(*)を指定することができます。

  2. 引数が指定されていない場合、GT.Mは -SELECT を -SELECT="*" として扱い、現在のすべてのトリガのリストを抽出します。

  3. オプションで、ファイル名を指定してコマンドの出力をリダイレクトすることができます。もしファイル名を指定しない場合、MUPIP TRIGGERはファイル名の入力を要求します。もし空の文字列(RETURN)で応答すると、MUPIP TRIGGERは出力をSTDOUTに指示します。

[注意]

MUPIP TRIGGER -SELECTコマンドの出力は、トリガー定義ファイルと異なる場合があります。これは、GT.Mが意味的に同じ構文を単一の内部表現に変換するためです。 -SELECT出力は-TRIGGERFILE入力と同じではない場合もありますが、同じ意味です。さらに、MUPIP TRIGGER -SELECTは、コメントの一部として "Cycle"というフィールドを表示します。Cycle is the number of trigger definition updates (addition, modification, or deletion) performed on a global.

MUPIPトリガーの例

このセクションでは、トリガーの作成、変更、および削除の手順を段階的に説明します。トリガは、プロセス単位で動作する $gtmututines などの環境変数とは異なり、データベースを更新するすべてのプロセスに影響します。したがって、本番環境ではトリガを変更するための慎重に計画された手順を常に実行することをお勧めします。

グローバルノード ^Acct("ID") の新しいトリガーを作成するには:

  1. エディタを使用して、次のエントリを使用して triggers.trg というトリガ定義ファイルを作成します。

    +^Acct("ID") -name=ValidateAccount -commands=S -xecute="Write ""Hello Earth!"""
  2. 次のようなコマンドを実行します:

    $ mupip trigger -triggerfile=triggers.trg

    このコマンドは、 ^Acct("ID") のトリガーを追加します。トリガが正常にロードされると、このコマンドは次のような出力を表示します:

    File triggers.trg, Line 1: ^Acct trigger added with index 1
    =========================================
    1 triggers added
    0 triggers deleted
    0 trigger file entries not changed
    0 triggers modified
    ========================================= 

    ここで、グローバルノード ^Acct("ID") 上のすべての S[et] 操作がトリガーを実行します。

  3. 次のようなコマンドを実行します:

    $ mupip trigger -select="^Acct*"

    このコマンドは、トリガーを表示します。サンプル出力は次のようになります:

    ;trigger name: ValidateAccount#  cycle: 1
    +^Acct("ID") -name=ValidateAccount -commands=S -xecute="Write ""Hello Earth!""" 

グローバルノード ^Acct("ID") の既存のトリガを変更するには:

既存のトリガー定義を新しいものに直接置き換えることはできません。-NAME および -OPTIONS を除き、既存のトリガーを変更するには、既存のトリガー定義を削除し、変更されたトリガー定義を新しいトリガーとして追加する必要があります。GT.Mは、S[ET] がトリガー呼び出しコマンドであるかどうかによって、トリガー定義と一致する2つの異なるトリガー比較を実行することに注意してください。もし S[ET] がある場合、比較はグローバル名と添字、PIECES、[Z]DELIM、および、XECUTEに基づいて行われます。もしSETがない場合、GT.Mはグローバルノードのみを添字と -XECUTEコードの値と比較します。

  1. 最初に、次のコマンドを実行します。

    $ mupip trigger -select="^Acct*"
    Output file: 
  2. trigger_mod.trg を出力ファイルとして指定します。このファイルには、次のようなエントリが含まれています:

    ;trigger name: ValidateAccount#  cycle: 1
    +^Acct("ID") -name=ValidateAccount -commands=S -xecute="Write ""Hello Earth!"""
  3. エディタを使用して、trigger_mod.trgを開き、ValidateAccount のトリガ定義エントリの+(プラス)を - (マイナス)に変更し、^ Acct( "ID")の新しいトリガ定義を追加します。一貫性のないアプリケーションの動作を避けるためには、古いトランザクションを同じトランザクション(アトミック)内の新しいトランザクションに置き換えることが重要です。trigger_mod.trg ファイルには次のようなエントリが必要です:

    ;trigger name: ValidateAccount#  cycle: 1-^Acct("ID") -name=ValidateAccount -commands=Set -xecute="Write ""Hello Earth!"""
    ;trigger name: ValidateAccount#+^Acct("ID") -name=ValidateAccount -commands=Set -xecute="Write ""Hello Mars!""" 
  4. 次のようなコマンドを実行します:

    $ mupip trigger -triggerfile=trigger_mod.trg
  5. このコマンドは、次のような出力を表示します:

    File trigger_mod.trg, Line 1: ^Acct trigger deleted
    File trigger_mod.trg, Line 3: ^Acct trigger added with index 1
    =========================================
    1 triggers added
    1 triggers deleted
    0 trigger file entries not changed
    0 triggers modified
    =========================================

    おめでとう!ValidateAccount の xecute文字列を新しいものに変更しました。

グローバルノード ^Acct("ID") の既存のトリガーを削除するには:

  1. 最初に、次のコマンドを実行します。

    $ mupip trigger -select="^Acct*"
    Output file:
  2. trigger_delete.trg を出力ファイルとして指定します。 このファイルには、次のようなエントリが含まれています:

    ;trigger name: ValidateAccount#  cycle: 3
    +^Acct("ID") -name=ValidateAccount -commands=S -xecute="Write ""Hello Mars!"""
  3. エディタを使用して、ValidateAccount のトリガ定義エントリの+(プラス)を - (マイナス)に変更します。あるいは、-ValidateAccount のようなエントリを持つファイルを作成することもできます。

  4. 次に、以下のようなコマンドを実行します:

    $ mupip trigger -triggerfile=trigger_delete.trg

    このコマンドは、次のような出力を表示します:

     File trigger_delete.trg, Line 2: ^Acct trigger deleted
    =========================================
    0 triggers added
    1 triggers deleted
    0 trigger file entries not changed
    0 triggers modified
    =========================================

トリガー "ValidateAccount" を正常に削除しました。

グローバルノード ^Acct("ID") のトリガー名を変更するには:

  1. エディタを使用して、 trigger_rename.trg という名前の新しいファイルを作成し、ValidateAcct と同じトリガーシグネチャを持つ ValidateAccount のトリガ定義エントリを追加します。トリガーの定義は次のようになります:

    +^Acct("ID") -name=ValidateAcct -commands=S -xecute="Write ""Hello Mars!"""
  2. Verify that the ValidateAccount trigger exists by executing the following command: 次のコマンドを実行して、 ValidateAccount トリガーが存在することを確認します:

    $ mupip trigger -select="^Acct*"
    Output file:
  3. 空の文字列で応答します(Enterキーを押します)。トリガー要約レポートに次のようなエントリが含まれていることを確認します:

    ;trigger name: ValidateAccount#  cycle: 3
    +^Acct("ID") -name=ValidateAccount -commands=S -xecute="Write ""Hello Mars!"""
  4. 次に、以下のようなコマンドを実行します:

    $ mupip trigger -triggerfile=trigger_rename.trg

    このコマンドは、次のような出力を表示します:

    =========================================
    0 triggers added
    0 triggers deleted
    0 trigger file entries not changed
    1 triggers modified
    =========================================

    トリガ名 ValidateAccountValidateAcct に変更しました。

inserted by FC2 system