ORACLEMASTER 備忘録5(7/8)
続き
メモリーコンポーネント管理方法の設定
メモリーコンポーネントの管理には次の方法がある。
・自動メモリー管理(AMM:Automatic Memory Management)
・自動共有メモリー管理(ASMM:Automatic Shared Memory Management)+自動PGAメモリー管理
・手動共有メモリー管理+自動PGAメモリー管理
自動メモリー管理(AMM)
Oracleソフトウェアの基本のインストールを行ってデフォルトのデータベースを作成すると、「自動メモリー管理(AMM:Automatic Memory Management)」が有効になる。この場合、SGAとPGAに割り当てられるメモリーのサイズは。自動的に次の初期化パラメータによって指定されたターゲットサイズの範囲内に調整される。また、メモリー要件の変化に合わせて、SGAとインスタンスPGAとのメモリーの再配分が行われる。
・MEMORY_TARGET:Oracleデータベースで使用可能なメモリーサイズ(ターゲットサイズ
・MEMORY_MAX_TARGET:Oracleデータベースで使用可能なメモリーの最大サイズ(静的)
「MEMORY_TARGET」初期化パラメータの値は動的に変更可能だが、「MEMORY_MAX_TARGET」初期化パラメータで設定したサイズを超えることはできない。MEMORY_TARGETは静的パラメータである。
なお、自動メモリー管理(AMM)の場合に、後述する「SGA_TARGET」初期化パラメータ(SGAのターゲットサイズ)、および「PGA_AGGREGATE_TARGET」初期化パラメータ(インスタンスPGAのターゲットサイズ)に値を設定すると、その値はSGAまたはインスタンスPGAのサイズの“最小値”として機能する。
また、SGAの各コンポーネントサイズを設定する初期化パラメータ(※DB_CACHE_SIZEなど)に値を設定すると、その値は各コンポーネントのサイズの最小値として機能する。
※DB_CHACHE_SIZE初期化パラメータはデータベース・バッファ・キャッシュのサイズを指定するパラメータである。
自動メモリー管理の設定方法
MEMORY_MAX_TARGETは静的パラメータなので、「SCOPE=SPFILE」を指定する必要がある。「SCOPE=SPFILE」を指定すると、サーバーパラメータファイル内の値のみが設定され、実行中のインスタンスに対する値は設定されない。変更を反映するにはインスタンスを再起動する。
・MEMORY_MAX_TARGET初期化パラメータの設定
ALTER SYSTEM SET MEMORY_MAX_TARGET = n[K | M | G] SCOPE = SPFILE;
MEMORY_TARGETは動的パラメータなので、MEMORY_MAX_TARGETの値を超えない範囲で、0以外の値を動的に変更できる。
・MEMORY_TARGET初期化パラメータの設定
ALTER SYSTEM SET MEMORY_TARGET = n[K | M | G];
または
ALTER SYSTEM SET MEMORY_TARGET = n[K | M | G] [SCOPE={MEMORY | SPFILE | BOTH}];
自動共有メモリー管理(ASMM)+自動PGAメモリー管理
SGAとインスタンスPGAのサイズを個別に制御したい場合は、「自動共有メモリー管理(ASMM:Automatic Shared Memory Management)を使用する。自動共有メモリー管理を有効にすると、「自動PGAメモリー管理」が“暗黙的に有効”になる。
自動共有メモリー管理では、SGAの各コンポーネントのサイズとインスタンスPGAサイズが“個別に”、データベースサーバーによる自動管理になる。SGAとインスタンスPGAの間でのメモリー再配分は行われない。
SGAとインスタンスPGAのサイズは、次のパラメータで個別に設定する。
自動共有メモリー管理と自動PGAメモリー管理の初期化パラメータ
SGA_TARGET:SGAのターゲットサイズ