Oracleメモリ包括分析(5)-1 Oracleのメモリアーキテクチャ構成_1SGA.5 REDOログ・キャッシュ、大プール、Javaプール、Streams Pool

4906 ワード

Oracleメモリの包括的な分析(5)
1.1.5.REDOログ・キャッシュ(Redo Log Buffer)
Redo Log Bufferは、SGAにおいてデータベース変更情報を保存するキャッシュである.これらの情報は、REDOエントリ(Redo Entry)に記憶する.REDOエントリには、INSERT、UPDATE、DELETE、CREATE、ALTER、またはDROPによる変更操作のために、データベースの再編成またはREDOが必要な必須情報が含まれています.必要に応じて、REDOエントリはデータベース・リカバリにも使用できます.
REDOエントリは、Oracleデータベース・プロセスがユーザー・メモリからRedo Log Bufferにコピーしたものです.REDOエントリはメモリに連続的に接続されています.バックグラウンドプロセスLGWRは、Redo Log Bufferの情報をディスク上でアクティブなREDOログファイル(Redo Log File)またはファイルグループに書き込む責任を負います.
パラメータLOG_BUFFERはRedo Log Bufferの大きさを決定します.デフォルト値は512 K(一般的にはこのサイズで十分)で、最大4 Gまで可能です.システムに大きなトランザクションが多数存在するか、トランザクション数が非常に多い場合、ログファイルIOが増加し、パフォーマンスが低下する可能性があります.このときLOG_を増やすことも考えられますBUFFER.
しかし、Redo Log Bufferの実際の大きさはLOB_ではありませんBUFFERの設定サイズ.Redo Log Bufferを保護するために、oracleは保護ページ(一般的に11 K)を追加しました.
SQL> select * from v$sgastat where name = 'log_buffer';
 
POOL         NAME                            BYTES
------------ -------------------------- ----------
             log_buffer                    7139328
 
1 row selected.
 
SQL> show parameter log_buffer
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------
log_buffer                           integer     7028736
 
SQL>

1.1.6.大池(large pool)
大きなプールはSGAの中の1つのオプションのメモリプールで、必要に応じて配置します.次の場合は、大きなプールを構成する必要があります.
o共有サービス(Shared Server MTS方式)用のセッションメモリとOracle分散取引用のOracle XAインタフェース
oパラレルクエリ(Parallel Query Option PQO)を使用する場合
o IOサービスプロセス
o Oracleバックアップおよびリカバリ操作(RMANが有効な場合)
大きなプールから共有サービス、Oracle XA、またはパラレル・クエリーにセッション・メモリを割り当てることで、oracleは共有プールを使用して主に共有SQLをキャッシュし、共有SQLキャッシュの縮小によるパフォーマンスの消費を防ぐことができます.また、Oracleのバックアップ/リカバリ操作、IOサービス・プロセス、パラレル・クエリーに割り当てられるメモリは、一般的に数百Kであり、このような大きなメモリ・セグメントは共有プールよりも大きなプールの方が割り当てやすいため、「大きな」プールと呼ばれています^^).
パラメータLARGE_POOL_SIZEは大池の大きさを設定します.大きなプールはSGAの可変領域(Variable Area)に属し、共有プールには属しない.大きなプールへのアクセスはlarge memory latchによって保護されています.大きなプールには、空きメモリセグメントと空きメモリセグメントの2つしかありません(異なるタイプのメモリセグメントについては後述します).リビルド可能なメモリセグメントがないため、LRUチェーンテーブルを使用して管理する必要はありません(これは他のメモリ領域の管理とは異なります).大きなプールの最大サイズは4 Gです.
大きなプールで破片が発生しないようにパラメータを隠します.LARGE_POOL_MIN_ALLOCは、大きなプール内のメモリセグメントの最小サイズを設定し、デフォルト値は16 Kです(同様に、隠しパラメータの変更は推奨されません).
さらにlarge poolにはLRUチェーンテーブルはありません.
1.1.7.Javaプール(Java Pool)
JavaプールもSGAのオプションメモリ領域であり、SGAの可変領域にも属している.
Javaプールのメモリは、すべてのセッションの特定のJavaコードとJVMのデータを格納するために使用されます.Javaプールの使用方法は、Oracleサービスの実行モードに依存します.
JavaプールのサイズはパラメータJAVA_POOL_SIZE設定.Java Poolは最大1 Gまで可能です.
Oracle 10 g以降では、DBAによるJavaプールのサイズ変更を支援する新しい推奨器、Javaプール推奨器が用意されています.提案器の統計データはビューV$JAVA_を通してPOOL_ADVICEが照会します.Javaプールの調整方法とBuffer Cache推奨の使用方法は、Buffer Cacheの「推奨」セクションを参照してください.
1.1.8.ストリームプール(Streams Pool)
フロープールはOracle 10 gで新しく追加されました.ストリームレプリケーション(フローレプリケーションはOracle 9 iR 2に導入された非常に魅力的な特性であり、異機種データベース間のレプリケーションをサポートします.10 gでは完全にサポートされています).
ストリームプールもオプションメモリ領域であり、SGAの可変領域に属する.その大きさはパラメータSTREAM_POOL_SIZEが指定します.指定されていない場合、oracleはストリームを最初に使用したときに自動的に作成されます.SGA_が設定されている場合TARGETパラメータ、OracleはSGAからストリームプールにメモリを割り当てます.SGA_が指定されていない場合TARGETは、buffer cacheからメモリの一部を変換してストリームプールに供給します.変換のサイズは共有プールのサイズの10%です.
Oracleでは、フロー・プールに推奨されるフロー・プール・推奨も提供されます.推奨器の統計データは、ビューV$STREAM_を通過することができるPOOL_ADVICEクエリー.使用方法は、Buffer Cacheのオプティマイザセクションを参照してください.