============================== GT.M データベース設定 ============================== はじめに ######################### このセクションでは、 `グローバルディレクトリエディタ(GDE) `_ と `M ペリフェラル インターチェンジ プログラム(MUPIP) `_ を使って、データを実際に格納するデータベースを作成します。 **重要:インストールして直ぐに、GT.Mを動作させないでください。** **このインストールのセクション終了後は、直ちに、次の、GT.Mの設定とGT.M データベース設定のセクション(環境設定、DB作成)を行ってください。** GT.Mの実行は、GT.Mのテストのセクションで行ってください。 グローバル ディレクトリ ######################### GT.Mではルーチンはグローバル変数から独立しています。 グローバル変数がデータベースファイルに属している一方で、ルーチンはOSのファイルシステムに属します。 グローバルは、変数の名前、領域、セグメント、ファイルで構成されます。 1. Mグローバル変数の名前のセット(Names または Name space)は、Mグローバルに関連するプロパティを定義する領域(Regions)にマップします。 2. 各領域(Regions)は、ファイルシステムに関連するプロパティを定義する セグメント(Segments)にマップします。 3. これらのプロパティとのマッピングのルールは、"グローバルディレクトリ" と呼ばれるバイナリファイルに格納されます。 4. グローバルディレクトリを定義するファイルは .gldの拡張子を持ちます。 グローバルディレクトリの場所はGT.Mの特殊変数 $ZGbldir によって示されています。 $ZGblgdir は、環境変数 gtmgbldir からプロセスの起動時に初期値を取得します。実行時に変更することも可能です。 例えば、Set $ZGBldir コマンドで、プロセス中に開発DBとテストDBのデータベースの間を行ったり来たり切り替えることができます。 GDEの詳細は、GT.M管理および操作ガイドのGDEのセクションを参照。 サンプル:Names, Regions, Segments, Files の関係図 .. image:: ./images/041014-2GlobalDirectory.gif :scale: 100 % グローバルディレクトリ作成方針 ############################### このインストールガイドでは、temp.dat, mega.dat, mumps.dat の3つのグローバルファイルを作成します。 .. csv-table:: **グローバルファイル設計の概要** :header: "セグメント", "レコードサイズ", "Names", "ジャーナル", "グローバルの用途" :widths: 15, 15, 30, 15, 25 "DEFAULT", "8K", "\*", "ON", "デフォルト" "TEMP", "32K", "^tmp*,^TMP*,^temp*,^TEMP*", "OFF", "テンポラリ" "MEGA", "1M", "^MEGA*,^mega*", "OFF", "1MBのグローバル実験" | | .. csv-table:: **グローバルディレクトリ db.gld 設定表** :header: "グローバル", "TEMP", "MEGA", "DEFAULT" :widths: 15, 30, 20, 15 "Names", "^tmp*,^TMP*,^temp*,^TEMP*", "^MEGA*,^mega*", "\*" "Regions", "TEMP", "MEGA", "DEFAULT" "Segments", "TEMP", "MEGA", "DEFAULT" "Files", "temp.dat", "mega.dat", "mumps.dat" "Journal", "\-", "\-", "default.mjl" GDEコマンドファイルの作成 ########################### GDEコマンドファイルは、実行するGDEコマンドの複数の行をテキストファイルに記述します。 テキストファイルに保存されたGDEコマンドをバッチで一度に実行するには@コマンドを使用します。 GDEはターミナルで入力された場合と同様に、コマンドファイルのそれぞれの行を実行します。 GDEコマンドファイルの詳細は、GT.M管理および操作ガイドのGDEの@セクションを参照。 下記のテキストファイルを、GTM-GDE.gde ファイルに保存します。 :: ! !**** SEGMENT section **** !==DEFAULT SEG Change== change -segment DEFAULT -ACCESS_METHOD=BG -block_size=4096 -allocation=24000000 -extension_count=10000 -lock_space=1000 -global_buffer_count=4096 -file_name=$DBINST/g/mumps.dat !==TEMP SEG add== add -segment TEMP -access_method=BG -block_size=4096 -allocation=1500000 -extension_count=10000 -lock_space=100 -global_buffer_count=4096 -file_name=$DBINST/g/temp.dat !==MEGA SEG temPlate== add -segment MEGA -access_method=BG -block_size=4096 -allocation=150000 -extension_count=10000 -lock_space=100 -global_buffer_count=4096 -file_name=$DBINST/g/mega.dat ! ! !@@DEFAULT REG ChanGe@@ change -region DEFAULT -record_size=8192 -key_size=1019 -journal=(before,file="$DBINST/j/default.mjl") -dyn=DEFAULT !@@TEMP REG add@@ add -region TEMP -record_size=32768 -key_size=1019 -dyn=TEMP -nojournal !@@MEGA REG add@@ add -region MEGA -record_size=1048576 -key_size=1019 -dyn=MEGA -nojournal ! !<< Name MAP >> ! add -name tmp* -region=TEMP add -name TMP* -region=TEMP add -name temp* -region=TEMP add -name TEMP* -region=TEMP add -name z* -region=TEMP add -name Z* -region=TEMP add -name MEGA* -region=MEGA add -name mega* -region=MEGA GDE実行 ####################### 次のコマンドで、GT.Mグローバルディレクトリエディタ Global Directory Editor (GDE)を実行します。 :: $gtm_dist/mumps -r GDE %GDE-I-GDUSEDEFS, Using defaults for Global Directory /home/mta/g/db.gld GDE> GDEのプロンプトが表示されます。 上記で作成したGDEコマンドファイル GTM-GDE.gde を。@コマンドで実行します。 :: GDE> @GTM-GDE.gde GDEの定義を、showコマンドで確認します。 :: GDE> show 定義を保存し、終了し、OSのシェルに戻ります。 :: GDE> exit %GDE-I-VERIFY, Verification OK %GDE-I-GDCREATE, Creating Global Directory file /home/mta/g/db.gld $ MUPIPでDBを作成 ####################### データベースを作成する `mupip`_ コマンドを呼び出します。 mupip create で、グローバルDATを作成します。 :: $gtm_dist/mupip create Created file /home/mta/g/mumps.dat Created file /home/mta/g/mega.dat Created file /home/mta/g/temp.dat $ デフォルトで使用されるデータベースが何であるかを単に定義しているので、`mupip create`_ の引数が必要ないことに注意してください。 ジャーナリング設定 ####################### GDEで設定した、DEFAULTのジェーナリングをONにします。 `GT.M管理および操作ガイド GT.M ジャーナリング MUPIP SET `_ を参照 :: $gtm_dist/mupip set -journal=before -region DEFAULT %GTM-I-JNLCREATE, Journal file /home/mta/j/default.mjl created for region DEFAULT with BEFORE_IMAGES %GTM-I-JNLSTATE, Journaling state for region DEFAULT is now ON ジャーナルをOFFにするには、 :: $gtm_dist/mupip set -journal=OFF -region DEFAULT %GTM-I-JNLSTATE, Journaling state for region DEFAULT is now OFF ジャーナル中のジャーナルファイルのステータスを見るには、mupip journal コマンドで行います。 `GT.M管理および操作ガイド GT.M ジャーナリング MUPIP JOURNAL `_ を参照 :: $gtm_dist/mupip journal -show=all /home/mta/j/default.mjl %GTM-I-MUJNLSTAT, Initial processing started at Thu Sep 26 16:06:43 2013 %GTM-I-MUJNLSTAT, Backward processing started at Thu Sep 26 16:06:43 2013 %GTM-I-MUJNLSTAT, Forward processing started at Thu Sep 26 16:06:43 2013 %GTM-S-JNLSUCCESS, Show successful %GTM-S-JNLSUCCESS, Verify successful %GTM-I-MUJNLSTAT, End processing at Thu Sep 26 16:06:43 2013 .. _M言語: http://gtmjp.web.fc2.com/doc/M-Tutorial/html/index.html .. _gtm_dist: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch03s02.html#gtm_dist .. _gtmgbldir: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch03s02.html#gtmgbldir .. _gtmroutines: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch03s02.html#gtmroutines .. _グローバル変数: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch05s03.html#Global_Var_Resource_Name_Env .. _ローカル変数: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch05s03.html#Local_Variables .. _zwrite: http://gtmjp.web.fc2.com/doc/books/pg/UNIX_manual/ch06s48.html .. _mupip: http://gtmjp.web.fc2.com/doc/books/ao/UNIX_manual/ch05s02.html .. _mupip create: http://gtmjp.web.fc2.com/doc/books/ao/UNIX_manual/ch05s02.html#create