Oracleインスタンスとは、Oracleデータベースに格納されたデータを効率よく管理するための仕組みである。
Oracleサーバーのアーキテクチャ
OracleインスタンスとOracleデータベース
OracleサーバーはOracleインスタンスとOracleデータベースで構成されている。
Oracleインスタンスとは
Oracleサーバーでは、データはファイルに格納されている。これらのデータを効率よく管理し、ユーザー(アプリケーション)に提供するOracleの基本構造をOracleインスタンスと呼ぶ。
インスタンスは、システムグローバル領域(SGA)と呼ばれる複数ユーザー間で共有して使用されるメモリー領域と、メモリー管理やI/O処理を実行する複数のバックグラウンドプロセスから構成されている。
Oracleデータベースとは
Oracleサーバーでは様々なファイルを使用するが、データベース稼働中に絶えずI/Oの発生する以下の3種類のファイルを総称してOracleデータベースと呼ぶ。
- データファイル:表や索引などのデータベース構造の内容が格納されているファイル。
- 制御ファイル:データベースの物理構造情報が格納されているファイル。
- REDOログファイル:データに対する変更情報を記録するファイル。
Oracleサーバーを構成するその他のコンポーネント
OracleサーバーはOracleインスタンス、Oracleデータベース以外にも様々なコンポーネントから構成されている。
ユーザープロセスおよびサーバープロセス
ユーザープロセスはアプリケーションを実行するために必要なプロセスで、サーバープロセスに対して要求(SQL文)を送信する。サーバープロセスはOracleサーバー側で稼働するプロセスで、ユーザープロセスからの要求(SQL文)を受け取り、解析、および実行する。また、必要に応じてユーザープロセスに結果を返す。
1つのサーバープロセスに対応するユーザープロセス数は、サーバー側の構成方法により次のように異なる。
- 専用サーバー:1つのユーザープロセスに対して1つのサーバープロセスが割り当てられる構成
- 共有サーバー:1つのサーバープロセスを複数のユーザープロセスで共有する構成
プログラムグローバル領域
プログラムグローバル領域(PGA)は、サーバープロセスおよびバックグラウンドプロセスに対して割り当てられる共有されないメモリー構造である。PGAが保持する情報はサーバー側の構成方法により異なるが、専用サーバーの場合では主に次のような情報を格納する。
- プライベートSQL領域:セッションで使用するカーソルやバインド情報を格納する。
- セッションメモリー:セッションのログイン情報などを格納する。
- SQL作業領域:SQL文実行時に使用するソート情報を格納する。
また、割り当てられた個々のPGAすべての集合は、合計インスタンスPGAまたは単にインスタンスPGAと呼ばれる。
Oracleサーバーのアーキテクチャのまとめ
- ユーザープロセスはサーバープロセスに対して要求(SQL文)を送信し、サーバープロセスはユーザープロセスに対して結果を返す。
- サーバープロセスに対してPGAが割り当てられ、サーバープロセスはPGAにアクセスする。
- サーバープロセスはSQL文を解析し実行する。その際、SGAは必要に応じてデータファイルからデータを読み込む。
- SGA上で変更が加えられたデータはバックグラウンドプロセスにより、データベースファイルに書き込まれる。
最終更新:2014年03月21日 11:58