4.3.1 抽出側DBの条件
HiRDBのデータベースからデータを抽出する場合の条件について説明します。
メインフレーム側DB(XDM/SD E2,XDM/RD E2,ADM,PDMII E2,TMS-4V/SP)からデータを抽出する場合の条件については,マニュアル「VOS3 XDMデータ連動機能 XDM/DS 解説・定義」を参照してください。SAMファイルを使うメインフレーム側DB(PDMII E2,RDB1 E2)からデータを抽出する場合の条件については,各製品の該当するマニュアルを参照してください。
(1) 抽出対象の表
抽出対象の表については,「1.3 データ連動で使える表」を参照してください。
(2) 抽出対象のデータ型
抽出対象のデータ型については,「1.4.1 Datareplicatorで使えるデータ型」を参照してください。
抽出側DBと反映側DBとのデータ型の対応については,「4.3.4 データ型の対応の設計」を参照してください。
(3) 抽出対象のSQL
抽出対象のSQLについては,「1.5 データ連動できるSQL」を参照してください。
(4) 抽出対象のUAP
抽出側Datareplicatorは,システムログ中のデータベースの更新ログを基にデータ連動を実行します。このため,データベースの更新ログを出力するUAPでの,データ連動対象DBの更新は,すべて抽出対象になります。
データ連動の実行時,データ連動対象DBを更新するUAPを実行する場合には,注意が必要な環境変数とSQL文があります。UAP実行時の注意を次の表に示します。
項目 |
注意 |
---|---|
環境変数でのログレスモードの指定 |
HiRDBのクライアント環境定義の環境変数PDDBLOGに,NOを指定して実行しないでください。 |
SQL文での定義の変更 |
データ連動の実行中に,データ連動対象DBに対して,次のSQL文を発行しないでください。 ・PURGE TABLE(複数のBESにわたる分割表に対する発行※) ・ALTER TABLE ・DROP TABLE データ連動の実行時の定義変更については,「6.5.6 抽出側HiRDBの運用手順」を参照してください。 |
- 注※
-
抽出側Datareplicatorが複数のBESにわたる分割表に対するPURGE TABLEを検知すると,エラー情報ファイルに警告メッセージを出力して,該当する更新情報を抽出しません。このような状態になったときには,送信環境定義のprg_eventnoオペランドの指定で,送信処理を停止したり,反映側Datareplicatorに対してイベントを発行したりできます。
(5) 抽出対象のユティリティ
HiRDB Datareplicatorが抽出対象として対応しているのはデータベース作成ユティリティ(pdload)だけです。ただし,オプションを正しく指定しないと抽出−反映間の不整合を引き起こす可能性があります。BLOB型のデータを抽出できないという制約もあります。
また,その他のユティリティのうち更新ログを出力するものについてはデータ連動中に実行すると抽出−反映間で不整合を引き起こすため,オプション指定により抽出対象外として実行する必要があります。
ユティリティ名 |
注意 |
|
---|---|---|
データ連動の実行中に,データ連動対象DBに対して,次のSQL文を発行しないでください。
データ連動の実行時の定義変更については,「6.5.6 抽出側HiRDBの運用手順」を参照してください。 |
||
なお,pdloadをデータ連携する場合,「4.7.3(9)(a) 排他資源数」の章も参照してください。 |
||
データ連動の実行中は,抽出対象表が格納してあるRDエリアを再初期化しないでください。 |
||
データ連動の実行中は,ログレスモード又は更新前ログ取得モードで実行してください(-lオプションにn又はpを指定してください)。 ログ取得モードで実行すると,再編成したデータベースの一部の更新情報だけがシステムログに出力されるので,抽出側DBと反映側DBとの間で不整合が発生します。 |
||
データベースのバックアップとバックアップ取得以降のログを基にして回復してください。それ以外の方法で回復すると,抽出側DBと反映側DBとの間で不整合が発生します。 |
||
データ連動対象表に対してリバランスユティリティを実行する場合,表定義の変更(RDエリアの追加)をする必要があります。 表定義と抽出定義変更時の運用手順については,「6.5.6(3) 抽出側の表定義と抽出定義変更時の運用手順」を参照してください。 なお,リバランスユティリティによるDB更新は,抽出対象外となります。 |
- 注
-
ユティリティの処理対象にBLOB列が含まれている場合は,ユティリティが実行したDB更新を抽出側Datareplicatorが無視するため,反映側DBにはユティリティが更新した行は反映されません。
(6) 抽出対象の更新情報長
抽出側Datareplicatorが抽出対象にできる更新情報の最大長(抽出対象列の定義長の総和)は256MBです。更新情報長が256MBより大きい場合は抽出定義プリプロセスコマンドの実行でエラーになります。
ただし,SGMLTEXT型及びXML型の列はチェック対象外のため,SGMLTEXT型及びXML型を抽出対象とする場合は,それぞれの型で扱うデータ長を考慮した上で256MB以内となるように抽出対象列を定義してください。