Hitachi

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


4.6.8 抽出側Datareplicatorのリソースの設計

抽出側Datareplicatorのディスク資源とメモリ資源の設計方法について説明します。

〈この項の構成〉

(1) 抽出側Datareplicatorのディスク資源の設計

抽出側Datareplicatorのディスク資源の一覧を次の表に示します。

表4‒36 抽出側Datareplicatorのディスク資源の一覧

ファイル名

ファイル種別

必要・任意[個数]

容量の

説明先

ファイル満杯時の動作

R

C

定義ファイル

抽出システム定義ファイル

×

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

(a)

特にありません。

抽出環境定義ファイル

×

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

送信環境定義ファイル

×

必要

[送信先識別子ごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに送信先識別子ごとに1個)]

抽出定義ファイル

×

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

二重化定義ファイル

×

任意

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

抽出定義プリプロセスファイル

※2

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

(b)

特にありません。

抽出情報キューファイル※1※3

※2

必要

[抽出側システムごとに2〜16個(抽出側HiRDBがパラレルサーバの場合には,BESごとに2〜16個)]

(c)

スワップします。※1

ステータスファイル※3

抽出マスタステータスファイル

※2

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,MGRに1個)]

(d)

特にありません。

抽出サーバステータスファイル※1

※2

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,BESごとに1個)]

エラー情報ファイル

抽出マスタエラー情報ファイル

×

必要

[抽出側システムごとに2個(抽出側HiRDBがパラレルサーバの場合には,MGRに2個)]

(e)

スワップします。

抽出ノードマスタエラー情報ファイル

×

必要

[抽出側システムごと2個(抽出側HiRDBがパラレルサーバの場合には,BESが存在するサーバマシンごとに2個)]

稼働トレースファイル

抽出マスタトレースファイル※4

×

任意

[抽出側システムごとに2個]

(f)

スワップします。

抽出ノードマスタトレースファイル※4

×

任意

[抽出側システムごとに2個(抽出側HiRDBがパラレルサーバの場合には,BESごとに2個)]

データ連動用連絡ファイル※3

※2

必要

[抽出側システムごとに1個(抽出側HiRDBがパラレルサーバの場合には,BESごとに1個)]

(g)

特にありません。

コマンドログファイル

×

任意

[抽出側システムごとに2個]

(h)

スワップします。

(凡例)

BES:バックエンドサーバ(抽出対象のDBがないバックエンドサーバも含む)

R:UNIXの通常ファイル又はWindowsファイル

C:UNIXのキャラクタ型スペシャルファイル

○:作成できます。

×:作成できません。

注※1

スワップ先のファイルの送信が完了していない場合には,次の送信間隔まで待ちます。次の送信間隔時に送信が完了していれば,更新情報の抽出を開始します。送信間隔については,「4.6.4 送信方法の設計」を参照してください。

注※2

AIX版でキャラクタ型スペシャルファイルを使用する場合は,各ファイル容量の算出式に1,024バイト加算してください。また,抽出環境定義のqueuesizeオペランドには,算出した容量から1,024バイト減算した値を指定してください。

注※3

Datareplicatorファイルシステム領域を使用する場合は,「3.4.3(1) Datareplicatorファイルシステム領域を割り当てるときの規則」も参照してください。

注※4

稼働トレース収集方式を全プロセス一括収集方式とする場合のファイル名です。プロセス単位収集方式とする場合の稼働トレースファイル名については,「5.2 抽出システム定義」のint_trc_unitオペランドの説明を参照してください。

(a) 定義ファイルの容量

抽出側Datareplicatorの定義ファイル(抽出システム定義ファイル,抽出環境定義ファイル,送信環境定義ファイル,抽出定義ファイル)の容量は,指定した定義オペランドの内容によって異なります。

(b) 抽出定義プリプロセスファイルの容量

抽出定義プリプロセスファイルには,抽出定義で定義した情報が内部形式に変換された情報が格納されます。

抽出定義プリプロセスファイルの容量の見積もり式を次に示します。

  • UNIXの通常ファイル,又はWindowsファイルの場合

         164+(40+SV_INFO)×SV_NUM(単位:バイト)
  • UNIXのキャラクタ型スペシャルファイルの場合

         ↑164÷SCT_SIZE↑×SCT_SIZE+(40+SV_INFO)×SV_NUM(単位:バイト)
    • SV_INFO

      =48+(52+96×SCH_NUM+64×UPD_NUM+128×COL_NUM+64+112×TYPE_NUM+64×ATTR_NUM)+24+32×TBL_NUM+24×COL_NUM+SND_INFO+LOB_INFO+DEFAULT_INFO

    • SND_INFO

      =16+28×UPD_NUM+ΣSND(28×SND_UPD+32×SND_COND+272×SND_CNST)+16+40×SND_NUM+ΣSND(12×SND_UPD+32×SND_TBL+24×SND_COL)

    • DEFAULT_INFO

      =16+20×SV_DEF+SUM_DEF

    • LOB_INFO

      =16+4×LOB_AREA

