SGA(システムグローバル領域)
インスタンス起動時に割り当てられるメモリー領域。
プロセス間で共有されるデータが保管される。
SGA内にあるコンポーネント
- データベースバッファキャッシュ
- データファイルから読み込んだブロックをキャッシュする
- 変更されたブロックをデータファイルに書き出す前に一時的に保管する(バッファ機能)
- REDOログバッファ
- REDOログファイルに書き込む前のREDOデータ(変更履歴)を一時的に保管する
- 共有プール
- 解析済みのSQLやデータディクショナリの情報などをキャッシュする
- Javaプール
- Java言語で記述されたストアドプログラムの実行に使用される
- ラージプール
- バックアップや並列処理などの作業領域として使用される
プロセス
バックグラウンドプロセス
Oracleの主なバックグラウンドプロセス
- データベースライター(DBWn)
- データベースバッファキャッシュ内の変更済みのブロックをデータファイルに書き込む
- ログライター(LGWR)
- REDOログバッファのREDOデータ(変更履歴情報)をREDOログファイルに書き出す
- チェックポイント(CKPT)
- データベースライター(DBWn)に対して、データベースバッファキャッシュ内の変更済のブロックをデータファイルに書き込む指示を出す
- 制御ファイルにチェックポイントの情報を書き込む
- システムモニター(SMON)
- インスタンスが異常終了した場合、次回インスタンス起動時にデータベースファイルの整合性を復旧する処理を実行する
- 未使用の一時セグメントを解放する
- プロセスモニター(PMON)
- プロセスが異常終了した場合、そのプロセスが使用していた様々なデータやリソース後処理(クリーンアップ)を実行する
- アイドル時間を超えたセッションを検知し、強制終了などの対処を指示する
- 管理モニター(MMON)
- AWRスナップショットなど、性能分析で使用される様々な統計情報を定期収集する
- アーカイバ(ARCn)
- ログスイッチの発生後、REDOログファイルのREDOデータをアーカイブログとしてコピーする
- リスナー登録プロセス(LREG)
- インスタンスに関する情報をリスナーに登録する
PGA(プログラムグローバル領域)
- 特定のOracleプロセス専用のメモリー領域
- そのプロセス専用であるため、プロセス間で共有されることはない
※SGA内のデータはすべてのOracleプロセスで共有される
サーバープロセス
- データファイルからデータブロックを読み込み、バッファキャッシュに配置する
- データベースバッファキャッシュに配置されたデータブロックの変更
RAC構成(Real Application Clusters)
- 通常、1つのデータベースに対して、2つ以上のインスタンスを割り当てる
- 複数のインスタンスを起動する事により、可用性を高める。(クラスター構成)
セッション
- ユーザがインスタンスにログインしている状態
- ユーザプロセスとサーバプロセスの間に確立
記憶域構造
オブジェクト 1対0or1 セグメント
表領域 1対複数 データファイル
表領域 対複数 セグメント(テーブルやインデックス)
セグメント 対複数 エクステント 対複数 データブロック(2KB〜32KBの固定サイズ)