Hitachi

HiRDB データ連動機能 HiRDB Datareplicator Version 10


4.6.3 抽出方法の設計

抽出方法の設計手順について説明します。

〈この項の構成〉

(1) 抽出で使うバッファの設計

抽出側Datareplicatorは,システムログI/Oバッファを使って,システムログファイルからシステムログを読み込みます。また,読み込んだシステムログの中で,抽出定義に指定された抽出対象表の更新情報だけを抽出情報キューファイルに格納します。このとき,抽出用の抽出情報キューI/Oバッファを使います。

抽出方法の概要を次の図に示します。

図4‒31 抽出方法の概要

[図データ]

(a) システムログI/Oバッファ

抽出側Datareplicatorを起動すると,システムログI/Oバッファはローカルメモリ上に確保されます。ここでは,システムログI/Oバッファサイズの見積もり時の考慮点とサイズの指定について説明します。

システムログI/Oバッファサイズの見積もり時の考慮点
  • システムログI/Oバッファは,システムログファイルからシステムログを抽出するときに使います。このため,システムログI/Oバッファのサイズは小さいよりも大きい方が,システムログファイルから1回で抽出する更新情報の量がより多くなって,読み書き回数を少なくできます。ただし,抽出側Datareplicatorが異常終了した場合,サイズを大きくした分,再起動時に抽出し直す更新情報の量が多くなるため,再起動時によって多くの時間が掛かります。

  • 抽出側HiRDBのpd_log_max_data_sizeに指定した値以上にする必要があります。

  • 抽出側HiRDBがパラレルサーバの場合には,バックエンドサーバごとに見積もります。

システムログI/Oバッファのサイズの指定

システムログI/Oバッファのサイズは,抽出環境定義のlogiosizeオペランドで指定します。ここで指定したサイズで,システムログファイルから更新情報を抽出します。

(b) 抽出用の抽出情報キューI/Oバッファ

抽出側Datareplicatorを起動すると,抽出用の抽出情報キューI/Oバッフはローカルメモリ上に確保されます。ここでは,抽出用の抽出情報キューI/Oバッファサイズの見積もり時の考慮点とサイズの指定について説明します。

抽出用の抽出情報キューI/Oバッファサイズの見積もり時の考慮点
  • 抽出用の抽出情報キューI/Oバッファは,抽出した更新情報を抽出情報キューファイルに格納するときに使います。このため,抽出用の抽出情報キューI/Oバッファのサイズは,小さいよりも大きい方が,より多くの更新情報を1回で抽出情報キューファイルに格納でき,読み書きの回数を少なくできます。ただし,抽出側Datareplicatorが異常終了した場合,サイズを大きくした分,再起動時に抽出し直す更新情報の量が多くなるため,再起動時によって多くの時間が掛かります。

  • 「抽出環境定義のqueuesizeオペランドの指定値−1」の値以下にする必要があります。

  • 「(抽出環境定義のqueuesizeオペランドの指定値−1)÷指定値」で余りがない値にする必要があります。余りの生じる値を指定した場合,抽出情報キューファイルの余りのサイズ分の領域は使われません。

  • 抽出側HiRDBがパラレルサーバの場合には,バックエンドサーバごとに見積もります。

  • 抽出情報キューI/Oバッファは,抽出プロセスで一つ使います。

抽出用の抽出情報キューI/Oバッファのサイズの指定

抽出用の抽出情報キューI/Oバッファのサイズは,抽出環境定義のquiosizeオペランドで指定します。ここで指定したサイズで,抽出用の抽出情報キューI/Oバッファと送信用の抽出情報キューI/Oバッファが確保されます。送信用の抽出情報キューI/Oバッファについては,「4.6.4 送信方法の設計」を参照してください。

(2) 抽出処理のエラー監視間隔の設計

抽出側Datareplicatorでは,抽出マスタプロセスから抽出ノードマスタプロセス,抽出プロセス,及び送信プロセス(送信マスタプロセス)でエラーが発生しているかどうかを監視しています。エラーの監視間隔を短くすると,より早くエラーを検知できます。ただし,エラーの監視時間を短くし過ぎると,サーバと通信に負荷が掛かります。

エラー監視間隔は,抽出システム定義のwatchintvlオペランドで指定します。

(3) 抽出環境定義の単位の設計

抽出側HiRDBがパラレルサーバの場合,抽出側Datareplicatorはバックエンドサーバ単位に抽出を実行します。この場合,抽出側Datareplicatorの抽出環境定義では,すべてのバックエンドサーバに対しての共通の環境と,特定のバックエンドサーバに対しての環境を分けて定義できます。

共通の環境については,抽出環境定義のcommondefの下で定義し,特定の環境については,besdef(サーバ名)の下で定義します。同一のオペランドをcommondefとbesdefとで指定した場合,besdefに指定したサーバに対しては,besdefでの指定を優先します。