プライマリ・コンテンツに移動
Oracle® GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.1.2)
E49845-08
  目次へ移動
目次

前
 
次
 

CACHEMGR

適用対象

ExtractおよびReplicat(z/OS上のDB2を除くすべてのデータベース)

説明

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. 1つのExtractプロセスおよび1つのReplicatプロセスを起動します。

  2. GGSCIを実行します。

  3. 実行中の各プロセスのレポート・ファイルを表示し、PROCESS VM AVAIL FROM OS (min)行を探します。

  4. 必要な場合、各値を次の整数(GB)に切り上げます。たとえば、1.76GBの場合は2GBに切り上げます。

  5. 繰り上げられたExtractの値に、Extractプロセスの数を掛けます。

  6. 繰り上げられたReplicatの値に、Replicatプロセスの数を掛けます。

  7. 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プロセスではなく、オペレーティング・システムによって制御されます。グローバル・キャッシュ・サイズは、CACHEMGRCACHESIZEオプションで制御します。


注意:

キャッシュ・マネージャは、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)の値に基づいて動的に決定されます。CACHEMGRCACHESIZEオプションを使用して制御できます。

  • 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オプションを使用して、このディレクトリに名前とサイズを割り当てることができます。CACHEMGRCACHESIZEオプションにより、トランザクション・データのキャッシュに使用できる仮想メモリー量(キャッシュ・サイズ)の弱い制限が設定されます。

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メモリー・キャッシュ・マネージャでマップ済データの同期または非同期書込みを実行します。

CACHEMGR CACHESIZE 500MB, CACHEDIRECTORY /ggs/temp 2GB, CACHEDIRECTORY /ggs2/temp 2GB