web-dev-qa-db-ja.com

Oracle自動メモリー管理-SGA_MAX_SIZE

自動メモリー管理を使用する場合、SGA_MAX_SIZEはどのような値にする必要がありますか? 0にすべきですか?これらは私の現在の設定であり、SGA_MAX_SIZEのままにするか、0に設定するか不明です。

memory_max_target     2147483648
memory_target         2147483648
pga_aggregate_target  0
sga_max_size          1610612736
sga_target            0

Oracle 11gR2

5
invertigo

sga_max_size のドキュメントは次のように言います:

64ビットプラットフォームおよびWindows以外の32ビットプラットフォームでは、MEMORY_TARGETまたはMEMORY_MAX_TARGETが指定されている場合、SGA_MAX_SIZEのデフォルト値は2つのパラメーターの大きい方に設定されます。

Oracleドキュメントによると、11gの自動メモリ管理(AMM)(ドキュメントID 443746.1)によると、sga_targetpga_aggregate_targetの両方が未設定の場合、次のようになります。

どちらも設定されていない場合、最小値またはデフォルト値なしで自動調整されます。初期化中に、MEMORY_TARGETパラメータによって設定された合計メモリをSGAおよびPGAに固定比率で配布するポリシーがあります。起動時に、SGAに60%、PGAに40%を与えることがポリシーです。

したがって、OracleにSGAを完全に制御させたい場合に行う最も簡単なことは、SGAをリセットしてデフォルトを適用することです。

SQL> alter system reset sga_max_size scope=spfile;

(そして再起動します。)

AMMが必要だが、SGAまたはPGA(またはその両方)の最小値が必要な場合は、対応する_targetパラメーターを設定してください。

前の手順[to set up AMM]は、SGAおよびインスタンスPGAのサイズが調整されるように、SGA_TARGETおよびPGA_AGGREGATE_TARGETをゼロに設定するように指示します制限なしで、必要に応じて上下に移動します。これらのパラメーター値をゼロに設定するステートメントを省略し、値のいずれかまたは両方を正の数のままにすることができます。この場合、値はSGAまたはインスタンスPGAのサイズの最小値として機能します。

何をするにしても、しないでくださいPGAまたはSGAのターゲットまたは最大サイズをメモリターゲットよりも大きく設定します。これにより、インスタンスが起動しなくなります。

4
Mat