インスタンス と データベースファイル
Oracleデータベースは、インスタンスとデータベースファイルから構成されています。
インスタンスはデータ処理を担う部分、データベースファイルはその名の通りファイルの集まりです。
イメージとしてはインスタンスがせっせと動いてデータベースファイルを書き換えたり、作成したりするわけです。

インスタンス
インスタンスについて細かく解説していきます。
インスタンスはSGA(システムグローバル領域)とバックグラウンドプロセスから構成されています。
バックグラウンドプロセスは、実際に処理を担うプロセスというものがいくつか起動します
SGAはインスタンス起動時に割り当てられるメモリー領域です。プロセス間で共有するためのデータが一時的に保管されます。
以下でSGAとバックグラウンドプロセスの構成を説明します。
SGA
SGAは主に以下から構成されています。
- データーベースバッファキャッシュ・・・データファイルへの書き込み・読み込み時にデータを一時的に保管する領域。ここに一時的にデータを置いておいて、後でゆっくりデータファイルへ書き込みをします。
- REDOログバッファ・・・一時的にDBバッファキャッシュにデータを保管しているタイミングでインスタンスに障害が発生すると、そのデータはデータファイルに書き込まれる前に失われてしまいます。そこで更新履歴を保存しておけば復旧できますよね。更新履歴はREDOログファイルに保存され、その一時保管領域がREDOログバッファです。
- 共有プール・・・いくつか用途がありますが、主に2つ。解析済みSQLの一時保管とデータディクショナリの一時保管に使われます。
バックグラウンドプロセス
代表的なプロセスを2つ紹介します。
- データベースライター(DBWn)・・・上記のデーターベースバッファキャッシュからデータファイルに書き込む処理を担うプロセス。
- ログライター(LGWR)・・・REDOログバッファからREDOログファイルに書き込む処理を担うプロセス。
メモリーとストレージの違い
上記のSGAはメモリー上に、データベースファイルはストレージ上に生成されます。
ではメモリーとストレージの違いはなんでしょうか?どちらも記憶領域であるというなんとなくのイメージしかない方が多いと思います。
大きな違いはデータの保管期間と速度にあります。
保管期間
ストレージはHDDまたはSSDであり、不揮発性なのでPCの電源を切ってもデータは失われません(恒久的)。一方でメモリーはRAMとも呼ばれ、揮発性なので、PCの電源を切ったらデータは失われます(一時的)。
速度
ストレージは恒久的にデータを保持できる反面、メモリーに比べ処理速度が遅いです。
一方メモリーは比較的処理速度が速いので、プロセスによって複数回読み込み書き込みが行われるSGAに利用されています。またデータを恒久的に保持するために、データファイルはストレージに保管されています。
参考文献
Oracleデータベース・インスタンス


コメント