ITの教科書検索
入門読了 約10分

フル・差分・増分バックアップの違いとは

フルはすべて、差分は前回のフルから、増分は前回のバックアップからの変化を取ります。復元に使う本数と取る時間・容量の違い、世代管理と3-2-1ルールが分かります。

目次
  1. フル・差分・増分の違い
  2. フルバックアップとは
  3. 増分バックアップとは
  4. 差分バックアップとは
  5. 時間・容量・復元の比較
  6. 曜日ごとの復元を確かめる
  7. 世代管理と3-2-1ルール
  8. データベースのバックアップとログ
  9. 練習問題

フル・差分・増分バックアップの違いは、何からの変化を取るか

フルバックアップは、対象のデータをすべて取ります。差分バックアップは前回のフルからの変化を取り、増分バックアップは前回のバックアップからの変化を取ります。

この基準点の違いで、取る時間と容量、そして復元に使うバックアップの数が変わります。毎晩の作業を短く済ませたいか、故障のときに早く戻したいかで、選ぶ方式が変わります。日曜にフルを取る1週間の例で、3つの方式を比べます。

フルバックアップとは、対象のデータをすべて取る方式

フルバックアップは、選んだディスクやフォルダのファイルを、毎回すべて取る方式です。1回分の中にすべてがそろうので、復元はそのバックアップ1つで済みます。特定のファイルを探すのも簡単です。

その代わり、取るのに時間がかかります。システムのファイルのように変わらないものも毎回取るため、何世代も残すと保存先の容量を大きく使います。そこで、ふだんは変わった部分だけを取る差分や増分と組み合わせます。

増分バックアップとは、前回のバックアップからの変化だけを取る方式

増分バックアップは、前回のバックアップの後に作られたファイルと、変わったファイルだけを取る方式です。前回がフルでも増分でも、直前のバックアップが基準になります。

日曜にフルを取り、月曜から毎晩増分を取るとします。月曜の増分には月曜の変化だけが、火曜の増分には火曜の変化だけが入ります。1回に取る量が最も少ないので、時間も容量も節約できます。

復元するときは、日曜のフルに、月曜からの増分を順にすべて重ねます。途中の1本が壊れていると、その日の変化が欠けるため、それ以降の状態には正しく戻せません。

差分バックアップとは、前回のフルからの変化を毎回まとめて取る方式

差分バックアップは、前回のフルバックアップの後に作られたファイルと、変わったファイルを取る方式です。次のフルを取るまで、基準は同じフルのままです。

日曜にフルを取ると、月曜の差分には月曜の変化が入ります。火曜の差分には月曜と火曜の変化が、水曜の差分には月曜から水曜までの変化が入ります。前に取った変化も毎回取り直すので、日を追うごとに取る量と時間が増えます。

復元するときは、日曜のフルに最新の差分1つを重ねるだけです。使うバックアップは2つで、増分より手順が少なくて済みます。

日月火水木増分基準:前回差分基準:前回のフルフルフル月の分火の分水の分木の分月まで火まで水まで木まで日月火水木増分(基準:前回)差分(基準:前回のフル)フルフル月の分火の分水の分木の分月まで火まで水まで木まで
どちらも日曜にフルを取ります。帯の幅は、そのバックアップに入る変更の日数です。増分は前回のバックアップからの1日分だけを取り、差分は日曜のフルからの変化を毎回まとめて取ります。

取る時間・容量と、復元に必要なものの比較

3つの方式は、取るときの軽さと、戻すときの手間が逆になります。増分は取るのが最も軽く、戻すときに使う本数が最も多くなります。

フル・差分・増分バックアップの比較(日曜にフル、ほかの日に差分か増分を取る場合。取る範囲・時間・復元に使うものはNIST SP 800-34 Rev.1 5.1.2に基づく)
観点フル差分増分
取る範囲すべて前回のフルからの変化前回のバックアップからの変化
取る時間・容量最も多い日を追うごとに増える最も少ない
復元に使うもの最新のフル1つフルと最新の差分フルとその後の増分すべて
1つ壊れたときの影響前の世代のフルに戻る前の日の差分で戻せる壊れた日以降に戻せない

どれを選ぶかは、戻すまでに許される時間と、取るのに使える時間・容量で決めます。戻すまでの目標時間であるRTOの考え方は、BCPとDRの記事で説明しています。NISTの手引きは、週末にフルを取り、毎晩差分を取る組み合わせを例に挙げています。

故障した曜日を選んで、復元に必要なバックアップを確かめる

次の図で取り方と故障した曜日を選ぶと、曜日ごとに取る量と、復元に使うバックアップが切り替わります。データ全体は100GBで、月曜から土曜までは毎日、前の日とは別の10GBが書き換わるとします。

バックアップの取り方

何曜のバックアップの後に故障したか

日曜フル+増分で、木曜のバックアップの後に故障した場合
  1. 日100フル使う日曜:フル、100GB、復元に使う。
  2. 月10増分使う月曜:増分、10GB、復元に使う。
  3. 火10増分使う火曜:増分、10GB、復元に使う。
  4. 水10増分使う水曜:増分、10GB、復元に使う。
  5. 木10増分使う木曜:増分、10GB、復元に使う。
  6. 金-故障後金曜:故障の後なので取っていない。
  7. 土-故障後土曜:故障の後なので取っていない。
