ORACLEインスタンスとは何か
ORACLEインスタンスとは、ORACLEが実際に稼働している実態のことです。実際はコンピュータ上のメモリに展開されたメモリ空間とプロセス(プログラム)群から構成されています。特にデータベースバッファキャッシュの容量、データのヒット率はパフォーマンス上、重要な要素ですので、しっかり理解しましょう
SGA (System Global Area:システムグローバル領域)
SGA(System Global Area:システムグローバル領域)は以下の内容で構成されています
データベースバッファキャッシュ
ディスクから読み込んだデータをキャッシュする領域。データ領域とUNDO(変更前情報)領域に大別されます。このデータベースバッファキャッシュが不足するとパフォーマンス(性能)に影響します。バッファキャッシュ上にデータが存在する比率をバッファキャッシュヒット率と言います。通常は90%以上ですが、これが低下した場合は何等かのチューニングが必要になる可能性があります
REDOログバッファ
REDO(変更後情報)ログのメモリ領域です。
共有プール
解析済みのSQL文をキャッシュするライブラリキャッシュと、オブジェクトの定義情報(テーブルの属性など)をキャッシュするデータディクショナルキャッシュがあります。
主要バックグラウンドプロセス
バックグラウンドプロセスはOracleの心臓とも言うべく管理プロセス(プログラム)です。主なバクグラウンドプロセスは以下の通りです。これらは初期のころから存在する代表的なものです。
SMON
システムモニタと呼ばれ、インスタンス全体を監視します。
PMON
プロセスモニタと呼ばれ、ユーザープロセスを監視します。
DBWR
データベースライタと呼ばれ、データベースバッファのデータをデータファイルに書き出します。DBWRは複数起動します。
LGWR
ログライターと呼ばれ、REDOログバッファの内容をREDOログファイルに書き出します。
CKPT
チェックポイントと呼ばれ、DBWRとLGWRのデータファイルへの書き込みタイミングを制御します。
ARCH
アーカイバと呼ばれ、REDOログバッファの内容をアーカイブログファイルというリカバリ用データファイルへ書き出します。
その他
Snnn:マルチスレッドサーバ
Dnnn:ディスパッチャ
RECO:リカバラ
LCKn:ロック
など多数あります。
バックグラウンドプロセスは機能が追加されると追加される場合があります。アラートログにバックグラウンドプロセスが表示されますので、どのような処理が動いているか推察することができます。