Oracle 11gR2 からメモリ管理がほとんど自動になっている!

oracle11g-flash-100

Oracle11gR2のメモリ管理について

Oracleはバージョンアップする度にメモリ管理を自動してきましたが、11gR2になって遂にほぼ自動化といえるレベルになってきました。



 

11gR2のメモリ管理

Oracle 11gR2 でメモリ管理の初期化パラメターが追加されました。

  • MEMORY_TARGET
  • MEMORY_MAX_TARGET

MEMORY_TARGETには、Oracleシステム全体の使用可能なメモリーを指定します。
MEMORY_MAX_TARGETには、DBAがMEMORY_TARGET初期化パラメータを設定できる最大値を指定します。

つまり、MEMORY_TARGETでOracleに割り当てるメモリサイズを指定すれば、Oracle Database がSGAやPGAの割り当てを負荷に応じて自動的に伸縮して調整してくれるようになっています。

SGAの使われ方
 → 読み込んだデータをキャッシュして、ユーザー間で共有

PGAの使われ方
 → プログラム毎の情報をキャッシュして、共有はされない

11g_memory_target

専門知識を有する技術者のチューニングが不要になってきており、データベース管理がますます効率化されてきています。メモリ使用状況はEM(Enterprise Manager)で確認することができ、管理の負荷も大幅に軽減されてます。

もちろん、「自動管理は使いません!」っていうことも可能で、その場合はSGAとPGAに割り当てたいメモリサイズを初期化パラメータにセットすればいいです。

SGA → SGA_TARGET
PGA → PGA_AGGREGATE_TARGET

ちなみに10g のメモリ管理では、SGAとPGAのサイズを指定するようになっていました。

Oracle 10g のメモリ管理

10g_memory

 

メモリパラメータの変更方法

メモリパラメータの変更方法は他の初期化パラメータと同じです。以下の例は自動管理設定です。

SQL> ALTER SYSTEM SET MEMORY_TARGET = 10240M SCOPE = SPFILE;
SQL> ALTER SYSTEM SET MEMORY_MAX_TARGET = 10240M SCOPE = SPFILE;
SQL> ALTER SYSTEM SET SGA_TARGET = 0 SCOPE = SPFILE;
SQL> ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE;

メモリ管理を変更する場合はインスタンスを再起動する必要があります。

[oracle@server01:/home/oracle] srvctl stop database -d db01
[oracle@server01:/home/oracle] srvctl start database -d db01

 



 

 


サブコンテンツ

このページの先頭へ