Oracleのバックアップ 論理バックアップと物理バックアップ

万が一の備え、Oracleのバックアップは非常に重要です。ここではOracleのバックアップの概要をみていきます。

Oracleのバックアップは2種類あります。

  • データをバックアップする・・・論理バックアップ
  • ファイルをバックアップする・・・物理バックアップ

このバックアップについて解説します。

Oracleの論理バックアップ

「データをバックアップする」とはデータのみを引っこ抜くバックアップです。これを論理バックアップといいます。

expdp,impdpを使ってデータを抽出します。

しかしバックアップした時点までしか復旧できないことと、時間がかかるというデメリットがあるため、論理バックアップは正規のバックアップとしては向きません。

テストで使うときなど、それほど重要ではない時のバックアップとして論理バックアップは使います。

参照→Oracleのバックアップ(エクスポート・インポート)

Oracleの物理バックアップ

「ファイルをバックアップする」はファイルをコピーします。これを物理バックアップといいます。

ファイルコピーするだけなので簡単ですね。

Oracleのバックアップはこの物理バックアップが適しています。バックアップの対象ファイルは下記です。

  • 初期化パラメータファイル(init.ora)
  • 制御ファイル(***.ctl)
  • データファイル(***.dbf)
  • REDOログファイル(***.log)

物理バックアップにはオンラインとオフラインの2種類あります。

オフライン、オンラインという名前の通り、Oracle起動中にバックアップをとるか(オンライン)、停止中にバックアップをとるか(オフライン)の違いです。

オフラインバックアップをコールドバックアップ、オンラインバックアップをホットバックアップといったりもします。

  • 稼働中のバックアップ →オンラインバックアップ、ホットバックアップ
  • 停止中のバックアップ →オフラインバックアップ、コールドバックアップ

24時間稼動していて停止することができないシステムではオンラインバックアップの1択ですが、停止可能なシステムではオンラインだけでなくオフラインバックアップも可能です。

では、ここではオフラインバックアップの手順をとりあげます。

1.Oracleを停止する

オフラインのバックアップはまずOracleを停止します。夜間など一時停止可能な時間にOracleを停止します。

2.ファイルのバックアップ

Oracle停止中に下記ファイルのバックアップをとります。

  • 初期化パラメータファイル(init.ora)
  • 制御ファイル(***.ctl)
  • データファイル(***.dbf)
  • REDOログファイル(***.log)

ファイルのバックアップはCドライブのファイルをDドライブへコピーするような同じハード上でのバックアップはあまり得策ではありません。テープや別のストレージにコピーするのがよいです。また、夜間に人がコピーするわけにはいかないので、バッチで自動ファイルコピーをする運用にしておきます。

3.Oracleを起動する

バックアップが完了したら、Oracleを起動します。これでオフラインのバックアップは完了です。要するに、

オフラインバックアップはOracleを停止してファイルコピーする

これだけです。アーカイブログモードになっていれば、このファイルさえあれば障害が発生しても障害直前まで復旧することができます。基本的にバックアップは毎日やることをおすすめします。

バックアップのまとめ

バックアップの考え方として、システム停止できるなら「オフラインバックアップ」、できないなら「オンラインバックアップ」です。

データをバックアップするexpdp,impdpはテスト・検証環境で使用するなど、一時的なバックアップとして使う方がよいです。

以上、Oracleのバックアップ 論理バックアップと物理バックアップの解説でした。