ORACLEMASTER 備忘録5(3/8)
続き
ユーザープロセスとサーバープロセス
バックグラウンドプロセスは、Oracleデータベースシステム全体に関わる、様々な処理をバックグラウンドで行っています。それに対して、ユーザー処理を行うコンポーネントが「ユーザープロセス」と「サーバープロセス」である。
ユーザープロセスは、ユーザーのアプリケーションのプロセスで、Enterprise ManagerやSQL*Plusなどのアプリケーションを起動すると、それがユーザープロセスになる。
サーバープロセスは、ユーザープロセスから送信された“SQL文のリクエスト”を処理するためのデータベース側で作成されるプロセスで一つのユーザープロセスに対して、SQL文を実行するサーバープロセスが一つ存在する。
基本的な構成では、ユーザープロセス一つに対してサーバープロセス一つが対応する。この構成を「専用サーバー構成」という。データベースサーバー側のリソースの使用状況によっては、多くのユーザープロセスの要求を、それよりも少ないサーバープロセスが対応するように構成することもできる。この構成を「共有サーバー構成」という。
PGA(プログラムグローバル領域)
PGA(プログラムグローバル領域:Program Global Area)は、各サーバープロセスやバックグラウンドプロセスがここにデータを保存している“非共有メモリー領域”である。SGAと違い、PGAのデータにアクセスできるのは“一つのプロセスに限られる”。SQL文の処理時の作業領域や、ログイン及びその他のセッション情報、セッションで使用する変数などを処理するための領域として使用される。
PGAには次の情報が格納される。
・セッションメモリー(ログイン情報、セッションに関係するその他の情報)
・プライベートSQL領域(バインド変数値、問合せ実行状況の情報、および問合せ実行作業領域)
各サーバープロセス、バックグラウンドプロセスには専用のPGAがプロセス起動時に割り当てられる。
インスタンスの起動・停止
ユーザーがデータベースを使用するためには、インスタンスが起動していて、データベースがオープンである必要がある。
インスタンスの起動
インスタンスは次のいずれかの方法で起動する。
・SQL*Plusから“STARTUP”コマンドを実行する。
・Windowsサービスプログラムを使用する(OSがWindowsの場合)。
SQL*Plusによるコマンドライン操作の代わりに、次のGUIツールを使用することもできる。
・SQL Developerを使用する。
・Enterprise Manager Cloud Controlを使用する。
データベースがオープンになるまでの流れ
- インスタンスの起動(NOMOUNT状態)
インスタンスが起動していない(SHUTDOWN)状態でSTARTUPコマンドを実行すると、そのインスタンス用の“初期化パラメータ”が読み込まれる。
初期化パラメータファイルにはインスタンスを構成するためのパラメータ記述されており、パラメータ設定にしたがってSGAが割り当てられ、バックグラウンドプロセスが起動する。これを「NOMOUNT状態」という。
- データベースのマウント(MOUNT状態)
初期化パラメータファイルに記述してある「CONTROL_FILES」初期化パラメータにしたがって制御ファイルがオープンされる。
制御ファイルがオープンされることにより、インスタンスとデータベースが関連付けられる。この状態を「MOUNT状態」という。制御ファイルにはデータベースの物理構造に関する情報が格納されているため、制御ファイルをオープンすると、データベースすべてのデータファイルとREDOログファイルの名前とパスがわかるが、この状態ではまだデータファイルもログもオープンしていない。
- データベースのオープン(OPEN状態)
すべての“データファイル”と“REDOログファイル”がオープンされる。この状態をOPEN状態という。OPEN状態になると一般のユーザーが接続できる。