上記の算出式で使っている変数の意味を次に示します。

  • ΣSND:全送信先数の総和

  • SV_NUM:バックエンドサーバ数

  • SV_INFO:バックエンドサーバ単位定義情報サイズ

  • SCH_NUM: すべての抽出対象スキーマ数

  • UPD_NUM:すべての更新情報名数

  • TBL_NUM:すべての抽出対象表数

  • COL_NUM:すべての抽出対象列数

  • TYPE_NUM:抽出対象になる抽象データ型の数。重複分は除きます。抽出対象の抽象データ型が継承している上位データ型と,抽象データ型の属性データタイプとして定義されている抽象データ型の数を含みます。

  • ATTR_NUM:TYPE_NUMに計上した抽象データ型の属性数の総和

  • SND_INFO:送信先情報サイズ

  • SND_NUM:送信先数

  • SND_UPD:送信先ごとの送信対象更新情報名数

  • SND_TBL:送信先ごとの送信対象表数

  • SND_COL:送信先ごとの送信対象列数

  • SCT_SIZE:セクタ長

  • SND_COND:送信先ごとの送信条件数

  • SND_CNST:送信先ごとの送信条件定数指定数

  • LOB_INFO:BLOB抽出情報サイズ

  • LOB_AREA:抽出対象BLOB列格納RDエリア数

  • SV_DEF:列追加時にデフォルト値を指定したサーバ内の列数

  • SUM_DEF:列追加時にデフォルト値を指定したサーバ内の列のDEF_LENの総和

  • DEF_LEN:((デフォルト値の長さ÷4)+1)×4

(c) 抽出情報キューファイルの容量

抽出情報キューファイルには,抽出した更新情報が蓄積されます。このため,抽出情報キューファイルの容量は,抽出する更新情報の量より多くする必要があります。

抽出情報キューファイルの容量の見積もり式(更新情報の算出式)を次に示します。ファイルの種別がOSの通常ファイルの場合でも,キャラクタ型スペシャルファイルの場合でも,抽出情報キューファイルの容量の見積もり式は同じです。

  • 更新情報の算出式

         EXT_ALL+QFL_NUM×SCT_SIZE+(EXT_ALL÷IO_SIZE)×12(単位:バイト)
    • EXT_ALL

      =Σins(INS_SIZE)+Σupd(UPD_SIZE)+Σdel(DEL_SIZE)+168×TRN_NUM+122×EVT_NUM

    • INS_SIZE

      =100+EXT_COL×12+ROW_SIZE

    • UPD_SIZE

      =100+EXT_COL×12+ROW_SIZE

    • DEL_SIZE

      =100+MAP_COL×12+Σmap(MAP_DATA)

    • ROW_SIZE

      =Σext(COL_DATA+LOB_DATA+VAR_DATA+ADT_DATA+MLT_DATA)

    • COL_DATA

      =↑列データ長÷4↑×4

    • LOB_DATA

      =56×↑(BLOBデータ長÷8192)↑+BLOBデータ長

    • VAR_DATA

      =48×↑(VARCHARデータ長÷PAGE_SIZE)↑+VARCHARデータ長

    • ADT_DATA

      =48×ADT_NUM+抽象データ型データ長

      抽象データ型データ長については,HiRDBの該当するマニュアルを参照してください

    • MLT_DATA

      =58×↑↑最大要素数÷8↑÷4↑×4+52×↑繰返し列データ長÷PAGE_SIZE↑+繰返し列データ長

      繰返し列データ長:

      ・固定長要素のとき:1+要素定義長×要素数

      ・可変長要素のとき:Σelm(5+VAR_DATA)

