スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

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

13.15.3 例題3(RDエリアを月単位に循環させて割り当てる場合)

ハッシュ関数HASH0を使用して,JUTYU表に2005年5月〜9月の最新5か月のデータを保持している状態で,最も古い2005年5月の1か月分のデータをRDエリア単位に削除し,新しい2005年10月のデータを格納する例を次に示します。

例題3の概要(RDエリアを月単位に循環させて割り当てる方法)を次の図に示します。

図13-88 例題3の概要(RDエリアを月単位に循環させて割り当てる方法)

[図データ]

<この項の構成>
(1) 削除対象の2005年5月のデータが格納されているRDエリア名を特定します
(2) pdholdコマンドでアンロード対象RDエリアを閉塞します
(3) pdrorgコマンドでJUTYU表のRDA1のデータをアンロードします
(4) pdloadコマンドでRDA1に対して0件のデータロードをします
(5) pdrelsコマンドでRDエリアの閉塞を解除します

(1) 削除対象の2005年5月のデータが格納されているRDエリア名を特定します

(a) 表分割ハッシュ関数の実行

HiRDBが提供する表分割ハッシュ関数を使用して,削除対象の2005年5月のデータが格納されているRDエリア名を特定します。表分割ハッシュ関数の引数を次に示します。なお,表分割ハッシュ関数については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

引数 指定値
hashcode(ハッシュ関数コード) p_rdb_HASH0
ncol(分割キーの列数) 1
collst(分割キーの指定順序とデータ型コード,データ長コード) データ型コード:PDSQL_CHAR
データ長コード:8
dadlst(分割キーに格納するデータ) 年月日
ndiv(表の分割数) 5
ncspace(HiRDBサーバで使用する各国文字の全角空白文字) ncspace[0]:0x81
ncspace[1]:0x40
flags(空白変換レベル,DECIMAL型の符号正規化機能の使用有無) 0
rdno(分割条件指定順序,又は分割キー内通番) なし

文字コード種別,空白変換レベル,及びDECIMAL型の符号正規化機能は,すべて省略しているものとします。
 

上記の表分割ハッシュ関数を実行すると,分割条件指定順序としてrdno=1が返ってきます。

(b) SQLの実行

表分割ハッシュ関数の結果を基に,次のSQLを実行し,RDエリア名を特定します。

 
SELECT RDAREA_NAME
    FROM MASTER.SQL_DIV_TABLE
      WHERE TABLE_SCHEMA='USER1'  /* ユーザ名         */
        AND TABLE_NAME='JUTYU'    /* ハッシュ分割表名 */
        AND DIV_NO=1              /* 分割条件指定順序 */
 

上記のSQLを実行すると,削除対象のRDエリア名としてRDA1が返ってきます。

(2) pdholdコマンドでアンロード対象RDエリアを閉塞します

 
pdhold -r RDA1
 

(3) pdrorgコマンドでJUTYU表のRDA1のデータをアンロードします

 
pdrorg -k unld -t JUTYU -r RDA1 /pdrorg/unld03
 

〔説明〕
-k:アンロードをするためunldを指定します。
-t:アンロードする表の名称を指定します。
-r:特定のRDエリアだけアンロードするため,対象となるRDエリア名を指定します。
/pdrorg/unld03:pdrorgコマンドの制御情報ファイル名を指定します。制御情報ファイルの内容を次に示します。
 
unload bes1:/pdrorg/unload_file
 
/* bes1:アンロードデータファイルがあるサーバの名称  */
/* /pdrorg/unload_file:アンロードデータファイルの名称 */
 

(4) pdloadコマンドでRDA1に対して0件のデータロードをします

最も古い2005年5月のデータ(RDA1のデータ)を削除するため,0件のデータロードを実行します。なお,分割表に対して非分割キーインデクスを定義している場合,pdload実行後に非分割キーインデクスを一括作成する必要があります。

 
pdload -d JUTYU /pdload/load03
 

〔説明〕
-d:既存のデータを削除してからデータロードをするために指定します。
JUTYU:データロードする表の名称を指定します。
/pdload/load03:pdloadコマンドの制御情報ファイル名を指定します。制御情報ファイルの内容を次に示します。
 
source RDA1 /pdload/load_file
 
/* RDA1:データロードするRDエリアの名称        */
/* /pdload/load_file:入力データファイルの名称 */
 

(5) pdrelsコマンドでRDエリアの閉塞を解除します

 
pdrels -r RDA1
 

 

コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

また,コマンドの実行後,UAPなどで2005年10月のデータを挿入すると,RDA1にデータが格納されます。