oracleにおけるリカバリとは
oracleではバックアップを戻しデータベースをある時点まで戻すことを リストア と呼び、 アーカイブログを用いてバックアップをリストアした状態から最新の状態までロールフォワードすることを 完全リカバリ、最新ではなくある時点までロールフォワードすることを不完全リカバリと呼んでいます。oracleのバックアップ方針
oracleデータベースのバックアップ運用を決定する上で最初に決定すべき項目はアーカイブログモードとするかどうかです。 アーカイブログモードとはredoログスイッチが発生した際にredoログのコピー(アーカイブログ)を出力させるモードですが、 oracleのリカバリはアーカイブログを適用することでロールフォワードを行いますのでアーカイブログモードではない場合は原則リカバリを行うことができなくなります。 また、オンラインバックアップもアーカイブログモードでのみ可能なバックアップ方法ですので以下がすべて許容できる場合のみノーアーカイブログモードとします。(アーカイブログモードであるかどうかの確認方法及び変更方法)
・バックアップ時、DBを停止させることができる
・バックアップ取得~障害発生までの更新データ消失が許容できる
これらを加味した上でバックアップ方法を決定しますが、 oracleのバックアップ手段は大きく分けると以下に分類されます。
・OSコマンドによるバックアップ
- オフラインバックアップ(コールドバックアップ)
- オンラインバックアップ(ホットバックアップ)
・exp/impユーティリティを使用したバックアップ
・expdp/impdpユーティリティ(data pump)を使用したバックアップ(10g~)
・RMANを使用したバックアップ
それぞれの特徴は以下のとおりです。
バックアップ 方法 |
論理/ 物理※1 |
ASM 対応 |
オンライン バックアップ |
オフライン バックアップ |
特徴 |
---|---|---|---|---|---|
OSコマンドやストレージ機能 | 物理 | × | ○ (要アーカイブログモード+ begin backupモード) |
○ (DB停止時に実行) |
・OSコマンドを使用するので信頼性が高い ・データファイルのコピーがバックアップとなるためバックアップのサイズは最も大きくなる ・begin backupモード中はREDOログの出力量が増える |
RMAN | 物理 ※2 |
○ | ○ (要アーカイブログモード) |
○ (DBのMOUNT時に実行) |
・OSコマンドやストレージ機能によるフルバックアップと比較するとパフォーマンスが劣る場合があるが、 高速増分バックアップなどの機能を使うことで処理時間が短縮できる。 |
exp/imp | 論理 | ○ | ○ | × | ・テーブル単位やスキーマ単位等、局所的なバックアップが可能 ・多数の稼動実績があるが今後非サポートになる予定 ・11g以降追加された一部のオブジェクトはサポートされていない |
expdp/impdp | 論理 | ○ | ○ | × | ・テーブル単位やスキーマ単位等、局所的なバックアップが可能 ・DBの停止中は実行できない ・今後のバージョンでexp/impから置き換わっていく予定 ・10g以降の新機能 |
※1
物理バックアップはデータベースを構成するOS上のファイルのコピー、論理バックアップはテーブルやVIEW等の定義とそのデータ内容のみの集合です。 物理バックアップはDISK障害やブロック破損等が発生した場合も復旧することができますが、論理バックアップはできません。
論理バックアップしか取得しておらず物理的な障害が発生した場合はDBの再インストールが必要になるため必ず物理バックアップを取得するようにします
※2
OS上のファイルと同じバックアップ(イメージコピー)とRMANの独自フォーマットのバックアップ(バックアップセット)があります。 バックアップセットはOSコマンドでリストアすることはできずRMANでリストアする必要があります。