上記の算出式で使っている変数の意味を次に示します。

  • EXT_ALL:全更新情報サイズ

  • SCT_SIZE:セクタ長

  • IO_SIZE:抽出環境定義のquiosizeオペランドの設定値

  • INS_SIZE:単位挿入行サイズ

  • UPD_SIZE:単位更新行サイズ

  • DEL_SIZE:単位削除行サイズ

  • ROW_SIZE:1行当たりの更新データ長

  • QFL_NUM:抽出情報キューファイル総数

  • TRN_NUM:抽出対象のHiRDBに対する実行トランザクション数(抽出対象外の表に対するトランザクション,無効トランザクションRollbackを含みます)

  • EVT_NUM:イベント発行数

  • EXT_COL:行単位当たりの抽出対象列数

  • MAP_COL:行単位当たりのマッピングキー列数

  • LOB_DATA:BLOB列の更新データ長

  • VAR_DATA:256バイト以上のVARCHAR列(MVARCHAR,NVARCHARを含みます)の更新データ長

  • PAGE_SIZE:HiRDBのDBページサイズ

  • ADT_DATA:抽象データ型列の更新データ長

  • ADT_NUM:抽象データ型の数(このデータ型に関連する継承データ型,ネストデータ型の列を含みます)

  • MLT_DATA:繰返し列の更新データ長

  • COL_DATA:列単位の更新データ長(BLOB列,256バイト以上のVARCHAR列,抽象データ型列を除きます)

  • MAP_DATA:マッピングキーサイズ

  • Σins:全挿入行サイズの総和

  • Σupd:全更新行サイズの総和

  • Σdel:全削除行サイズの総和

  • Σmap:1行当たりのマッピングキーサイズの総和

  • Σext:1行当たりの抽出対象列データサイズの総和

  • Σelm:1行当たりの繰返し列要素データサイズの総和

  • 抽出情報キューファイルの容量見積もり時の考慮点

    抽出情報キューファイルの容量見積もり時には,次に示すことを考慮してください。

    • 抽出情報キューファイルのサイズは,反映側システムがダウンして復旧に時間が掛かる場合を想定し,3〜4日分の業務で発生する更新情報を格納できるサイズを用意してください。

    • 次のようなトランザクションが発生し,抽出情報キューファイルに空きがなくなった場合,抽出側,反映側のDBの内容を一致させた後,Datareplicatorの初期化が必要となります。

      ・バッチなどのトランザクションを実行し,一つのトランザクション内で発生した更新情報を抽出情報キューファイルに格納できない。

      ・抽出側DBを更新したトランザクションを決着しないで放置し,ほかの複数のトランザクションで発生したすべての更新情報が抽出情報キューファイルに格納できない。

    • 抽出処理の運用方式による容量の違い

      抽出処理の運用方式による容量見積もりの考慮点を次の表に示します。なお,抽出情報キューファイルは,1トランザクションの最大サイズ(最も大量に更新されるデータ量の総サイズ)以上の容量になるようにする必要があります。

      一つのトランザクションが抽出情報キューファイルに収まらない場合,抽出処理が進まなくなります。このため,HiRDBのシステムログファイルに未抽出のログが溜まり,システムログファイルが満杯になると,HiRDBがサーバダウンします。

      表4‒37 抽出処理の運用方式による容量見積もりの考慮点

      運用方式

      考慮点

      同時開始,抽出遅延開始

      • 抽出側Datareplicatorでの抽出の遅延を考慮して,トランザクションのピーク時に蓄積されるデータ量をディスク容量とします。

      • ファイルを2個用意すれば,運用は可能と考えられます。ただし,何らかの要因で送信処理だけを停止する可能性がある場合には,ファイルの数を増やしておくことをお勧めします。

      送信遅延開始

      • 送信が開始される前に蓄積されるデータ量と送信開始後も蓄積されるデータ量を考慮してディスク容量を算出します。

      • 同時開始と送信遅延開始を併用する場合には,ファイルのサイズを小さめにしてファイルの数を多くした方が,ファイルの満杯を回避しやすいこともあります。

(d) ステータスファイルの容量

抽出側Datareplicatorのステータスファイル(抽出マスタステータスファイル,抽出サーバステータスファイル)の容量の算出式を次に示します。

ステータスファイルには,抽出側Datareplicatorの初期化時に必要なサイズが割り当てられます。実際のレプリケーション運用中にファイル容量が増加し満杯となることはありません。

  • 抽出マスタステータスファイルの容量の算出式

    • UNIXの通常ファイル,又はWindowsファイルの場合

           (2+SND_NUM+ND_NUM×SV_NUM)×1024(単位:バイト)
    • UNIXのキャラクタ型スペシャルファイルで,セクタ長が1KBを超える場合

           (2+SND_NUM+ND_NUM×SV_NUM)×SCT_SIZE(単位:バイト)

      ND_NUM :全ノード数

      SV_NUM :全サーバ数

      SND_NUM:全送信先数

      SCT_SIZE :セクタ長

  • 抽出サーバステータスファイルの容量の算出式

    抽出側HiRDBがパラレルサーバの場合には,バックエンドサーバごとにステータスファイルの容量を見積もります。

    • UNIXの場合

           (22 + SND_NUM×2+UINF_NUM+SYS_NUM)×1024(単位:バイト)
    • Windowsの場合

           (22 + SND_NUM×2+UINF_NUM)×1024(単位:バイト)
    • UNIXのキャラクタ型スペシャルファイルで,セクタ長が1KBを超える場合

           (22+SND_NUM×2+UINF_NUM+SYS_NUM)×SCT_SIZE(単位:バイト)

      SND_NUM :送信先数

      UINF_NUM:抽出システム定義のextinfonumオペランドの設定値

      SCT_SIZE:セクタ長

      SYS_NUM:抽出環境定義に指定されたファイルシステム領域数

(e) エラー情報ファイルの容量

抽出側Datareplicatorのエラー情報ファイル(抽出マスタエラー情報ファイル,抽出ノードマスタエラー情報ファイル)の容量の既定値は16キロバイトです。長時間のエラー情報を残したいときには,抽出システム定義を変更してファイルの容量を拡張してください。

(f) 稼働トレースファイルの容量

稼働トレースファイルの容量は,抽出システム定義のint_trc_fileszオペランドで指定します。

(g) データ連動用連絡ファイルの容量