数字は、その曜日に取る量(GB)です。

復元に使うもの:日曜のフルに、月曜から木曜までの増分4本を順に重ねます。合わせて5本です。
この取り方で1週間に取る量は、合計160GBです。

増分と差分では、この例で戻すデータの量は同じです。違うのは使う本数で、増分は故障した曜日が遅いほど本数が増えます。差分は本数が2本のままですが、1週間に取る量は増分より多くなります。

世代管理とは、過去の複数回分のバックアップを残しておくこと

世代管理は、最新の1回分だけでなく、過去の何回分かのバックアップを残しておく運用です。残す回数を世代と数え、例えば毎日取って7世代残せば、1週間前まで戻れます。

最新の1回分だけでは足りない場面があります。ファイルの破損や誤った削除に数日後に気づくと、最新のバックアップにも壊れた状態が入っているからです。気づくまでの日数より長く残しておけば、壊れる前の世代に戻せます。

増分を使うときは、古い世代を消す順番に注意が必要です。古いフルを消すと、それを基準にした増分も戻せなくなるからです。ただし製品によっては、AWS Backupのように、古いフルを消しても復元に必要なデータを残す仕組みがあります。

3-2-1ルールで、バックアップを別の場所と媒体に分ける

3-2-1ルールは、バックアップの持ち方の目安です。米国のUS-CERTの資料では、次のように説明しています。

  • 3:大事なファイルを3つ持つ。元のデータが1つ、バックアップが2つ
  • 2:2種類の異なる媒体に置き、種類の違う災害に備える
  • 1:1つは建物の外など、別の場所に保管する

同じ部屋に全部を置くと、火災や水害で元のデータとバックアップを同時に失います。社内のNASをバックアップの置き場にする場合も同じで、NASの仕組みはNASとSANの記事にまとめました。3-2-1ルールは、ランサムウェアへの対策としても勧められています。ランサムウェアの動きは、マルウェアの種類の記事で見られます。

一度書いたデータを、決めた期間は上書きも削除もできなくする保存の仕方があります。これをWORM(Write Once Read Many)と呼び、Amazon S3のObject Lockはこの方式を使います。このように変更できない状態で保管するバックアップを、イミュータブルバックアップと呼びます。AWS BackupのVault Lockを使うと、保管庫のバックアップは保存期間が終わるまで削除できません。

RAIDは、バックアップの代わりにならない

RAIDは、複数のディスクを組み合わせて1台のように使う仕組みです。RAID1やRAID5なら、ディスクが1台壊れても動き続けられます。RAIDが備えるのは、ディスクの故障です。

誤った削除やランサムウェアによる暗号化も、ふつうの書き込みとしてRAIDに書かれます。RAIDは書き込む前の状態を残さないので、消したファイルや暗号化されたファイルを、RAIDだけでは前の状態に戻せません。

データベースは、バックアップとログを組み合わせて障害直前まで戻す

ファイルのバックアップだけでは、最後に取った時点までしか戻せません。データベースは、データの変更をログに記録しています。バックアップを戻した後にログの変更を再現すれば、障害の直前まで戻せます。この処理がロールフォワードです。トランザクションとACID特性の記事の障害回復の節でも説明しています。ディスクが壊れたときに、どのトランザクションを再現するかは障害回復の記事で確かめられます。

PostgreSQLでは、データファイルのバックアップと、WALと呼ぶログのファイルを組み合わせます。ログを途中で止めて再現すれば、ベースのバックアップ以降の好きな時点に戻せます。火曜の夕方に誤ってテーブルを消し、水曜の昼に気づいても、消す直前の状態に戻せます。

PostgreSQL 17からは、増分バックアップも取れます。表のデータのファイルは、前のバックアップから変わったブロックだけを取ります。戻すときは、フルとその後の増分をpg_combinebackupでまとめ、1つのフルの形にしてから使います。このようにまとめたものを、合成フルバックアップと呼びます。

クラウドでは、バックアップをサービスに任せることもできます。AWS Backupは、AWSの複数のサービスのバックアップを1か所で管理し、自動で取るサービスです。AWSのデータベースの自動バックアップはRDSの記事で、EBSのスナップショットはEBSとEFSの記事で説明しています。

参考にした資料

練習問題(全6問)

Q1増分バックアップが取るデータとして正しいものはどれ?
Q2日曜にフル、月〜土の毎晩に差分を取っています。木曜のバックアップの後に故障しました。復元に使うものはどれ?
Q3日曜にフル、月〜土の毎晩に増分を取っています。水曜のバックアップの後に故障しました。復元に使うバックアップは全部で何本?
Q4次のフルバックアップまで、日を追うごとに1回あたりの取得時間が長くなる方式はどれ?
Q5バックアップの3-2-1ルールの説明として正しいものはどれ?
Q6ディスクをRAIDにしていても、別にバックアップが必要な理由として最も適切なものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

セキュリティとデータベースは、基本情報技術者試験の対策本でまとめて学べます。

目的別の本の選び方を見る

データベースの記事を続けて読む

データベース 全36本中32本目