フル・差分・増分バックアップの違いとは
フルは
フル・差分・増分バックアップの違いは、何からの変化を取るか
フルバックアップは、対象のデータをすべて取ります。差分バックアップは前回のフルからの変化を取り、増分バックアップは前回のバックアップからの変化を取ります。
この基準点の違いで、取る時間と容量、そして復元に使うバックアップの数が変わります。毎晩の作業を短く済ませたいか、故障のときに早く戻したいかで、選ぶ方式が変わります。日曜にフルを取る1週間の例で、3つの方式を比べます。
フルバックアップとは、対象のデータをすべて取る方式
フルバックアップは、選んだディスクやフォルダのファイルを、毎回すべて取る方式です。1回分の中にすべてがそろうので、復元はそのバックアップ1つで済みます。特定のファイルを探すのも簡単です。
その代わり、取るのに時間がかかります。システムのファイルのように変わらないものも毎回取るため、何世代も残すと保存先の容量を大きく使います。そこで、ふだんは変わった部分だけを取る差分や増分と組み合わせます。
増分バックアップとは、前回のバックアップからの変化だけを取る方式
増分バックアップは、前回のバックアップの後に作られたファイルと、変わったファイルだけを取る方式です。前回がフルでも増分でも、直前のバックアップが基準になります。
日曜にフルを取り、月曜から毎晩増分を取るとします。月曜の増分には月曜の変化だけが、火曜の増分には火曜の変化だけが入ります。1回に取る量が最も少ないので、時間も容量も節約できます。
復元するときは、日曜のフルに、月曜からの増分を順にすべて重ねます。途中の1本が壊れていると、その日の変化が欠けるため、それ以降の状態には正しく戻せません。
差分バックアップとは、前回のフルからの変化を毎回まとめて取る方式
差分バックアップは、前回のフルバックアップの後に作られたファイルと、変わったファイルを取る方式です。次のフルを取るまで、基準は同じフルのままです。
日曜にフルを取ると、月曜の差分には月曜の変化が入ります。火曜の差分には月曜と火曜の変化が、水曜の差分には月曜から水曜までの変化が入ります。前に取った変化も毎回取り直すので、日を追うごとに取る量と時間が増えます。
復元するときは、日曜のフルに最新の差分1つを重ねるだけです。使うバックアップは2つで、増分より手順が少なくて済みます。
取る時間・容量と、復元に必要なものの比較
3つの方式は、取るときの軽さと、戻すときの手間が逆になります。増分は取るのが最も軽く、戻すときに使う本数が最も多くなります。
| 観点 | フル | 差分 | 増分 |
|---|---|---|---|
| 取る範囲 | すべて | 前回のフル | 前回の |
| 取る時間・ | 最も多い | 日を追う | 最も少ない |
| 復元に | 最新の | フルと | フルと |
| 1つ壊れた | 前の世代の | 前の日の | 壊れた日 |
どれを選ぶかは、戻すまでに許される時間と、取るのに使える時間・容量で決めます。戻すまでの目標時間であるRTOの考え方は、BCPとDRの記事で説明しています。NISTの手引きは、週末にフルを取り、毎晩差分を取る組み合わせを例に挙げています。
故障した曜日を選んで、復元に必要なバックアップを確かめる
次の図で取り方と故障した曜日を選ぶと、曜日ごとに取る量と、復元に使うバックアップが切り替わります。データ全体は100GBで、月曜から土曜までは毎日、前の日とは別の10GBが書き換わるとします。
バックアップの取り方
何曜のバックアップの後に故障したか
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル使う月曜:フル、100GB、復元に使う。
- 火-故障後火曜:故障の後なので取っていない。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル-月曜:フル、100GB、復元に使わない。
- 火100フル使う火曜:フル、100GB、復元に使う。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル-月曜:フル、100GB、復元に使わない。
- 火100フル-火曜:フル、100GB、復元に使わない。
- 水100フル使う水曜:フル、100GB、復元に使う。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル-月曜:フル、100GB、復元に使わない。
- 火100フル-火曜:フル、100GB、復元に使わない。
- 水100フル-水曜:フル、100GB、復元に使わない。
- 木100フル使う木曜:フル、100GB、復元に使う。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル-月曜:フル、100GB、復元に使わない。
- 火100フル-火曜:フル、100GB、復元に使わない。
- 水100フル-水曜:フル、100GB、復元に使わない。
- 木100フル-木曜:フル、100GB、復元に使わない。
- 金100フル使う金曜:フル、100GB、復元に使う。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル-日曜:フル、100GB、復元に使わない。
- 月100フル-月曜:フル、100GB、復元に使わない。
- 火100フル-火曜:フル、100GB、復元に使わない。
- 水100フル-水曜:フル、100GB、復元に使わない。
- 木100フル-木曜:フル、100GB、復元に使わない。
- 金100フル-金曜:フル、100GB、復元に使わない。
- 土100フル使う土曜:フル、100GB、復元に使う。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火-故障後火曜:故障の後なので取っていない。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火10増分使う火曜:増分、10GB、復元に使う。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火10増分使う火曜:増分、10GB、復元に使う。
- 水10増分使う水曜:増分、10GB、復元に使う。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火10増分使う火曜:増分、10GB、復元に使う。
- 水10増分使う水曜:増分、10GB、復元に使う。
- 木10増分使う木曜:増分、10GB、復元に使う。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火10増分使う火曜:増分、10GB、復元に使う。
- 水10増分使う水曜:増分、10GB、復元に使う。
- 木10増分使う木曜:増分、10GB、復元に使う。
- 金10増分使う金曜:増分、10GB、復元に使う。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10増分使う月曜:増分、10GB、復元に使う。
- 火10増分使う火曜:増分、10GB、復元に使う。
- 水10増分使う水曜:増分、10GB、復元に使う。
- 木10増分使う木曜:増分、10GB、復元に使う。
- 金10増分使う金曜:増分、10GB、復元に使う。
- 土10増分使う土曜:増分、10GB、復元に使う。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分使う月曜:差分、10GB、復元に使う。
- 火-故障後火曜:故障の後なので取っていない。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分-月曜:差分、10GB、復元に使わない。
- 火20差分使う火曜:差分、20GB、復元に使う。
- 水-故障後水曜:故障の後なので取っていない。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分-月曜:差分、10GB、復元に使わない。
- 火20差分-火曜:差分、20GB、復元に使わない。
- 水30差分使う水曜:差分、30GB、復元に使う。
- 木-故障後木曜:故障の後なので取っていない。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分-月曜:差分、10GB、復元に使わない。
- 火20差分-火曜:差分、20GB、復元に使わない。
- 水30差分-水曜:差分、30GB、復元に使わない。
- 木40差分使う木曜:差分、40GB、復元に使う。
- 金-故障後金曜:故障の後なので取っていない。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分-月曜:差分、10GB、復元に使わない。
- 火20差分-火曜:差分、20GB、復元に使わない。
- 水30差分-水曜:差分、30GB、復元に使わない。
- 木40差分-木曜:差分、40GB、復元に使わない。
- 金50差分使う金曜:差分、50GB、復元に使う。
- 土-故障後土曜:故障の後なので取っていない。
復元に
この
- 日100フル使う日曜:フル、100GB、復元に使う。
- 月10差分-月曜:差分、10GB、復元に使わない。
- 火20差分-火曜:差分、20GB、復元に使わない。
- 水30差分-水曜:差分、30GB、復元に使わない。
- 木40差分-木曜:差分、40GB、復元に使わない。
- 金50差分-金曜:差分、50GB、復元に使わない。
- 土60差分使う土曜:差分、60GB、復元に使う。
復元に
この
増分と差分では、この例で戻すデータの量は同じです。違うのは使う本数で、増分は故障した曜日が遅いほど本数が増えます。差分は本数が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の記事で説明しています。
参考にした資料
- NIST SP 800-34 Rev.1「Contingency Planning Guide for Federal Information Systems」(5.1.2 フル・増分・差分の定義と、復元に使う媒体)
- US-CERT「Data Backup Options」(3-2-1ルール。2012年)
- PostgreSQL 17 Documentation「Continuous Archiving and Point-in-Time Recovery (PITR)」(WALによる復元、増分バックアップとpg_combinebackup)
- AWS「What is AWS Backup?」と「Backup creation by resource type」(増分バックアップと、古いフルを消した後の復元)
- AWS「Locking objects with Object Lock」(WORM)と「AWS Backup Vault Lock」(保存期間が終わるまで削除できないバックアップ)
練習問題(全6問)
正解:前回の
増分バックアップは、
正解:日曜の
木曜の
正解:4本
日曜の
正解:差分バックアップ
差分バックアップは、
正解:データを
3-2-1ルールは、
正解:
RAID1や
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
セキュリティとデータベースは、基本情報技術者試験の対策本でまとめて学べます。