データ連動用連絡ファイルの容量の算出式を次に示します。抽出側HiRDBがパラレルサーバの場合には,バックエンドサーバごとにデータ連動用連絡ファイルの容量を見積もります。

  • HP-UXのキャラクタ型スペシャルファイルで,セクタ長が1KBを超える場合

         9×SCT_SIZE(単位:バイト)
  • 上記以外のキャラクタ型スペシャルファイル,UNIXの通常ファイル,又はWindowsファイルの場合

         9×1024(単位:バイト)

    SCT_SIZE:セクタ長

(h) コマンドログファイルの容量

128キロバイト固定です。

(i) その他のファイル容量

Windows版では,インストールディレクトリ下のtmpディレクトリ下に,ワークファイルを幾つか作成します。このため,ワークファイル分として4MBの容量を見積もってください。

(2) 抽出側Datareplicatorのメモリ資源の設計

抽出側Datareplicatorのメモリ資源の一覧を次の表に示します。

表4‒38 抽出側Datareplicatorのメモリ資源の一覧

メモリ資源

容量の説明先

抽出マスタプロセス

(a)

抽出ノードマスタプロセス

(b)

抽出プロセス

(c)

送信プロセス

(d)

送信マスタプロセス

(e)

稼働トレース収集プロセス

(f)

抽出処理監視プロセス

(g)

Datareplicatorエージェントプロセス

(h)

コマンド連絡用共用メモリサイズ

(i)

ステータス情報連絡用共用メモリサイズ

(j)

プロセス間連絡用共用メモリサイズ

(k)

抽出定義格納用共用メモリサイズ

(l)

メッセージ格納用共用メモリサイズ

(m)

トランザクション管理情報格納用共用メモリサイズ

(n)

セマフォ所要数

(o)

メッセージキュー所要数

(p)

更新情報編集バッファサイズ

(q)

表4‒39 抽出側Datareplicatorのメモリ見積もり式に使用する変数の一覧

変数名

変数の内容

ATTR_NUM

データ連動の対象となる全抽象データ型の属性数の総和

COL_LEN

抽出対象表の抽出対象列の合計長のうち,最大長。

ただし,以下に示す列の場合,以下の長さを適用し,合計長を算出する。

  • 繰返し列:1要素分の定義長

  • BLOB/BINARY列:

    35000バイト以下の場合:列定義長

    35000バイト超の場合 :35000バイト

  • ADTの場合:0

COL_NUM

全抽出対象表の列数の合計数

COM_FILE

データ連動用連絡ファイルサイズ(バイト)

DATA_NUM

送信間隔中に検知する最大更新情報件数。

バッチなど,処理時間が送信間隔より長いトランザクションが存在する場合,トランザクションが決着されるまで更新情報件数として蓄積する。

EMST_FILE

抽出マスタステータスファイルサイズ(バイト)

EST_FILE

抽出サーバステータスファイルサイズ(バイト)

EXT_FILE

抽出環境定義ファイルサイズ(バイト)

LOB_MAX

抽出対象のBLOB属性の列のうち,最大更新データ長(バイト)

(列定義長ではなく実データ長)

LOGIOSIZE

抽出環境定義logiosize指定値

(注意 (KB)のまま指定する)

MSV_NUM

<抽出元がHiRDBの場合>

抽出対象の各ノード内のバックエンドサーバ数のうち,最大数

<抽出元がHiRDB以外の場合>

ND_NUM

抽出対象の全ノード数

NSV_NUM

該当ノード内のサーバ数

PRP_FILE

抽出定義プリプロセスファイルサイズ(バイト)

QUE_NUM

抽出環境定義qufileXXXの指定数

QUIOSIZE

抽出環境定義quiosizeの指定値

(注意 (KB)のまま指定する)

RBUF_NUM

送信環境定義readbufnumの指定値

RDAMAX_ALL

連動対象表を格納しているRDエリアの最大ページ長(バイト)

RDAMAX_BIN

BINARYを格納しているRDエリアの最大ページ長(バイト)

RDAMAX_LOB

LOBを格納しているRDエリアの最大ページ長(バイト)

RDAMAX_REP

繰返し列を含む表を格納しているRDエリアの最大ページ長(バイト)

RDAMAX_VCHR

varchar型,もしくはnvarchar型,もしくはmvarchar型を含む表を格納しているRDエリアの最大ページ長(バイト)

SCH_NUM

抽出対象の認可識別子の合計数

SND_FILE

送信環境定義ファイルサイズ(バイト)

SND_NUM

抽出システム定義sendidxxの指定数

SV_NUM

<抽出元がHiRDBの場合>

抽出対象の全バックエンドサーバ数

<抽出元がHiRDB以外の場合>

SYS_FILE

抽出システム定義ファイルサイズ(バイト)

TBL_NUM

抽出対象表の合計数

TRN_NUM

送信間隔中に検知する最大トランザクション数。

バッチなど,処理時間が送信間隔より長いトランザクションが存在する場合,トランザクションが決着されるまでトランザクション数として蓄積する。

TYPE_NUM

全抽出対象表の抽象データ型の合計数

