😸
データベースのフルバックアップ、差分バックアップ、増分バックアップについて
データベースのバックアップの種類について
いくつか、他にも種類もあるみたいですが、今回は比較的よく出てくる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
Discussion