Oracleアーキテクチャ入門 ~メモリ/ファイル管理の仕組みについて~

イントロ

今回はOracleのメモリおよびファイルアーキテクチャについて記載しております。Oracleを設計・運用するために、まずは本内容をきちんと理解することが必須となりますので、ぜひ読んでみてもらえると嬉しいです。

Oracleアーキテクチャ概要

まずはOracleアーキテクチャの概要を簡単に説明いたします。まずは全体像の概略図を記載しますので、こちらを参照しながら読み進めていただければと思います。


Oracleデータベースはインスタンスとデータベース関連ファイル群から構成されます。それぞれ見ていきましょう。

インスタンス

インスタンスとはOracleの処理をつかさどる常駐プロセスとなります。インスタンスはSGAとデータベースファイルによって構成されます。それぞれの構成要素を記載します。

SGA(システムグローバル領域)
インスタンス起動時に割り当てられるメモリ領域となります。各プロセス間で共通的に使用される点が特徴です。SGAの構成要素を下記に示します。

メモリー領域説明
データベースバッファキャッシュデータファイルから読み込んだブロックをキャッシュする、あるいは変更されたブロックをデータファイルに書き出す前の一時的な記憶領域として使用する領域となります。
REDOログバッファREDOログファイルに書き込む前のREDOデータ(変更履歴)を一時的に保管する領域となります。
共有プール解析済みのSQL、実行計画、データディクショナリの情報などをキャッシュする領域となります。
JavaプールJVM内のセッション固有のすべてのJavaコードとデータが格納されるメモリー領域となります。特にJava言語で記述されたストアドプログラムの実行に使用されます。
ラージプールラージ・プールは、大量のメモリを割り当てる場合に設定されるオプションのメモリ領域です。たとえばバックアップや並列処理などの作業領域として使用されます。

バックグラウンドプロセス
それぞれのインスタンスにおいてバックグラウンドプロセスも動作しております。代表的なバックグラウンドプロセスを下記に示します。

プロセス名説明
データベースライター(DBWn)データベースバッファキャッシュ内の変更済みブロックをデータファイルに書き込みます。
ログライター(LGWR)REDOログバッファのREDOデータ(変更更新情報)をCommitのタイミングでREDOログファイルに書き込みます。
チェックポイント(CKPT)チェックポイントのタイミングでDBWnに対してデータファイルに書き込む指示を行う。また、制御ファイルにチェックポイント情報を書き込みます。
システムモニター(SMON)インスタンスやファイルの状態を監視し、必要に応じてメンテナンスを行うプロセス。インスタンスが異常終了した際、次回インスタンス起動時にデータベースファイルの整合性を復旧する処理を行います。
プロセスモニター(PMON)他のバックグラウンドプロセスを監視し、プロセスが異常終了した際のプロセスリカバリを実行する。具体的にはデータベースバッファキャッシュをクリーンアップしたり、プロセスが使用していたリソースを解放するといった動作を行います。
管理モニター(MMON)AWRのスナップショットなど、性能分析で使用される統計情報を定期的(デフォルト60分間隔)に取得する。AWRスナップショットはSYSAUX表領域に格納されます。
アーカイバ(ARCn)ログスイッチ発生後、REDOログファイルのREDOデータをアーカイブログファイルとして作成する。
リスナー登録プロセス(LREG)インスタンスに関する情報をリスナーに登録する。
データベース関連情報

一般的にデータベース関連の情報はストレージにファイルとして外部保管されることが多いです。各ファイルについて説明していきます。

ファイル名説明
データファイルテーブルやインデックス等のデータが格納されています。データファイルは表領域という論理的な記憶域に分けて格納去れています。
REDOログファイルデータベースに対して行われたすべての変更履歴が記録されているファイルとなります。CommitされたタイミングでREDOログバッファの情報がREDOログファイルに書き込まれます。
制御ファイルデータベースの構成情報および管理情報が格納されているバイナリファイルです。制御ファイルにはデータベース名、REDOログファイルの名前や位置、ログ順序番号、チェックポイント情報といった重要な情報が記録されています。二重、三重で冗長化しておくことを推奨します。
アーカイブログファイル古くなったREDOログレコードが格納されるファイルとなります。REDOのログスイッチのタイミングでアーカイブログファイルにデータベースの過去の更新履歴が書き込まれる動きとなります。
初期化パラメータファイル初期化パラメータのリストおよび各パラメータの値が格納されます。具体的には、使用されるメモリ容量、アーカイブログモードの有効設定、アーカイブログの出力先、制御ファイルの格納場所などの様々な設定が記載されています。
パスワードファイル管理者権限を持つユーザのパスワードを管理するためのファイルとなります。

まとめ

ここまで読んでいただきありがとうございました。初学者の方はまずは下記の概要を理解していただくところから始めてもらうのが良いかと思います。詳細が気になったら細かい項目について調べ、理解を深めていってください。

  • Oracleデータベースサーバはインスタンスおよびデータベース関連情報で構成されている。
  • インスタンスはSGAおよびPGAのメモリ領域を使い、サーバプロセスおよびバックグラウンドプロセスを実行する。
  • 別途構築するストレージにデータファイル等の関連情報が格納される。

ほかにもOracle関連の記事をいくつか記載してますので、ぜひ合わせて読んでもらえると嬉しいです。

参考資料

今回の記事を記載するにあたり参考にした資料を記載します。

コメント