UBUF 

<抽出側DBがHiRDBの場合>
  • 抽出システム定義sendcontrolにnodemstを指定した場合

    送信環境定義editbufsize指定値

  • 抽出システム定義sendcontrolにsendmstを指定した場合

    抽出システム定義smt_editbufsize指定値

<抽出側がXDM/DSの場合>

XDM/DS起動定義REFLECTBUFF指定値。

詳細は,マニュアル「VOS3 XDMデータ連動機能 XDM/DS 解説・定義」を参照してください。

(注意 (KB)のまま指定する)

UINF_NUM

抽出システム定義extinfonumの指定値

(a) 抽出マスタプロセス

  • プロセス数

    抽出側HiRDBがシングルサーバのときは一つだけ必要です。抽出側HiRDBがパラレルサーバのときには,システムマネジャが存在するサーバマシンに一つ必要です。

  • プロシジャサイズ

    163840バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が動的メモリサイズとなります。

    (固定部)

     ( ↓ ND_NUM / 8 ↓ + 1 ) × 8800

    + ( ↓ SV_NUM / 16 ↓ + 1 ) × 17600

    + PRP_FILE × 5

    + MSV_NUM × ( 39196 + SND_NUM × 3968 + UINF_NUM × 1024 )

    + ( 76 + 32 × SND_NUM ) × MSV_NUM

    + ( 8 + SND_NUM + 18 × SV_NUM ) × 132

    + MAX ( SYS_FILE , EXT_FILE , SND_FILE )

    + 58658

    (可変部)

    • 反映トランザクション同期機能を使用する場合に加算する式

      48 × UINF_NUM

      + 10 × SV_NUM

      + 1024 × SV_NUM

      + 1494

    • ファイル二重化機能を使用する場合に加算する式

      1024

    変数の説明

    表4-39を参照してください。

(b) 抽出ノードマスタプロセス

  • プロセス数

    抽出側HiRDBがシングルサーバのときには一つだけ必要です。抽出側HiRDBがパラレルサーバのときには,各バックエンドサーバが存在するサーバマシンに一つずつ必要です。

  • プロシジャサイズ

    71680バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が動的メモリサイズとなります。

    (固定部)

     ( 100 × NSV_NUM + 744 × SND_NUM × NSV_NUM )

    + ( 32 × SND_NUM × NSV_NUM )

    + ( 2 × SND_NUM )

    + QUIOSIZE × 1024

    + ( 224 + 2040 + MSV_NUM × ( 39196 + SND_NUM × 3968 + UINF_NUM

    × 1024 ) + PRP_FILE )

    + ( MAX ( QUIOSIZE × 1024 + 516 , 66052 ) )

    + ( ↓ QUIOSIZE × 1024 / 1024 ↓ × 1024 )

    + ( MAX ( EST_FILE , COM_FILE ) - 1024 )

    + 545086

    (可変部)

    • ファイル二重化機能を使用する場合に加算する式

      ( QUIOSIZE × 1024 )

    変数の説明

    表4-39を参照してください。

(c) 抽出プロセス

  • プロセス数

    抽出側HiRDBがシングルサーバのときには一つだけ必要です。抽出側HiRDBがパラレルサーバのときには,各バックエンドサーバに一つずつ必要です。

  • プロシジャサイズ

    153600バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が動的メモリサイズとなります。

    (固定部)

     ( 1024 × ( UINF_NUM + 1 ) )

    + ( 2944 × SND_NUM )

    + LOGIOSIZE × 1024

    + ( ↑↑ SND_NUM / 8 ↑ / 4 ↑ × 4 )

    + ( 12 × QUE_NUM )

    + ( LOGIOSIZE × 2048 )

    + ( MAX ( ( 4184 + ↑↑ SND_NUM / 8 ↑ / 4 ↑ × 4

    + 15 × COL_NUM + COL_LEN + 4096 ) , ( LOGIOSIZE × 2048 ) ) )

    + ( MAX ( QUIOSIZE × 1024 + 516 , 66052 ) + ( QUIOSIZE × 1024 ) )

    + ( ↓ QUIOSIZE × 1024 / 1024 ↓ × 1024 )

    + ( MAX ( EST_FILE , COM_FILE ) - 1024 )

    + ( LOGIOSIZE × 1024 )

    + 744992

    (可変部)

    • ファイル二重化機能を使用する場合に加算する式

      QUIOSIZE × 1024

    変数の説明

    表4-39を参照してください。

(d) 送信プロセス

