IT系フリーランスの技術備忘録

日々の業務で学んだ事の覚書やフィードバックなど。たまに関係ない記事も。

ORACLEで'REDO'が付く用語の意味がごちゃごちゃになりませんか?まとめてみました。

Oracleの用語で、'REDO'と名前が付くものがいくつかあって、ごちゃごちゃになりがちなのでまとめます。

用語 意味
REDOエントリ SELECTやINSERTなど、ORACLEの変更履歴の事。REDOエントリは、始めにメモリ領域であるREDOログバッファに書き込まれ、commitのタイミングでオンラインREDOログファイルに書き込まれる。また、アーカイブモードの場合は、オンラインREDOログファイルの一つが書き込みいっぱいになり、次のファイルにスイッチするタイミングで、アーカイブREDOログファイルに保存される。
REDOログバッファ ORACLEの変更履歴が書かれたファイル。SELECTやINSERTなど、データベースに何らかの変更が加えられた際の情報は、メモリ領域であるREDOログバッファに書き込まれる。REDOログバッファはメモリ領域でありサイズに制限があるので、ある程度でオンラインREDOログファイルに書き込まれる。変更履歴がオンラインREDOログファイルに直接書き込まれず、まずはREDOログバッファに書き込まれるのは、アクセス負荷を減らす目的。
オンラインREDOログファイル REDOログバッファに書き込まれた変更履歴が、commitのタイミングで書き込まれるファイル。また、オンラインREDOログファイルは最低2つ以上存在し、ひとつのファイルがいっぱいになったら、次のファイルに書き込まれ、すべてのファイルがいっぱいになると、また最初のファイルに上書きされるという仕組みで、循環して書き込まれ続ける。また、オンラインREDOログファイルは、ORACLEの障害時に復旧に用いられるが、オンラインREDOログファイルに障害が起こると復旧が出来なくなるため、オンラインREDOログファイルを多重化する事も可能。
アーカイブREDOログファイル オンラインREDOログファイルは、循環して書き込まれるので、古い情報は随時消えてしまう。そのため、古い情報を残す場合には、アーカイブREDOログファイルに残す必要がある。アーカイブREDOログファイルは、オンラインREDOログファイルがひとついっぱいになり、ファイルが切り替わるタイミングで、書き込まれる。オンラインアーカイブREDOログファイルに