スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

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

10.2 使用例

リバランスユティリティの使用例を例1〜例4に示します。

<この節の構成>
(1) 共有モードの場合
(2) 占有モードの場合

(1) 共有モードの場合

例1:

HiRDB/シングルサーバの場合に,表(reb_table)にRDエリア(user03)を追加して,共有モードでリバランスユティリティを実行します。
  • 表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
  • インデクス定義
CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●ALTER TABLEでのRDエリアの追加
 
 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03
 

[説明]
表reb_tableにRDエリアuser03を追加します。また,インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド
 
 pdrbal -k share -t reb_table control_file
 

[説明]

-k share:動作モード(共用モード)

-t reb_table:リバランス表の名称

control_file:制御情報ファイル

●制御情報ファイル(control_file)の内容
 
 execstop time,9:00    [1]
 report /dsk01/rest_file    [2]
 

[説明]
  1. 9時間後にpdrbalを停止させます。
  2. 処理結果ファイル(/dsk01/rest_file)にpdrbalの実行結果を出力します。

 

例2:

HiRDB/シングルサーバの場合に,表(sgml_table)にRDエリア(user03)を追加して,共有モードでリバランスユティリティを実行します。なお,表sgml_tableにはプラグインが提供する抽象データ型の列があるものとします。
  • 表定義
  CREATE TABLE sgml_table (
      hkeys INT NOT NULL,
      doctext SGMLTEXT ALLOCATE (sgmltext IN ((LOB1D),(LOB2D)))
      PLUGIN '<DTD>新聞</DTD><EXTRACTparm>extract.prm</EXTRACTparm>'
      )
      FIX HASH HASHA BY hkeys IN (user01,user02)
  • インデクス定義
CREATE INDEX idx1 ON sgml_table(hkeys) IN ((idx01),(idx02))
CREATE INDEX ngram_index USING TYPE MASTER.NGRAM on sgml_table(doctext)
in ((LOB1I),(LOB2I))

●ALTER TABLEでのRDエリアの追加
 
 ALTER TABLE sgml_table ADD RDAREA user03
     FOR COLUMN doctext ALLOCATE(sgmltext IN LOB3D)
     FOR INDEX idx1 in idx03,ngram_index in LOB3I
 

[説明]
表sgml_tableにRDエリアuser03を追加します。また,インデクスidx1に対してRDエリアidx03を,プラグインインデクスngram_indexに対してRDエリアLOB3Iを追加します。

●pdrbalのコマンド
 
 pdrbal -k share -t sgml_table control_file
 

[説明]

-k share:動作モード(共用モード)

-t sgml_table:リバランス表の名称

control_file:制御情報ファイル

●制御情報ファイル(control_file)の内容
 
 execstop time,12:00    [1]
 unld_func type=sgmltext,func=unsgmltext(sgmltext)    [2]
 reld_func type=sgmltext,func=sgmltext(blob)    [3]
 report /dsk01/rest_file    [4]
 

[説明]
  1. 12時間後にpdrbalを停止させます。
  2. コンストラクタパラメタ逆生成関数を指定します。
    sgmltext:抽象データ型の名称
    unsgmltext:コンストラクタパラメタ逆生成関数の名称
    sgmltext:引数の型
  3. コンストラクタ関数を指定します。
    sgmltext:抽象データ型の名称
    sgmltext:コンストラクタ関数の名称
    blob:引数の型
  4. 処理結果ファイル(/dsk01/rest_file)にpdrbalの実行結果を出力します。

(2) 占有モードの場合

例3:

HiRDB/シングルサーバの場合に,表(reb_table)にRDエリア(user03)を追加して,占有モードでリバランスユティリティを実行します。
  • 表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
  • インデクス定義
CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●ALTER TABLEでのRDエリアの追加
 
 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03
 

[説明]
表reb_tableにRDエリアuser03を追加します。また,インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド
 
 pdrbal -k exclusive -t reb_table -l n control_file
 

[説明]

-k exclusive:動作モード(占有モード)