●抽出システム定義のsendcontrolオペランドにnodemstを指定した場合

  • プロセス数

    抽出側HiRDBがシングルサーバのときには,送信先の数だけ必要です。抽出側HiRDBがパラレルサーバのときには,各バックエンドサーバに,送信先の数だけ必要です。

  • プロシジャサイズ

    378880バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が

    動的メモリサイズとなります。

    (固定部)

     ( UBUF × 1024 - 120 )

    + ( 12 × QUE_NUM )

    + MAX ( 88 + ↑ SND_NUM / 32 ↑ × 4 , 1244 )

    + ( QUIOSIZE × 1024 )

    + ( ( TRN_NUM × 340 + DATA_NUM × 64 ) ) ・・・ 

    + ↑ ( SND_NUM / 32 ) ↑ × 4

    + UBUF × 1024

    + 32 × TBL_NUM

    + 96 × SCH_NUM + 64 × TBL_NUM + 128 × COL_NUM

    + MAX ( QUIOSIZE × 1024 + 516 , 66052 ) + QUIOSIZE × 1024

    + ( ↓ QUIOSIZE × 1024 / 1024 ↓ × 1024 ) × RBUF_NUM

    + ( EST_FILE - 1024 )

    + 18604

    (重要)

    注※が示す式については,見積もり量より多くのトランザクション,あるいは更新情報が発生すると,送信プロセスが自動的にメモリを拡張します。この拡張回数に制限はないため,抽出側DBに対してバッチ処理など1トランザクションで多量の更新を行なう場合,送信プロセスのサイズが肥大化する場合があります。バッチ処理をデータ連携する場合,定期的にCommit処理を行い,1トランザクションでの更新件数を数万件程度に抑えるようにしてください。

    また,AIXにおいて,見積もりサイズが256メガバイトを超える場合,環境変数LDR_CNTRLを設定してください。設定方法については,「2.4.1 抽出側Datareplicatorの環境変数」及び,「2.5.1 抽出側Datareplicatorの通信環境の設定」を参照してください。

    (可変部)

    • 抽出対象列に以下のデータ型が含まれる場合に加算する式

      ・varchar,nvarchar,mvarchar,blob,binary,繰り返し列

       分岐データ数 × 108

       ※ 分岐データの目安::可変長列の全データ長/RDエリアの平均値

      ・varchar,nvarchar,mvarchar,BLOB型を使用する場合は,更に以下の内容を加算してください。

       MAX ( RDAMAX_VCHR , 8192 )

      ・BLOB型を使用する場合は,更に以下の内容を加算してください。

       1024 × ↑ ↑ LOB_MAX / RDAMAX_LOB ↑ / 16 ↑

      ・繰り返し列を使用する場合は,更に以下の内容を加算してください。

       RDAMAX_REP × 2

      ・binary型を使用する場合は,更に以下の内容を加算してください。

       RDAMAX_BIN

      ・SGML型を使用する場合は,更に以下の内容を加算してください。

       64 + 112 × TYPE_NUM + 64 × ATTR_NUM

    • 反映トランザクション同期機能を使用する場合に加算する式

      32 + SV_NUM

    • 送信uocを使用する,もしくはSGML型を使用する場合に加算する式

      ( 68 × TBL_NUM + 16 × COL_NUM ) + ( 64 × COL_NUM )

    • HDE_BIN_COL_MAXLEN環境変数を指定する,もしくは送信UOCを使用する場合に加算する式

      20 × TBL_NUM + 8 × COL_NUM

    • 抽出定義にukeyを指定している場合に加算する式

      RDAMAX_ALL

    • 文字集合を使用する場合に加算する式

      32032

    • ファイルシステム領域を使用する,もしくはAIXでキャラクタ型スペャルファイルを使用する場合に加算する式

      4608

    • ファイル二重化機能を使用する場合に加算する式

      29736 + ( QUIOSIZE × 1024 )

    変数の説明

    表4-39を参照してください。

●抽出システム定義のsendcontrolオペランドにsendmstを指定した場合

  • プロセス数

    抽出システム定義のsendprocnumオペランドに指定した数だけ必要です。

  • プロシジャサイズ

    307200バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が動的メモリサイズとなります。

    (固定部)

     ( UBUF × 1024 - 120 )

    + ( 12 × QUE_NUM )

    + MAX ( 88 + ↑ SND_NUM / 32 ↑ × 4 , 1244 )

    + ( QUIOSIZE × 1024 )

    + UBUF × 1024

    + 40 + 32 × TBL_NUM

    + 52 + 96 × SCH_NUM + 64 × TBL_NUM + 128 × COL_NUM

    + 2428 + MAX ( QUIOSIZE × 1024 + 516 , 66052 )

    + QUIOSIZE × 1024 + 516

    + 11808 + ( ↓ QUIOSIZE × 1024 / 1024 ↓ × 1024 ) × RBUF_NUM

    + 18588

    (可変部)

    • 抽出対象列に以下のデータ型が含まれる場合に加算する式

      ・varchar,nvarchar,mvarchar,blob,binary,繰り返し列

       分岐データ数 × 108

       ※ 分岐データの目安::可変長列の全データ長/RDエリアの平均値

      ・varchar,nvarchar,mvarchar,BLOB型を使用する場合は,

       更に以下の内容を加算してください。

       MAX ( RDAMAX_VCHR , 8192 )

      ・BLOB型を使用する場合は,更に以下の内容を加算してください。

       1024 × ↑ ↑ LOB_MAX / RDAMAX_LOB ↑ / 16 ↑

      ・繰り返し列を使用する場合は,更に以下の内容を加算してください。

       RDAMAX_REP × 2

      ・binary型を使用する場合は,更に以下の内容を加算してください。

       RDAMAX_BIN

      ・SGML型を使用する場合は,更に以下の内容を加算してください。

       64 + 112 × TYPE_NUM + 64 × ATTR_NUM

    • 反映トランザクション同期機能を使用する場合に加算する式

      32 + SV_NUM

    • 送信uocを使用する,もしくはSGML型を使用する場合に加算する式

      ( 68 × TBL_NUM + 16 × COL_NUM ) + ( 64 × COL_NUM )

    • HDE_BIN_COL_MAXLEN環境変数を指定する,もしくは送信UOCを使用する場合に加算する式

      20 × TBL_NUM + 8 × COL_NUM

    • 抽出定義にukeyを指定している場合に加算する式

      RDAMAX_ALL

    • 文字集合を使用する場合に加算する式

      32032

    • ファイルシステム領域を使用する,もしくはAIXでキャラクタ型スペシャルファイルを使用する場合に加算する式

      4608

    • ファイル二重化機能を使用する場合に加算する式

      29736 + ( QUIOSIZE × 1024 )

    変数の説明

    表4-39を参照してください。

