アーキテクチャから理解するOracleリカバリ:Oracleバックアップ/リカバリ講座(2)(3/3 ページ)
本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)
リカバリの仕組み
Oracleデータベースで実行されるリカバリには2つの種類があります。1つは自動的にOracleによって実行される「クラッシュリカバリ」、もう1つはデータベース管理者などによって手動で実行する「メディアリカバリ」です。ここで少し詳しく各リカバリの仕組みを説明します。
クラッシュリカバリの仕組み
最初に説明するクラッシュリカバリは、これまでに説明したデータベースの仕組みを使用して自動的に整合性を保つために行われるリカバリです。このリカバリは、「システム稼働中に停電が起こった」「何らかの障害で急にインスタンスが停止した」「SHUTDOWN ABORTコマンドを実行した」などデータベースが正常に停止されなかった状態から、データベースを起動したときに実行されます。
このようにインスタンスが異常終了した場合には、確定したトランザクションのデータとデータファイルの間には矛盾が生じ、オンラインREDOログ・ファイルにはトランザクションが実行中のまま残っていた可能性があります(Oracleデータベースではメモリ上で変更したデータは、トランザクションの確定とは関係なく、時間差を置いてデータファイルへ反映しているため)。そのような事態が起こった場合、Oracleでは以下のような仕組みで自動的にリカバリを実行し、整合性を維持します。
図4のように、Oracleは最初にオンラインREDOログ・ファイルの変更履歴を適用し(REDO操作)、障害発生直前の状態にします。このオンラインREDOログ・ファイルの変更履歴を適用することを「ロールフォワード」といいます。このREDO操作によってデータの更新を行いますが、UNDOセグメントの変更前データも復元します。その後、このREDO操作で復元したUNDOセグメントを利用し、ROLLBACK処理を行います。
メディアリカバリの仕組み
メディアリカバリは、先ほど説明したクラッシュリカバリのようにOracleが自動的に行うものではありません。例えば、ディスク障害などによってデータの格納されているデータファイルが消失してしまった場合などに、手動で行うリカバリです。
このような場合には、まずバックアップをリストアすることから始めます。その後、アーカイブREDOログ・ファイルとオンラインREDOログ・ファイルを利用して、ロールフォワード処理を手動でコマンド実行します。手動でコマンド実行することによって、先ほどのクラッシュリカバリと同様にロールフォワードを行い、確定していないトランザクションはロールバックし、データベースの整合性を維持します(アーカイブログモード時の具体的なバックアップ方法や各リカバリ方法は今後の連載で説明します)。
次回からは、今回説明したアーキテクチャ、リカバリの仕組みを踏まえ、Oracleの持つバックアップ方法、リカバリ方法を紹介します。(次回へ続く)
- ノーアーカイブログモードでのリストア・リカバリ
- Recovery Managerによるリストア・リカバリの方法
- OSコマンドを使用したリストア・リカバリの方法
- Recovery Managerのチューニング・ポイント集
- バックアップの所要時間を短縮するテクニック
- これだけでRecovery Managerは完全マスター
- 物理バックアップの失敗を根絶するノウハウ
- OSコマンドによる物理バックアップの全手順
- Data Pumpを使った論理バックアップの実践
- Recovery Managerを使ったバックアップ方法
- Oracleの代表的なバックアップ方法
- アーキテクチャから理解するOracleリカバリ
- プロとしてのバックアップ/リカバリ基礎知識
Copyright © ITmedia, Inc. All Rights Reserved.