Redo log とは

Oracle RDBMS環境では、REDOログは、データベースに加えられたすべての変更の履歴を記録する独自の形式のファイルで構成されています。各REDOログ・ファイルはREDOレコードで構成されます。また、REDOエントリと呼ばれるREDOレコードは、データベース内の単一ブロックに加えられた変更を記述する又は表す各々は変化ベクトル群を保持します。
ユーザが従業員に関連するデータを含む表の給与値を更新する場合、例えば、DBMSがテーブルのデータセグメントブロックに対する変更を記述する変更ベクトルを含むREDOレコードを生成します。また、ユーザーが更新をコミットすると、Oracleは別のREDOレコードを生成し、その変更に「システム変更番号」(SCN)を割り当てます。
データファイル内で何かが変更されると、Oracleはその変更をREDOログに記録します。 REDOログの名前は目的を示します。データベースがクラッシュした場合、RDBMSは、最後のREDOレコードが書き込まれたときの状態にデータベース・データを戻すデータ・ファイルのすべての変更をREDO(再処理)できます。 DBAは、データベースのREDOログに関する情報を見つけるために、ビューV $ LOG、V $ LOGFILE、V $ LOG_HISTORYとは、V $ THREADを使用しています。各REDOログ・ファイルは、正確に1つのグループに属します(少なくとも2つは存在しなければなりません)。これらのグループのうちの1つはCURRENTグループです(v $ logの列ステータスを使用して照会できます)。 Oracleはその現行グループを使用してREDOログ・エントリを書き込みます。グループがいっぱいになると、ログ切り替えが発生し、別のグループが現在のグループになります。各ログ・スイッチはチェックポイントを生成しますが、その逆は真ではありません。チェックポイントでは、REDOログ・スイッチは発生しません。また、ALTER SYSTEM SWITCH LOGFILEコマンドを使用して手動でREDOログ切り替えを行うこともできます。