(e) 送信マスタプロセス

  • プロセス数

    抽出側HiRDBがシングルサーバのときには一つだけ必要です。抽出側HiRDBがパラレルサーバのときには,各バックエンドサーバに一つずつ必要です。

  • プロシジャサイズ

    256000バイト

  • 動的メモリサイズ(単位:バイト)

    下記の固定部分と条件に合致する可変部分で算出した値の合計値が動的メモリサイズとなります。

    (固定部)

     ( 12 × QUE_NUM )

    + MAX ( 88 + ↑ SND_NUM / 32 ↑ × 4 , 1244 )

    + ( QUIOSIZE × 1024 )

    + ( ( TRN_NUM × 340 + DATA_NUM × 64 ) × SND_NUM )

    + ↑ ( SND_NUM / 32 ) ↑ × 4

    + MAX ( QUIOSIZE × 1024 + 516 , 66052 ) + QUIOSIZE × 1024

    + ↓ QUIOSIZE × 1024 / 1024 ↓ × 1024

    + ( EST_FILE - 1024 )

    + 18512

    (可変部)

    • ファイルシステム領域を使用する,もしくはAIXでキャラクタ型スペシャルファイルを使用する場合に加算する式

      4608

    • ファイル二重化機能を使用する場合に加算する式

      11736 + ( QUIOSIZE × 1024 )

    変数の説明

    表4-39を参照してください。

(f) 稼働トレース収集プロセス

  • プロセス数

    「抽出マスタプロセス数+抽出ノードマスタプロセス数」だけ必要です。

  • プロシジャサイズ

    61440バイト

  • 動的メモリサイズ

    51200バイト

(g) 抽出処理監視プロセス

  • プロセス数

    抽出ノードマスタプロセス数だけ必要です。

  • プロシジャサイズ

    61440バイト

  • 動的メモリサイズ

    51200バイト

(h) Datareplicatorエージェントプロセス

  • プロセス数

    抽出システム又は反映側システムのどちらか一方で加算します。

  • プロシジャサイズ

    71680バイト

  • 動的メモリサイズ(単位:バイト)

    300000※+(ND_NUM+SV_NUM+SND_NUM+2)×64

    変数の説明

    表4-39を参照してください。

注※

抽出システム又は反映側システムのどちらか一方で加算します。

(i) コマンド連絡用共用メモリサイズの見積もり方法

コマンド連絡用共用メモリサイズの見積もり式を次に示します。コマンド連絡用共用メモリは,抽出マスタプロセスが稼働するサーバマシン上で使います。

     コマンド連絡用共用メモリサイズ = 1360(単位:バイト)

(j) ステータス情報連絡用共用メモリサイズの見積もり方法

ステータス情報連絡用共用メモリサイズの見積もり式を次に示します。ステータス情報連絡用共用メモリは,抽出マスタプロセスが稼働するサーバマシン上で使います。

     1360+36+64+ND_NUM+60+SV_NUM+164×SV_NUM×SND_NUM
      +8×ΣSND(NSND_NUM)×SV_NUM
      +(ND_NUM+SV_NUM+SV_NUM×SND_NUM)×4(単位:バイト)

ΣSND:全送信先の送付

ND_NUM :全ノード数

SV_NUM :全サーバ数

SND_NUM :全送信先数

NSND_NUM:送信先当たりの送信抑止受信元識別子数

(k) プロセス間連絡用共用メモリサイズの見積もり方法

プロセス間連絡用共用メモリサイズの見積もり式を次に示します。プロセス間連絡用共用メモリは,抽出ノードマスタプロセスが稼働するサーバマシン上で使います。

     1048+(2969+4×SND_NUM+16×UINF_NUM)×NSV_NUM
      +1600×NSV_NUM+SND_NUM(単位:バイト)

SND_NUM :全送信先数

