😸

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

2021/11/19に公開

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

いくつか、他にも種類もあるみたいですが、今回は比較的よく出てくる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

GitHubで編集を提案

Discussion