1.4.4 BLOB型とBINARY型を使った表のデータ連動
Datareplicatorでは,BLOB型とBINARY型をデータ連動できますが,規則があります。BLOB型とBINARY型の規則について説明します。
(1) BLOB型の規則
BLOB型の列をデータ連動する場合の規則を次に示します。
-
BLOB型の列をデータ連動する場合は,HiRDBの表定義のRECOVERYオペランドにALLを指定してください。HiRDBの表定義については,マニュアル「HiRDB SQLリファレンス」を参照してください。
-
BLOB型の列の定義長では,Datareplicatorは,BLOBデータ実長ではなくBLOB列定義長に従ってバッファなどを割り当てるため,BLOB列定義長はできるだけ実データ長に近い値で定義してください。
-
定義長が2GB以上又は表作成時に定義長指定を省略(HiRDBが定義長として2GBを仮定)したBLOB型の列を抽出対象とすると,定義エラーになります。性能とメモリ所要量を考慮して,定義長が数MBまでのBLOB型の列をデータ連動対象とすることをお勧めします。
ただし,定義長は2GB以上でも実際に扱うデータは小さいBLOB型の列の場合,抽出側Datareplicatorの環境変数HDE_BIN_COL_MAXLENを指定することで,表を再定義することなくBLOB型の列をデータ連動できるようになります。環境変数HDE_BIN_COL_MAXLENの詳細については,次の個所を参照してください。
-
BLOB型の抽出列はマッピングキーにできません。
-
HiRDBのユティリティの処理対象に抽出対象のBLOB型の列が含まれている場合,更新ログを出力する更新であっても,BLOB型の列に対するユティリティの更新内容をDatareplicatorは認識しないため,データ連動の対象にはなりません。反映側DBには,BLOB型の列に対するユティリティの実行結果は反映されないので,注意してください。
-
反映側DatareplicatorでのBLOB型データの未反映情報には,次に示すフォーマットで更新データが出力されます。
*BLOB(データ長)*
(2) BINARY型の規則
BINARY型の列をデータ連動する場合の規則を次に示します。
-
性能とメモリ所要量を考慮して,定義長が10MB以下のBINARY型の列をデータ連動対象とすることをお勧めします。
-
BINARY型の抽出列はマッピングキーにできません。
-
反映側DatareplicatorでのBINARY型データの未反映情報には,次に示すフォーマットで更新データが出力されます。
*BINARY(データ長)*
(3) BLOB型とBINARY型の後方削除更新について
HiRDBのシステム共通定義のpd_rpl_func_controlオペランドにBACKWARD_CUTOFF_UPDATEを指定すると,BLOB型とBINARY型を後方削除更新できます。BLOB型とBINARY型の後方削除更新の詳細については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
なお,BLOB型又はBINARY型の後方削除更新のデータ連動には,次に示す制限があります。
-
マージ表への反映はできない
-
時系列情報表への反映はできない
-
列データ編集UOCを使用できない
-
送信データUOCを使用できない
- pd_rpl_func_controlオペランドの指定に関する注意
-
BLOB型又はBINARY型を後方削除更新しない場合は,HiRDBのシステム共通定義のpd_rpl_func_controlオペランドにBACKWARD_CUTOFF_UPDATEを指定しないでください。
また,pd_rpl_func_controlオペランドのBACKWARD_CUTOFF_UPDATEの指定を変更する場合は,変更する前にすべての更新ログが反映し終わっているかどうかを確認してください。反映されていない更新ログがある状態でpd_rpl_func_controlオペランドを変更すると,抽出側DBと反映側DBでSQLの実行数が一致しないなどの問題が発生します。