説明
CACHEMGR
パラメータでは、コミットされていないトランザクション・データのキャッシュに使用可能な仮想メモリーおよび一時ディスク領域の量を制御します。
注意: このパラメータをデフォルト・キャッシュ設定から変更する前に、Oracleサポートに連絡してください。Oracle GoldenGateのキャッシュ・マネージャは、内部で自動構成および自動調整を行うため、ほとんどの本番環境ではこのパラメータを変更する必要はありません。ただし、ページ・ファイルのディレクトリは、Oracleサポートの支援なしで指定できます。 |
メモリー管理について
注意: ここにはできるかぎり正確に説明していますが、メモリー管理コンポーネントの基本設計は、製品の継続的な改善のために変更されることがあります。 |
Oracle GoldenGateはコミットされたトランザクションのみをレプリケートするため、トランザクションのコミットまたはロールバックを受信するまで、キャッシュと呼ばれる管理仮想メモリー・プールに各トランザクションの操作を保持します。1つのグローバル・キャッシュが1つのExtractまたはReplicatプロセスの共有リソースとして機能します。このグローバル・キャッシュから、次の仮想メモリー・サブプールが割り当てられます。
大半のトランザクション行データ用としてExtractログ・リーダー・スレッドまたはReplicatトレイル・リーダー・スレッド当たり1つのサブプール
BLOBデータおよびその他の大きなアイテム用として1つのサブプール
各サブプール内に、グローバル・キャッシュから個別のバッファが割り当てられます。各バッファには、Oracle GoldenGateが処理中の1つのトランザクションに関連する情報が保持されます。
Oracle GoldenGateキャッシュ・マネージャは、オペレーティング・システムのメモリー管理機能を利用して、Oracle GoldenGateプロセスを持続的かつ効率的に機能させます。キャッシュ内では、最新の仮想メモリー技法を活用して次のことを行います。
アクティブなバッファの割当ておよび管理を効率的に行う。
可能な場合はディスクにページングせずに古いバッファを再利用する。
必要な場合は使用頻度が少ない情報をディスクにページングする。
Oracle GoldenGateプロセスによって使用される物理メモリーの実際の量は、Oracle GoldenGateプログラムではなく、オペレーティング・システムによって制御されます。
キャッシュ・マネージャは、グローバル・キャッシュ・サイズの弱い制限の範囲でOracle GoldenGateプロセスを機能させ、オンデマンドで仮想メモリーのみを割り当てます。(キャッシュ・マネージャは、制御されない物理メモリーを割り当てません。)キャッシュ・サイズ増加のためのシステム・コールは、最後の手段としてのみ使用され、使用された場合は、その後必ず仮想メモリーが解放されてシステムに戻されます。
システムは、今後実行する各Oracle GoldenGate ExtractおよびReplicatプロセスのために、十分なスワップ領域を確保している必要があります。必要なスワップ領域を特定するには、次の手順を実行します。
1つのExtractプロセスおよび1つのReplicatプロセスを起動します。
GGSCIを実行します。
実行中の各プロセスのレポート・ファイルを表示し、PROCESS VM AVAIL FROM OS (min)
行を探します。
必要な場合、各値を次の整数(GB)に切り上げます。たとえば、1.76GBの場合は2GBに切り上げます。
繰り上げられたExtractの値に、Extractプロセスの数を掛けます。
繰り上げられたReplicatの値に、Replicatプロセスの数を掛けます。
2つの結果に、システム上のOracle GoldenGateプロセスおよびその他のプロセスで必要とする追加スワップ領域を足します。
(PROCESS_VM x number_Extracts) + (PROCESS_VM x number_Replicats) + (swap_for_other_processes) = max_swap_space_on_system
この合計が、これらのプロセスに必要な最大スワップ領域になります。すべてのOracle GoldenGateプロセスが使用する実際の物理メモリー量は、Oracle GoldenGateプロセスではなく、オペレーティング・システムによって制御されます。グローバル・キャッシュ・サイズは、CACHEMGR
のCACHESIZE
オプションで制御します。
注意: キャッシュ・マネージャは、Oracle GoldenGateによって、BLOB用サブプールやその他のトランザクション・データ用のサブプールの制御以外の目的でも内部で使用されます。統計を表示するときに、このような追加メモリー・プールの情報が表示されることがあります。 |
CACHEMGRを調整する時期
メモリー・マネージャが生成する統計は、SEND EXTRACT
またはSEND REPLICAT
コマンドをCACHEMANAGER
オプションとともに使用すると表示できます。この統計は、メモリー・プールのサイズ、ページングの頻度、トランザクションのサイズ、システム・プロファイルを作成するその他の情報を表示します。
このプロファイルを確認し、パフォーマンスの問題がファイル・キャッシングに関連していると思われるときは、メモリー・キャッシュの調整が必要になることがあります。その場合は、まずCACHESIZE
パラメータを変更します。生成されているトランザクションのサイズとタイプに応じて、より大きなまたは小さなキャッシュ・サイズを使用する必要があります。
ただし、オペレーティング・システムの制約によって、CACHEMGR
パラメータでのコンポーネント変更の効果が制限されることがあります。特に、オペレーティング・システムでプロセス当たりの仮想メモリーの制限が低い値に設定されている場合は、CACHEMGR
の構成にかかわらず、多くのファイル・キャッシングを強制されます。
詳細は、「SEND EXTRACT」および「SEND REPLICAT」を参照してください。
レポート・ファイルの基本統計の表示
キャッシュ・マネージャは、自身の初期化を完了すると、プロセス・レポート・ファイルに次のような統計を書き込みます。
CACHEMGR virtual memory values (may have been adjusted) CACHESIZE: 32G CACHEPAGEOUTSIZE (normal): 8M PROCESS VM AVAIL FROM OS (min): 63.97G CACHESIZEMAX (strict force to disk): 48G
条件:
CACHESIZE
は、プロセスがトランザクション・データのキャッシュに使用できる仮想メモリーの弱い制限を示します。これは、PROCESS VM AVAIL FROM OS (min)
の値に基づいて動的に決定されます。CACHEMGR
のCACHESIZE
オプションを使用して制御できます。
PROCESS VM AVAIL FROM OS (min)
は、このプロセスが使用可能と判断したおおよその仮想メモリー量を示します。内部的な理由で、この量はオペレーティング・システムによって使用可能と表示される量より少ない場合があります。
CACHESIZEMAX (strict force to disk)
は、PROCESS VM AVAIL FROM OS
およびCACHESIZE
から導出されます。これは、キャッシュ・マネージャがディスクへのページング候補のトランザクションを決定する手段と解釈できます。通常は、現在仮想メモリー・バッファが特定の内部値を超えているトランザクションのみがページングの候補です。メモリー・リクエストの合計がCACHESIZE
の値を超えると、キャッシュ・マネージャはディスクに書き込むトランザクションを探し、ページング候補のリストからトランザクションを選択します。ページング候補のトランザクションがすでにディスクにページングされていて、使用中の仮想メモリーがCACHESIZEMAX (strict force to disk)
を超えている場合は、追加のバッファを必要とするすべてのトランザクションをページング候補にできます。このような方法で、常に仮想メモリーの可用性が確保されています。
ページング・ディレクトリの特定
デフォルトでは、Oracle GoldenGateによってOracle GoldenGateインストール・ディレクトリのdirtmp
サブディレクトリにディスクにスワップされるデータが保持されます。キャッシュ・マネージャは、ファイル・システムのすべての空き容量を使用可能とみなします。トランザクション・ボリュームとトランザクション・サイズが大きい場合、このディレクトリはすぐに一杯になります。I/Oの競合とディスクに関連するExtractの障害が起こらないようにするには、ディスクをこのディレクトリ専用にします。CACHEMGR
パラメータのCACHEDIRECTORY
オプションを使用して、このディレクトリに名前とサイズを割り当てることができます。CACHEMGR
のCACHESIZE
オプションにより、トランザクション・データのキャッシュに使用できる仮想メモリー量(キャッシュ・サイズ)の弱い制限が設定されます。
CACHEMGR使用のガイドライン
このパラメータは、Oracle GoldenGateでサポートされているすべてのデータベースに有効です。
少なくとも1つの引数を指定する必要があります。CACHEMGR
単独では無効です。
パラメータ・オプションは、任意の順番で指定できます。
1つのパラメータ・ファイルでは、1つのCACHEMGR
パラメータのみの使用が許可されています。
(ページ・ファイルのディレクトリを指定する以外に)このパラメータを正しく使用するためには、システムのプロファイル、およびアプリケーションから伝播されるトランザクションの種類を理解する必要があります。キャッシュ・マネージャは自己調整を行うため、標準の環境ではこのパラメータを変更する必要はありません。調整が必要と思われる場合は、http://support.oracle.comでOracleサービス・リクエストをオープンしてください。
構文
CACHEMGR { [, CACHESIZE size] [, CACHEDIRECTORY path [size] [, ...]] CACHEMGR CACHEFSOPTION { MS_SYNC | MS_ASYNC } | }
CACHESIZE
size
トランザクション・データのキャッシングにできる仮想メモリー量(キャッシュ・サイズ)の弱い制限を指定します。64ビットシステムでは、デフォルトは64GBです。32ビットシステムでは、キャッシュ・サイズはキャッシュ・マネージャによって動的に決定されます。
メモリーはオンデマンドで割り当てられます。デフォルトでは、キャッシュ・マネージャは、オペレーティング・システムから提供される使用可能な仮想メモリー量を動的に判断し、適切なキャッシュ・サイズを決定します。使用可能な仮想メモリーは、レポート・ファイルのPROCESS VM AVAIL FROM OS
値にレポートされます。CACHESIZE
値は、プロセスが使用可能な仮想メモリー量よりも大きい、またはこの量に非常に近い場合、低減されます。ただし、大規模なアドレス領域を持つシステムでは、内部制限に到達した後にキャッシュ・マネージャが使用可能なメモリーを判断することはありません。
CACHESIZE
値は、PROCESS VM AVAIL FROM OS
自体が2の2乗値の場合を除き(そのケースではその値の半分に値になります)、その値から切り捨てられて常に2の累乗値になります。指定されたサイズがデータによって消費されると、メモリー・マネージャはシステムに新しいメモリーをリクエストする前に、ディスクにデータをページングするか、古いバッファを再利用してメモリーの解放を試みます。
あるトランザクションが必要とするキャッシュ仮想メモリーが初期バッファ割当てを上回ると、このトランザクションの現在のキャッシュ・データのサイズ、新しいデータに必要なサイズ、すべてのトランザクションで使用されている仮想メモリー量などの要因に基づいて、キャッシュ・マネージャによって割り当てられる追加のキャッシュ・メモリー量が動的に決定されます。
CACHEDIRECTORY
path [size]
Oracle GoldenGateが必要なときに一時的にトランザクション・データをディスクに書き込むディレクトリの名前を指定します。このパラメータを指定しない場合のデフォルトは、Oracle GoldenGateインストール・ディレクトリのdirtmp
サブディレクトリです。一時ファイル用のディレクトリは、Oracleデータベース・ファイル・システムには配置できますが、AIXなどのmmap()
システム・コールをサポートしていないダイレクトI/OまたはコンカレントI/Oがマウントされたファイル・システムには配置できません。
path
は、完全修飾ディレクトリ名です。
size
には、指定したディレクトリに割当て可能な最大ディスク領域量を指定します。上限は、最大ファイル・サイズやファイル数など、ファイル・システムによって決められている値です。最小サイズは、強制的に2GBになります。デフォルト値はありません。リソースの制限によって、Oracle GoldenGateが使用するスワップ領域を制限する必要がないかぎり、このオプションは使用しないでください。
ディレクトリごとにCACHEDIRECTORY
句を使用すると、複数のディレクトリを指定できます。ディレクトリの最大数は100です。
この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。
GB | MB | KB | G | M | K | gb | mb | kb | g | m | k
CACHEMGR CACHEFSOPTION {MS_SYNC | MS_ASYNC}
Oracle GoldenGateメモリー・キャッシュ・マネージャでマップ済データの同期または非同期書込みを実行します。