NSV_NUM :該当ノード内サーバ数

UINF_NUM:抽出システム定義のextinfonumオペランドの設定値

(l) 抽出定義格納用共用メモリサイズの見積もり方法

抽出定義格納用共用メモリサイズの見積もり式を次に示します。抽出定義格納用共用メモリは,抽出ノードマスタプロセスが稼働するサーバマシン上で使います。

     164+(40+SV_INFO)×SV_NUM(単位:バイト)
  • SV_INFO

    =48+(52+96×SCH_NUM+64×UPD_NUM+128×COL_NUM+64+112×TYPE_NUM+64×ATTR_NUM)+24+32×TBL_NUM+24×COL_NUM+SND_INFO+LOB_INFO+DEFAULT_INFO

  • SND_INFO

    =16+28×UPD_NUM+40×SND_NUM+ΣSND(40×SND_UPD+20×SND_TBL+24×SND_COL)

  • DEFAULT_INFO

    =16+20×SV_DEF+SUM_DEF

  • LOB_INFO

    =16+4×LOB_AREA

  • ΣSND:全送信先数の総和

  • SV_NUM:該当ノード内のバックエンドサーバ数

  • SV_INFO:バックエンドサーバ単位定義情報サイズ

  • SCH_NUM:すべての抽出対象スキーマ数

  • UPD_NUM:すべての更新情報名数

  • TBL_NUM:すべての抽出対象表数

  • COL_NUM:すべての抽出対象列数

  • TYPE_NUM:抽出対象になる抽象データ型の数。重複分は除きます。抽出対象の抽象データ型が継承している上位データ型と抽象データ型の属性データタイプとして定義されている抽象データ型の数を含みます。

  • ATTR_NUM:TYPE_NUMに計上した抽象データ型の属性数の総和

  • SND_INFO:送信先情報サイズ

  • SND_NUM:送信先数

  • SND_UPD:送信先ごとの送信対象更新情報名数

  • SND_TBL:送信先ごとの送信対象表数

  • SND_COL:送信先ごとの送信対象列数

  • LOB_INFO:BLOB抽象情報サイズ

  • LOB_AREA:抽出対象BLOB列格納RDエリア数

  • SV_DEF:列追加時にデフォルト値を指定したサーバ内の列数

  • SUM_DEF:列追加時にデフォルト値を指定したサーバ内の列のDEF_LENの総和

  • DEF_LEN:((デフォルト値の長さ÷4)+1)×4

(m) メッセージ格納用共用メモリサイズの見積もり方法

メッセージ格納用共用メモリサイズの見積もり式を次に示します。メッセージ格納用共用メモリは,抽出ノードマスタプロセスが稼働するサーバマシン上で使います。

     メッセージ格納用共用メモリサイズ = 79200(単位:バイト)

(n) トランザクション管理情報格納用共用メモリサイズの見積もり方法

トランザクション管理情報格納用共用メモリサイズの見積もり式を次に示します。トランザクション管理情報格納用共用メモリは,抽出ノードマスタプロセスが稼働するサーバマシン上で使います。この共用メモリは,抽出システム定義のsendcontrolオペランドの指定がsendmstの場合にだけ必要になります。

     1048576×NSV_NUM(単位:バイト)

NSV_NUM:該当ノード内サーバ数

(o) セマフォ所要数の見積もり方法

抽出側Datareplicatorが使うセマフォ数の見積もり式を次に示します。セマフォは,抽出ノードマスタプロセスが稼働するサーバマシン上で使います。

  • 抽出システム定義にsendcontrol=nodemstを指定している場合

         1+(2+2×SND_NUM )×NSV_NUM
  • 抽出システム定義にsendcontrol=sendmstを指定している場合

         1+4×NSV_NUM

SND_NUM:全送信先数

NSV_NUM:該当ノード内サーバ数

上記の見積もり式で見積もった数のセマフォを抽出側システムで使えるように,必要に応じてカーネルパラメタのシステム全体のセマフォ最大数(SEMMNS)を変更してください。カーネルパラメタの更新方法については,該当するOSのマニュアルを参照してください。

(p) メッセージキュー所要数の見積もり方法

抽出マスタプロセスが稼働するサーバマシンに1個と,抽出ノードマスタプロセスが稼働するサーバマシンごとに各1個ずつ必要です。

(q) 更新情報編集バッファサイズの見積もり方法

更新情報編集バッファサイズの見積もり式を次に示します。抽出対象表ごとに更新情報編集バッファサイズを見積もり,最大値を「5.2 抽出システム定義」のsmt_editbufsizeオペランド,又は「5.4 送信環境定義」のeditbufsizeオペランドに指定してください。

  • 抽出定義にkey句を指定している場合

         244+16×列数+データ長(単位:バイト)
  • 抽出定義にukey句を指定している場合

         244+16×列数+データ長
          +(32+16×マッピングキーの列数+マッピングキーのデータ長の合計)
          (単位:バイト)
    注※

    連動対象の列の全データ長を合計した値です(単位:バイト)。