説明
TRANSMEMORY
では、コミットされていないトランザクション・データのキャッシュに使用可能なメモリーおよび一時ディスク領域量を制御します。Oracle GoldenGateはコミットされたトランザクションのみをターゲット・データベースに適用するため、コミットまたはロールバックのインジケータを受信するまでソース・システム上にトランザクション・データを保持するための十分なシステム・メモリーが必要です。
このパラメータは、z/OS上のDB2データベースとともに使用します。他のすべてのデータベースでは、CACHEMGR
パラメータを使用します。
TRANSMEMORYを使用したメモリー管理について
TRANSMEMORY
を使用して、Oracle GoldenGateのトランザクション用のキャッシュ・サイズを調整し、キャッシュ・サイズを超えるデータを保持するディスク上の一時的な場所を定義できます。合計キャッシュ・サイズ、トランザクション当たりのメモリー・サイズ、初期および増分メモリー割当て、ディスク記憶域領域を定義するためのオプションを使用できます。
トランザクションは、RAM
によって指定されたメモリー・プールに追加され、TRANSRAM
の値に達したときにディスクにフラッシュされます。初期メモリー量は、INITTRANSRAM
に基づいて各トランザクションに割り当てられ、必要に応じて、RAMINCREMENT
で指定された量ずつ、TRANSRAM
で設定された最大値まで増分されます。したがって、TRANSRAM
には(INITTRANSRAM + RAMINCREMENT
)の合計によって割り切れる値を指定する必要があります。
現在のTRANSMEMORY
設定を表示するには、GGSCIでVIEW REPORT
コマンドを使用します。
z/OSでの特別の考慮事項:
z/OSシステムでは、RAM
オプションはすべてのキャッシュされたトランザクションの仮想メモリー割当ての合計を制御するだけではなく、起動中に割り当てられるヒープ・メモリーのサイズも制御します。大きなデフォルト値によって、仮想メモリー・プール内の断片化を防止できますが、一部のインストールでは、特にアプリケーションが主に小さなトランザクションを生成する場合に、仮想メモリーが浪費されることがあります。また、大量のヒープを割り当てると、z/OSが割当てを完了するまで、Extractが起動時に反応しなくなることがあります。
z/OS上では、RAM
はExtractのパフォーマンスに影響を与えない、トランザクション・アクティビティの保持に必要な最小限の値に設定してください。低すぎる値に設定すると、Extractがディスクにトランザクション・データを書き込み、Extractの動作速度の低下やディスク領域消費の原因になることがあります。適切な値を決定するには、テストが必要になることがあります。
構文
TRANSMEMORY [RAM size] [TRANSRAM size] [TRANSALLSOURCES size] [INITTRANSRAM size] [RAMINCREMENT size] [DIRECTORY (directory, max_size, max_file_size)]
RAM
size
キャッシュされたすべてのトランザクションが使用する合計メモリー量を指定します。z/OSでは、この値はトランザクション当たりに割り当てる処理メモリー量でもあります。デフォルトは200MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
TRANSRAM
size
1つのトランザクションが使用する合計メモリー量を指定します。デフォルトは50MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
TRANSRAM
は、最適な成果を得るために、INITTRANSRAM
およびRAMINCREMENT
両方の値によって割り切れる値に設定する必要があります。
TRANSALLSOURCES
size
1つのトランザクションが利用するメモリーおよびディスク領域の量の合計を指定します。デフォルトは、使用可能なメモリー(メモリーおよびディスク)合計の50%です。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
INITTRANSRAM
size
(NonStopシステムのみ)トランザクションに割り当てる初期メモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
RAMINCREMENT
size
トランザクションがさらに多くのメモリーを必要とするときに増分するメモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
DIRECTORY (
directory, max_size, max_file_size
)
トランザクション・データのサイズがTRANSRAM
で指定した最大値を超えたときにこのデータが使用する一時ディスク記憶域を指定します。DIRECTORY
は、複数回指定できます。
max_size
で指定されたディレクトリ・サイズとmax_file_size
で指定されたファイル・サイズは、RAM
で指定したメモリー・サイズより大きい必要があります。
作成されるファイルの名前は、プロセス・タイプに応じて次のいずれかの形式になります。
group_trans_
00001.mem
はグループの名前をとり、オンライン・プロセスがファイルを作成したことを示します。
PID_trans_
00001.mem
はプロセスID (PID)の名前をとり、1回かぎりのプロセス(SPECIALRUN
パラメータで指定)がファイルを作成したことを示します。
group_thread#_
00001.mem
はグループ名とスレッド番号をとり、スレッド化されたExtractがファイルを作成したことを示します。
directory
ディレクトリの完全修飾パス名です。デフォルトは、Oracle GoldenGateディレクトリのdirtmp
サブディレクトリです。
max_size
ディレクトリ内のすべてのファイルの最大サイズです。デフォルトは2GBです。指定した領域が使用できない場合は、使用可能なディスク領域の75%が使用されます。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
max_file_size
ディレクトリ内の各ファイルの最大サイズです。デフォルトは200MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
例
次の例では、データをディスクにフラッシュする前に、各トランザクションに10回のメモリー追加を許可します(INITTRANSRAM
で指定された初期割当て1回と、RAMINCREMENT
で許可された9回)。
TRANSMEMORY DIRECTORY(c:\test\dirtmp, 3000000000, 300000000), RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K
次の例は前述の例と同じですが、2つ目のディレクトリも追加します。
TRANSMEMORY DIRECTORY(c:\test\dirtmp, 3000000000, 300000000), DIRECTORY (c:\test\dirtmp2, 1000000000, 5000000), RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K
注意: 前述の例では、スペースの制約によってパラメータ指定が複数行にわたっています。実際のパラメータ・ファイルでは、パラメータ指定が複数行にわたる場合は、各行の末尾にアンパサンド(&)を含める必要があります。 |