スケーラブルデータベースサーバ HiRDB ファーストステップガイド(Windows(R)用)

[目次][用語][索引][前へ][次へ]

4.8.2 演習(RDエリアを追加する

ユーザ用RDエリア(RDAREA01)を作成して,そこに社員表(表名:EMP)を作成します。

<この項の構成>
(1) HiRDBファイルシステム領域を作成するディレクトリを作成します
(2) pdfmkfsコマンドで,HiRDBファイルシステム領域を作成します
(3) pdfstatfsコマンドで,HiRDBファイルシステム領域が作成されたかを確認します
(4) pdfstatfsコマンドの実行結果が表示されます
(5) pdbuflsコマンドで,定義されているグローバルバッファを調べます
(6) pdbuflsコマンドの実行結果が表示されます
(7) pdmodコマンドの制御文ファイルを作成します
(8) pdmodコマンドでRDAREA01を追加します
(9) pdmodコマンドの実行結果が表示されます
(10) pddblsコマンドで,RDAREA01が作成されたことを確認します
(11) pddblsコマンドの実行結果が表示されます
(12) pddefコマンドの入力ファイルを作成します
(13) pddefコマンドで社員表を定義します
(14) pddefコマンドの実行結果が表示されます
(15) 社員表が定義されたかを確認します
(16) データを挿入します
(17) 社員表を検索します

(1) HiRDBファイルシステム領域を作成するディレクトリを作成します

RDエリア用のHiRDBファイルシステム領域を作成するディレクトリをエクスプローラで作成します。C:\hirdb\rdareaディレクトリを作成してください。

(2) pdfmkfsコマンドで,HiRDBファイルシステム領域を作成します

追加するRDエリア用のHiRDBファイルシステム領域を作成します。次のコマンドを実行してください。

 
C:\>pdfmkfs -n 20 -l 5 -k DB -i C:\hirdb\rdarea\area01
 

〔説明〕
RDエリア用のHiRDBファイルシステム領域をC:\hirdb\rdarea\area01に作成します。
-n
HiRDBファイルシステム領域の大きさをMB単位で指定します。この演習では20MBの大きさのHiRDBファイルシステム領域を作成します。
-l
HiRDBファイルシステム領域に作成するHiRDBファイル数の最大値を指定します。
-k
RDエリア用のHiRDBファイルシステム領域を作成するので,DBを指定します。
-i
HiRDBファイルシステム領域の全領域を初期設定することを指定します。
C:\hirdb\rdarea\area01
作成するHiRDBファイルシステム領域の名称を指定します。C:\hirdb\rdareaディレクトリ下にHiRDBファイルシステム領域area01が作成されます。

●pdfmkfsコマンドが成功すると
メッセージは何も表示されません。

●pdfmkfsコマンドが失敗すると
メッセージが表示されます。このメッセージを参照して対策してください。また,エラーの内容によってはイベントビューアにメッセージが出力されています。そのメッセージも参照して対策してください。

(3) pdfstatfsコマンドで,HiRDBファイルシステム領域が作成されたかを確認します

HiRDBファイルシステム領域が作成されたかを確認します。次のコマンドを実行してください。

 
C:\>pdfstatfs C:\hirdb\rdarea\area01
 

(4) pdfstatfsコマンドの実行結果が表示されます

 
user area capacity               20472[kB]           ・・・・・・・・・・・・・・・・1
remain user area capacity        20472[kB]           ・・・・・・・・・・・・・・・・2
available file size              20472[kB]           ・・・・・・・・・・・・・・・・3
available file count              5           ・・・・・・・・・・・・・・・・・・・・・・・4
current file count                0           ・・・・・・・・・・・・・・・・・・・・・・・5
remain file count                 5           ・・・・・・・・・・・・・・・・・・・・・・・6
free area count                   0           ・・・・・・・・・・・・・・・・・・・・・・・7
available expand count            0           ・・・・・・・・・・・・・・・・・・・・・・・8
current expand count              0           ・・・・・・・・・・・・・・・・・・・・・・・9
initialize area kind       DB(NOLOB)          ・・・・・・・・・・・・・・・・・・・・・・10
initialize user id         Administrator      ・・・・・・・・・・・・・・・・・・・・・・11
initialize time            Thu Jan 29 13:52:30 2004  ・・・・・・・・・・・・・・・12

〔説明〕
  1. HiRDBファイルシステム領域の大きさです。
  2. 未使用領域の大きさです。
  3. 1ファイルとして確保できる大きさの最大値です。
  4. この領域中に作成できるHiRDBファイルの上限数です。pdfmkfsコマンドの-lオプションで指定した値です。
  5. この領域中に作成したHiRDBファイルの数です。
  6. この領域中に作成できるHiRDBファイルの数です(あと幾つ作成できるかです)。
  7. 不連続な空き領域の総数です。
  8. この領域の増分回数の上限値です。
  9. この領域の増分回数合計値です。
  10. この領域の種別です。pdfmkfsコマンドの-kオプションで指定した値です。
  11. この領域を初期化したユーザのログイン名称です。
  12. この領域を初期化した時刻です。この例では,2004年1月29日 木曜日 13時52分30秒に領域が初期化されています。

補足事項Thu Jan 29 13:52:30 2004
C:\hirdb\rdareaディレクトリ下にarea01ファイルが作成されています。エクスプローラで確認してください。

(5) pdbuflsコマンドで,定義されているグローバルバッファを調べます

追加するRDエリアに割り当てられるグローバルバッファを調べます。次のコマンドを実行してください。

 
C:\>pdbufls -k def
 

〔説明〕
-k def:グローバルバッファの定義情報を表示する指定です。

(6) pdbuflsコマンドの実行結果が表示されます

 
DEFINE OF GLOBAL BUFFER
 EDIT TIME 2004-01-29 13:53:49
 BUFFNAME      SVID      TYPE  SIZE   NUM     WRATIO  RDAREA/INDEX NAME
                         PRMAX PRNUM  CSIZE   MAPS
 gbuf01        sds01     R      4k        20   20     "RDMAST"
                                                      "RDDIRT"
                             0  32   *******   **
 gbuf02        sds01     R      4k        20   20     "RDDICT"
                             0  32   *******   **
 gbuf04        sds01     R      4k     10000   20     "RDDATA10"
                             0  32   *******   **
 gbuf05        sds01     R      4k     10000   20     "RDINDX10"
                             0  32   *******   **
 gbuf03        sds01     O      8k     10000   20
                             0  32   *******   **
 

〔説明〕
定義されているグローバルバッファはRDエリア用(TYPE=R)のgbuf01,gbuf02,gbuf04,gbuf05およびその他のRDエリア用(TYPE=O)のgbuf03です。

(7) pdmodコマンドの制御文ファイルを作成します

pdmodコマンドのcreate rdarea文でRDエリアを作成します。

この演習では,次に示す内容の制御文ファイルC:\hirdb\pdmod\create.txtを作成してください。

 
create rdarea RDAREA01   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1
   globalbuffer gbuf04   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・2
   for user used by PUBLIC   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3
   page 4096 characters   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・4
   storage control segment 10 pages   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5
   file name "C:\hirdb\rdarea\area01\rdarea01"   ・・・・・・・・・・・・・・・・・・6
      initial 10 segments;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・7

〔説明〕
  1. 作成するRDエリア(RDAREA01)を指定します。
  2. RDAREA01に割り当てるグローバルバッファ(gbuf04)を指定します。(6)で調べたRDエリア用(TYPE=R)グローバルバッファをここに指定します。
    なお,次回のHiRDB開始以降はここで指定したグローバルバッファに割り当てられません。HiRDBを終了したら,システム共通定義のpdbufferオペランドでグローバルバッファを割り当ててください。
    (例)
    pdbuffer -a gbuf04 -n100 -r RDDATA10,RDAREA01 -w 20
  3. RDエリアの種類を指定します。この演習では,RDAREA01を公用RDエリア(PUBLIC)にします。
  4. ページ長を指定します。この演習では,ページ長を4096バイトにします。
  5. セグメントサイズを指定します。この演習では,1セグメントの大きさを10ページにします。
  6. RDエリアを構成するHiRDBファイルを指定します。C:\hirdb\rdarea\area01は,(2)で作成したHiRDBファイルシステム領域です。pdmodコマンドを実行すると,C:\hirdb\rdarea\area01ディレクトリ下にrdarea01ファイルが作成されます。C:\hirdb\rdarea\area01はWindows 2000のファイルパスです。
  7. HiRDBファイルのセグメント数を指定します。この演習では,10セグメントとします。

(8) pdmodコマンドでRDAREA01を追加します

作成した制御文ファイルを入力にして,データベース構成変更ユティリティ(pdmod)を実行します。次のコマンドを実行してください。

 
C:\>pdmod -a C:\hirdb\pdmod\create.txt
 

〔説明〕
-a:(7)で作成した制御文ファイルの名称を指定します。

(9) pdmodコマンドの実行結果が表示されます

 
KFPX14250-I Processing of create rdarea statement ended return code=0,
 RDAREA name="RDAREA01"
KFPX24213-I DB modification for ended return code=0 at 13:56:50 on 2004/01/29
KFPX24200-I DB modification ended, return code=0
 

〔説明〕
リターンコードに0が返されたので,pdmodコマンドが正常終了しました。

●pdmodコマンドが失敗すると(RDエリアの作成に失敗すると)
pdmodコマンドが失敗すると,リターンコードが0で返ってきません。この場合は,イベントビューアに出力されたメッセージを参照して対策してください。下の例は,create rdarea文で存在するRDAREAを指定したときに出力されたメッセージです。
 
KFPX14220-E Line 1:"rdarea" operand value "RDAREA01" duplicate
KFPX14220-E Line 6:"file" operand value
 "C:/hirdb/rdarea/area01/rdarea01" duplicate
KFPX14250-I Processing of create rdarea statement ended
 return code=8, RDAREA name="RDAREA01"
KFPX24213-I DB modification for ended return code=12
 at 16:06:16 on 2001/09/10
KFPX24200-I DB modification ended, return code=12
 

(10) pddblsコマンドで,RDAREA01が作成されたことを確認します

RDエリアが作成されたかどうかを確認します。次のコマンドを実行してください。

 
C:\>pddbls -r ALL
 

(11) pddblsコマンドの実行結果が表示されます

 
STATE OF RDAREA
    RDAREA         ID       STATUS           TYPE         OPNMODE
    MAST           1        OPEN             MAST         INITIAL 
    DDIR           2        OPEN             DDIR         INITIAL 
    DDIC           3        OPEN             DDIC         INITIAL 
    DIC_RTN_SRC    4        OPEN             DLOB         INITIAL 
    DIC_RTN_OBJ    5        OPEN             DLOB         INITIAL 
    RDINDX10       6        OPEN             USER         INITIAL 
    RDDATA10       7        OPEN             USER         INITIAL 
    RLOB1          8        OPEN             ULOB         INITIAL 
    RLOB2          9        OPEN             ULOB         INITIAL 
    RDAREA01       10       OPEN             USER         INITIAL 
 

〔説明〕
RDAREA01が追加されています。

(12) pddefコマンドの入力ファイルを作成します

pddefコマンドのCREATE TABLE文で作成したRDエリアに表を定義します。この演習では,次に示す内容の入力ファイルC:\hirdb\pddef\c_table.txtを作成してください。

 
CREATE FIX TABLE EMP (SNO CHAR(6),SNAME CHAR(12),SYEAR CHAR(4))
    IN RDAREA01;   ここに改行を入れてください。
 

〔説明〕
  • セミコロン(;)のあとに改行(Enter)を入れてください。
  • このCREATE TABLEで次に示す列を持つ社員表(表名:EMP)が作成されます。
    ・SNO(従業員番号)
    ・SNAME(社員名)
    ・SYEAR(入社年度)

(13) pddefコマンドで社員表を定義します

作成した入力ファイルを使って,データベース定義ユティリティ(pddef)を実行します。

 
C:\>pddef < C:\hirdb\pddef\c_table.txt
 

(14) pddefコマンドの実行結果が表示されます

 
KFPA12000-I Processing of SQL completed
 

〔説明〕
社員表が定義されました。

(15) 社員表が定義されたかを確認します

表が定義されたかをディクショナリ表を検索して確認します。HiRDB SQL Executerを起動してください。

SQL入力画面】
 
SELECT TABLE_SCHEMA,TABLE_NAME FROM MASTER.SQL_TABLES
 WHERE TABLE_NAME='EMP';
 
 

【検索結果画面】
 
TABLE_SCHEMA                TABLE_NAME
--------------------------- -------------------------
MANAGER                     EMP
KFPX27010-I           1 rows selected
 
〔説明〕
社員表(EMP)が定義されています。

(16) データを挿入します

INSERT文で社員表にデータを挿入します。次のSQL文を順に実行してください。

【SQL入力画面】
 
INSERT INTO EMP VALUES('189218','NAKATA','1989');
INSERT INTO EMP VALUES('192365','SUZUKI','1992');
INSERT INTO EMP VALUES('185995','TANAKA','1985');
 

【検索結果画面】
 
KFPX27010-I           1 rows inserted
 
KFPX27010-I           1 rows inserted
 
KFPX27010-I           1 rows inserted
 
〔説明〕
データが挿入されました。

(17) 社員表を検索します

データが正しく入力されているか確認します。次のSQL文を実行してください。

【SQL入力画面】
 
SELECT * FROM EMP;
 

【検索結果画面】
 
 SNO     SNAME         SYEAR
 ------  ------------  ----
 189218  NAKATA        1989 
 192365  SUZUKI        1992 
 185995  TANAKA        1985 
 
KFPX27010-I           3 rows selected