-t reb_table:リバランス表の名称

-l n:ログレスモード

control_file:制御情報ファイル

●制御情報ファイル(control_file)の内容
 
 idxwork /idxwork1    [1]
 sort /sortwork    [2]
 report /dsk01/rest_file    [3]
 

[説明]
  1. インデクス情報ファイル用ディレクトリ(/idxwork1)を指定します。
  2. ソート用ワークディレクトリ(/sortwork)を指定します。
  3. 処理結果ファイル(/dsk01/rest_file)にpdrbalの実行結果を出力します。

 

例4:

HiRDB/パラレルサーバの場合に,表(reb_table)にRDエリア(user03)を追加して,占有モードでリバランスユティリティを実行します。
  • 表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
  • インデクス定義
CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●サーバ,RDエリア,表,及びインデクスの関連
[図データ]

●ALTER TABLEでのRDエリアの追加
 
 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03
 

[説明]
表reb_tableにRDエリアuser03を追加します。また,インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド
 
 pdrbal -k exclusive -t reb_table -l n control_file
 

[説明]

-k exclusive:動作モード(占有モード)

-t reb_table:リバランス表の名称

-l n:ログレスモード

control_file:制御情報ファイル

●制御情報ファイル(control_file)の内容
 
 idxwork bes2 /idxwork_bes2    [1]
 sort bes2 /sortwork_bes2    [2]
 report /dsk01/rest_file      [3]
 

[説明]
  1. バックエンドサーバbes2のインデクス情報ファイル用ディレクトリ(/idxwork_bes2)を指定します。
  2. バックエンドサーバbes2のソート用ワークディレクトリ(/sortwork_bes2)を指定します。
  3. 処理結果ファイル(/dsk01/rest_file)にpdrbalの実行結果を出力します。

 

例5:

HiRDB/パラレルサーバの場合に,表(reb_table)に既存と同じRDエリアを追加して,占有モードでリバランスユティリティを実行します。なお,表はホスト(NODE24)上のバックエンドサーバ(bes1)とホスト(NODE25)上のバックエンドサーバ(bes2)に分割格納されています。
  • 表定義
  CREATE TABLE reb_table (hkeys INT NOT NULL,names CHAR(30)) 
      FIX HASH HASHF BY hkeys IN (user01,user02)
  • インデクス定義
CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●サーバ,RDエリア,表,及びインデクスの関連
[図データ]

●ALTER TABLEでのRDエリアの追加
 
 ALTER TABLE reb_table ADD RDAREA user01 FOR INDEX idx1 in idx01
 ALTER TABLE reb_table ADD RDAREA user02 FOR INDEX idx1 in idx02
 

[説明]
表reb_tableに既存と同じRDエリア(user01,user02)を追加します。また,インデクスidx1に対しても既存と同じRDエリア(idx01,idx02)を追加します。

●pdrbalのコマンド
 
 pdrbal -k exclusive -t reb_table -i c control_file
 

[説明]

-k exclusive:動作モード(占有モード)

-t reb_table:リバランス表の名称

-i c:インデクス作成モード(一括作成モード)

control_file:制御情報ファイル

●制御情報ファイル(control_file)の内容
 
 report /dsk01/rest_file    [1]
 idxwork bes1 /idxwork_bes1    [2]
 sort bes1 /sort_work_bes1    [2]
 idxwork bes2 /idxwork_bes2    [3]
 sort bes2 /sort_work_bes2    [3]
 

[説明]
  1. 処理結果ファイル(/dsk01/rest_file)にpdrbalの実行結果を出力します。
  2. 追加したRDエリア(idx01)に対するバックエンドサーバbes1の情報を指定します。
    インデクス情報ファイル用ディレクトリ名:/idxwork_bes1
    ソート用ワークディレクトリ名:/sort_work_bes1
  3. 追加したRDエリア(idx02)に対するバックエンドサーバbes2の情報を指定します。
    インデクス情報ファイル用ディレクトリ名:/idxwork_bes2
    ソート用ワークディレクトリ名:/sortwork_bes2