ここでは、Oracle抽出レプリケーションで使用するトランザクションログデータベースと差分ログファイルの容量の見積り方法について説明します。
トランザクションログデータベースの容量見積り
差分ログファイルの容量見積り
一括差分複写用の作業域の容量見積り
トランザクションログデータベースのサイズは、以下の見積り式に基づいて決定してください。なお、ここで算出される値は、理想的な状態でデータが格納された場合の理論値です。実際には削除などの処理により理想的な状態で格納されません。この計算値を最低限必要な値と考えて、10%~30%大きめに見積もってください。
見積り式
トランザクションログデータベースの容量見積り = Bn × Bs
Bn:必要なブロック数
Bs:ブロックサイズ(特に設定がない場合は2048byte)
必要なブロック数(Bn) = Rn ÷ Bm
Rn:更新レコード数
Bm:ブロックあたりの平均格納レコード数
更新レコード数(Rn) = ( Rm1 × Sn1 )+ ( Rm2 × Sn2 )+ … ( Rmi × Sni )
Rm1、Rm2…Rmi:レプリケーション対象表ごとの差分ログ収集スケジュールの間に更新されるレコード数。iはレプリケーション対象表の数
Sn1、Sn2…Sni:レプリケーション対象表ごとの分割数
iの値:レプリケーション対象表
分割数(Sn) = Tl ÷ 4000
分割数(Sn)は、小数点を切り上げて整数にしてください。
Tl:レプリケーション対象表を更新した場合に、トランザクションログデータベースに格納される差分ログのレコード長
Tlは以下の方法で見積りを実施してください。
文字型カラム属性:指定したバイト数
NUMBER型:指定した精度 + 3
DATE型:19
FLOAT型:23
注)分割数を計算した結果が1になり、かつカラム数が800を超える場合は、分割数を2に補正する必要があります。
ブロックあたりの平均格納レコード数(Bm) = Bl ÷ Rl
Bl:ブロック内の利用可能領域サイズ
Rl:平均レコード長
ブロック内の利用可能領域サイズ(Bl) = ( Bs - Bhl ) × Pc - KDBT
Bs:ブロックサイズ(特に設定がない場合は2048byte)
Bhl:ブロックヘッダ長
BhlはV$TYPEを検索した値を計算することにより求めることができます。以下の値の場合には86byteで見積りを実施してください。詳細はOracleのマニュアルを参照してください。
UB1 1 UB4 4 SB2 2 KCBH 20 KTBIT 24 KTBBH 48 KDBH 14 KDBT 4
Pc:PCTFREE以外の領域の割合。
PCTFREEはトランザクションログデータベース作成時に特に設定しない場合、10%に設定されます。そのために0.9で見積もりを実施してください。
KDBT:上記のBhlの表を参照してください。
平均レコード長(Rl) = 58 + TD1 + TD2
TD1:差分データの長さ格納部
TD2:差分データのデータ格納部
差分データの長さ格納部(TD1) = ( Cn × 4 + Cn - 1) + ( Ur ×( Cn × 4 + Cn - 1) )
Cn:レプリケーション対象表の平均カラム数
Ur:UPDATE文固有の差分ログ量
UPDATE文固有の差分ログ量は全更新レコードのうちUPDATE文で更新する割合です。
差分ログのデータ格納部(TD2) = ( Tl2 + Cn - 1 ) + ( Ur ×( Tl2 + Cn - 1 ) )
Tl2:全対象表のTlを平均した値で見積りを実施してください。
Cn:レプリケーション対象表の平均カラム数
Ur:UPDATE文固有の差分ログ量
UPDATE文固有の差分ログ量は全更新レコードのうちUPDATE文で更新する割合です。
差分ログファイルのサイズは、以下の見積り式に基づいて決定してください。
見積り式
差分ログファイルのサイズ = L × H
L:単位時間当たりの平均ログ量
H:一括差分複写業務のスケジュール間隔の時間
単位時間当たりの平均ログ量(L) = R × ( 1 + U ) × 更新件数
R:差分ログのレコード長(単位はバイト)
U:結合キーの値を更新するSQL文の比率 (0~1)
差分ログのレコード長(R) = 2 + ( N1 + D1 ) + ( N2 + D2 ) + … ( Ni + Di )
N1、N2…Ni:ナル表示域の長さ
抽出する項目にナル表示域を指定した場合は2となります。指定しない場合は0となります。(単位はバイト)
D1、D2…Di:抽出する各項目の表示長
可変長の場合は、最大長で見積りを行ってください。(単位はバイト)
注意
差分ログファイルは、自動的に容量が拡張されます。拡張された領域は、抽出処理によって差分データが抽出されるときに自動的に返却されます。拡張サイズを以下に示します。
初期量 | 拡張サイズ |
---|---|
20メガバイト未満 | 初期量の25% |
20メガバイト以上、2ギガバイト未満 | 5メガバイト |
項目の表示長については、“3.1.1.3 Oracleのサポート範囲”および“Oracleのマニュアル(Pro*C)”を参照してください。
一括差分複写用の作業域は、トランザクションログデータベースから差分データを取得し、差分ログファイルへ書き込む処理で使用します。指定方法は動作環境ファイルのWORKPATHで指定します。
一括差分複写用の作業域の容量見積りは、以下の方法に基づいて決定してください。
見積り方法:CIRCULATING_TIMEに指定した時間当たりの最大ログ量
注意
CIRCULATING_TIMEは動作環境ファイルで指定します。“導入運用ガイド”の“動作環境ファイルの作成”を参照してください。