ORACLEMASTER 備忘録9(3/13)
非一貫性バックアップ(オンラインバックアップ)
非一貫性バックアップ(オンラインバックアップ)とは、“データファイルに適用されていない変更がある状態で取得したバックアップ”。バックアップは、データベースをオープンした状態のままでも使用できる。※
非一貫性バックアップでは、トランザクションの一貫性がデータファイルだけでは確保されない。そのため、データファイルをリストアした後で、“REDOログファイル”(オンラインREDOログファイルおよびアーカイブREDOログファイル)を使用してリカバリを実行する必要がある。
※データベースが、後述するARCHIVELOGモードであることが必要。
Oracleデータベースのリカバリ機能
Oracleデータベースで使用できる3種類のリカバリ機能(インスタンスリカバリ、メディアリカバリ、フラッシュリカバリ)について解説する。
インスタンスリカバリ(クラッシュリカバリ)
“インスタンスリカバリ”は、インスタンス障害の発生時点までにコミットされていたトランザクションの変更内容を適用するように、データベースをリカバリする。インスタンス障害は、電源断やOSの異常終了、SHUTDOWN ABORTの実行、Oracleの内部とエラーなどによるインスタンス以上によって発生する。
インスタンスリカバリはインスタンス障害の発生後、データベースを再起動した際の“SMON”によって自動的に再起動される。
メディアリカバリ
“メディアリカバリ”は、メディア障害時に消失または破損した「現行のデータファイル」をリカバリする。メディア障害によるファイルの損失や、オペレーションミスによるファイルの損失などによって発生する。
メディアリカバリは次のステップで行われる。
- 破損したファイルをバックアップからリストアする。
- オンラインREDOログファイルとアーカイブREDOログファイルを使用して、「リストアしたデータファイルに適用されていないトランザクションの変更情報」を適用する。(これを「ロールフォワード」という)
- この時点のデータファイルには、コミット済みのトランザクションとコミットされていない(未コミットの)トランザクションのデータが混在している(未コミットのトランザクションデータがある場合は“UNDOデータ”も生成されている)
- UNDOデータを使用して、未コミットのトランザクションが“ロールバック”される。
- データファイルがリカバリされた状態になる。