あやうく1日目で挫折するところだった。意志が薄弱すぎる。
今日はインスタンスの中身についてやっていきます。
インスタンスとデータベースファイルの関係
OracleDBnの中身は「インスタンス」と「データベースファイル」で構成される。
インスタンスとデータベースファイルが一対一で存在しており、そのインスタンスの中身がいくつかに分かれてるみたいなイメージ。
インスタンスの中身
・SGA(システムグローバルエリア)
コンポーネントと呼ばれるいくつかのメモリ領域が存在している。
コンポーネントの種類
1.データベースバッファキャッシュ
→データファイルから読み込んだブロックをキャッシュする。
(キャッシュする:一時保存)
また、変更されたブロックを書き出す前に一時保存する。
2.REDOログバッファ
→REDOログに書き込む前のREDOデータをキャッシュする。
3.共有プール
→解析済SQL、データディクショナリをキャッシュする。
(データディクショナリ:データの名称、意味、属性、所在、データ型などをまとめた辞書のこと)
4.Javaプール
→ストアドプログラムの実行時に使用するスペース
5.ラージプール
→バックアップ、並列処理などの作業領域
1について
セグメント:表、索引などのデータを保持するオブジェクトのこと。オブジェクト:セグメントの割合は1:1。特定の表領域に保管されている。1つ以上のエクステントからなる。
ブロック:データファイルを固定サイズに分割したもの。オブジェクトのデータを保管する。
エクステント:ブロックのかたまり。セグメントに追加することで、セグメントに空き容量を追加できる。連続した複数のデータブロックからなる。
表領域:1つ以上のデータファイルからなる。データファイルのブロックの大きさは同じ。また、1つ以上のセグメントを保管できる。
2について
変更されたブロックを書き込む前にデータベースバッファキャッシュに保存しているが、このときインスタンスに障害が発生するとブロックの変更が失われる。そのため、「変更履歴」としてREDOログデータを残している。
REDOログはトランザクションをコミット(=変更の確定)した時点で発生する。このログデータは、障害の復旧(インスタンスリカバリ、もしくはメディアリカバリ)で使用される。
3について
要はでかキャッシュ入れ。解析済SQLを保存して、時間短縮やサーバの負担を減らすなどができる。データディクショナリ(辞書)の情報をキャッシュして、繰り返しアクセスする情報に対する性能を向上させることができる。
・バックグラウンドプロセス
SGAと一緒に起動するプロセスの総称。
1.DBWn(データベースライター)
→データベースバッファキャッシュ内の変更されたブロックをデータファイルに書き込む。
2.LGWR(ログライター)
→REDOログバッファのREDOデータをREDOログファイルに書き出す。
3.CKPT(チェックポイント)
→データベースバッファキャッシュ内の変更されたブロックをデータファイルに書き込む指示を出す。 併せて、制御ファイルにチェックポイント情報を書き込む。
4.SMON(システムモニター)
→ 「インスタンスが」 強制終了したとき、次回起動時にデータベースファイルの整合性を復旧する処理をする。未使用の一時セグメントを開放する。
5.PMON(プロセスモニター)
→ 「プロセスが」 異常終了したとき、そのプロセスが使用していた様々なデータ、またリソースのクリーンアップをする。また、アイドル時間を超えたセッションに対して強制終了などの対処を指示する。
6.MMON(管理モニター)
→性能分析で使用される統計情報を定期的に収集する。
7.ARCn(アーカイバ)
→ログスイッチの発生後にREDOログファイルのREDOデータをアーカイブログファイルとしてコピーする。
8.LREG(リスナー登録プロセス)
→インスタンスに関する情報をリスナーに登録する。
1について
遅延書き込み:データベースバッファキャッシュに保存された変更済ブロックを、DBWnによって後でデータファイルに書き込むこと。ストレージの処理能力を超えた変更があっても、タイミングをずらして書き込み処理をじっこうするので処理負荷を軽減できる。
また、同じブロックが複数回変更された場合にデータファイル内のブロックへの書き込みを1回にすることができる。
7について
ログスイッチ:多重化したREDOファイル(メンバー)、また多重化されたREDOファイルの組(グループ)のカレントに空きがなくなった際に、別のロググループがカレントとなって切り替わるときの呼び方。
ARCHIVELOGモード:OracleDBにおいてアーカイブデータが出力される運用モードのこと。古いREDOファイルにデータを上書きしていく際、上書きされる前にREDOデータをコピーしてアーカイブログファイルを生成する。メディアリカバリを実行する際は必須の運用モード。
多すぎ。