ここまで、バックアップファイルと変更履歴の必要性と、それらを使って障害から復旧する流れを説明してきました。続いて、より具体的なイメージをつかめるように、Oracle Database(以下、Oracle)を例に、具体的な障害復旧の仕組みを解説します。なお、RDBMSによってファイルの名前などは異なりますが、基本的な仕組みは同じです。
データベースを構成するファイル(データファイル、オンラインREDOログファイル、制御ファイル)の破損や、誤操作によるファイルの削除などが原因でファイルにアクセスできなくなる障害を、Oracleでは「メディア障害」と呼んでいます。
また、Oracleでは障害の発生に備えて、データベースに対して行った変更履歴を「オンラインREDOログファイル」と呼ばれるファイルに格納しています。オンラインREDOログファイルは最低2つ以上必要で、全てのファイルが変更履歴でいっぱいになると、一巡してファイルを上書きして循環利用します。
そのため、オンラインREDOログファイルだけの運用では、リカバリーに必要な変更履歴が上書きされる可能性があります。そこで、全ての変更履歴を残すために「アーカイブREDOログファイル」も取得しておきます。アーカイブREDOログファイルとは、オンラインREDOログファイルのコピーファイルのことで、上書きされることはありません(図5)。
Oracleでは、「バックアップファイル」と上記の「2つのREDOログファイル」を基にメディア障害からのリカバリーを行います。例えば、データファイルが1つ破損してしまった場合は、破損したファイルとバックアップファイルを置き換えます。その後、アーカイブREDOログファイルの変更履歴を使って再実行し、最後に最新のオンラインREDOログファイルの変更履歴を基に再実行すれば、リカバリーは完了です(図6)(図7)。
今回は、障害からの復旧の仕組みについて解説しました。事前の備えと正しい知識があれば、障害が発生してもリカバリーできることを理解いただけたかと思います。安定したデータベースシステム運用のために、普段からバックアップファイルを取得する備えをしておきましょう。
【2017/4/24】2017年時点の状況に合わせて、内容を追記更新しました
【2009/01/19】初版公開
株式会社アシスト データベース技術本部所属。Oracle研修の講師として、リカバリーやチューニングなどの研修を幅広く担当
株式会社アシスト サービス事業部教育部(当時)。Oracle研修の講師として、初心者向けコースから管理者向けコースまで担当している。研修では、Oracleの仕組みや、運用管理をするうえでの注意点を理解していただけるように心掛けている。
Copyright © ITmedia, Inc. All Rights Reserved.