ORACLEMASTER 備忘録6(2/11)
続き
制御ファイルが更新するタイミング
制御ファイルは“データベースによって自動的に更新される”。例えば、表領域を作成したことによってデータファイルがデータベースに追加されると、制御ファイルにその物理ファイルの情報が自動的に追加される。
なお、データベースが制御ファイルにアクセスできなくなると、“インスタンスが停止する”。制御ファイルの損失によるデータベース障害に対応するために、通常は制御ファイルを多重化しておく。
REDOログファイル
「REDOログファイル」はユーザーがSQL文を使用して行った“トランザクションの内容”や、データベースが内部的に行った“データベースへの変更”が記録されるファイル。REDOログファイルは、インスタンス障害や停電、ディスク障害などによるシステム障害時のリカバリ処理で利用される。
REDOロググループとREDOログファイル
トランザクションの変更情報である「REDOレコード」は、一時的にSGA内のREDOログバッファに書き込まれる。REDOログバッファのREDOレコードは、トランザクションのCOMMIT時に、LGWR(ログライター)プロセスによって「REDOログファイル」に書き込まれる。
REDOログファイルの構成
REDOログファイルは必ず“2つ以上のREDOロググループ”で構成され、LGWRは各グループに対して“循環方式”で書き込みを行う。
また、“各グループには1つ以上のREDOログファイル”(それぞれのREDOログファイルのことを「メンバー」という)が含まれる。一つのグループ内に複数のファイルが構成されている場合、それらのファイルには“同一の内容が書き込まれる”。
例えば、全体が3つのグループで構成されており、また、各グループにそれぞれ二つのファイルが含まれている場合、LGWRは最初に、グループ1に対してREDOレコードの書き込みを行い、そのREDOログファイルが満杯になったら、書き込み先をグループ2に切り替えて書き込み処理を続ける。その後、グループ3が満杯になったら、LGWRは書き込み対象をグループ1に切り替えて書き込みを続ける。各グループは“ログ順序番号”で識別される。
また、ディスクごとに書き込まれる内容はそれぞれが常に同じになる。
なお、LGWRの書き込み対象のREDOログファイルを含むグループのことを「カレントのREDOロググループ」(現行のREDOロググループ)という。
また、REDOログファイルの書き込み先が切り替わることを「ログスイッチ」という。ログスイッチはALTER SYSTEM SWITCH LOGFILE文によって手動で実行することもできる。