データベースのフルバックアップ、差分バックアップ、増分バックアップについて

データベース バックアッププログラミング
スポンサーリンク
スポンサーリンク

データベースのバックアップの種類について

いくつか、他にも種類もあるみたいですが、今回は比較的よく出てくる3点について勉強しようと思います。

  • フルバックアップ(完全バックアップ)
  • 差分バックアップ
  • 増分バックアップ

ざっくりした特徴はこちらになります。

リストアにかかる時間保存にかかる容量耐久性
フルバックアップ×
差分バックアップ
増分バックアップ
スポンサーリンク

データベースに格納されるデータを時系列で定義しておきます。

データの中身
1月1日A
1月2日AB
1月3日ABC
スポンサーリンク

フルバックアップ

3つの中で、1番分かりやすい方法で、バックアップを取得する時点のデータを全て保存します。
1日1回、バックアップするとしたら、以下のような感じになります。

データの中身
1月1日のバックアップデータA
1月2日のバックアップデータAB
1月3日のバックアップデータABC

メリット

  • バックアップデータがそのままデータベースと一致する。
    これによって、バックアップした時点に戻したい時は、そのまま適用するだけなので短時間でリストア(復元)することができます。

デメリット

  • バックアップデータのサイズが大きいこと
    毎回、データベースのデータを全てコピーすることになるので、ストレージ容量を使います。

差分バックアップ

前回のフルバックアップから「更新されたデータ」のみを保存します。

データの中身
1月1日のフルバックアップデータA
1月2日の差分バックアップデータB
1月3日の差分バックアップデータBC

メリット

  • バックアップデータのサイズが比較的小さいこと
    増分バックアップと比較して、毎回全てのバックアップをするわけではないのでサイズが小さくて済みます。

デメリット

  • リストア(復元)に時間がかかる
    フルバックアップは、バックアップデータ1つでリストアできるのに比べて、
    差分バックアップは、フルバックアップとリストアしたい時点のデータを合わせるため、時間がかかります。

  • 定期的にフルバックアップしないとバックアップサイズが大きくなる
    フルバックアップから期間が経ってしまうと、差分バックアップのサイズが大きくなってきてしまうため、
    定期的にフルバックアップを行い、差分バックアップのサイズを減らす必要がある。

増分バックアップ

前回のバックアップと比較して、増えたデータだけ保存します。

データの中身
1月1日のフルバックアップデータA
1月2日の増分バックアップデータB
1月3日の増分バックアップデータC

メリット

  • バックアップデータのサイズが小さいこと
    増えた分のデータしか保存しないため、3種類の中で1番データが少なくて済みます。

デメリット

  • リストア(復元)に時間がかかる
    他の2種類と比較して、リストア時に使用するバックアップデータの数が多いため、時間がかかります。

  • 途中のデータが破損した場合、それ以降のデータが復元できない
    1月2日のバックアップデータが破損した場合、「B」が増えたことを保証するデータがないため、1月3日にリストアすることができない

まとめ

適切な頻度でフルバックアップをすることができる環境であれば、増分バックアップが良さそうな気がしました。

AWSのスナップショットも増分バックアップのようです。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSSnapshots.html

コメント

タイトルとURLをコピーしました