HexWolf Blog

DB学習シリーズ2: バックアップの方式

はじめに

あまり自分は自宅PCでバックアップってしないんですよね。あえて言うなら保存しておきたいデータはあまり使わない方のHDDにおいたり、Crystal DiskInfoなんてアプリを使ってHDDの寿命を確認したりとか。
壊れる前に交換するので今のところHDDやSSDクラッシュによるデータ消失はありません。間違えてデータ削除したことはありますけどね。

はてさて、前回のDB学習シリーズ1でも、顧客データが消えると新聞に載る、という話をしましたが、RAID構成の他にバックアップをすることによってデータの安全性を高めることができます。
ただ、バックアップと1口に言いましても最近はとてつもない量のデータがあるため、バックアップ1つを全部取るというのは中々時間がかかるもののようです。

そこで、バックアップは1週間を目安に色んな方式でバックアップをしています。今回も概念的な部分でありますが自分の理解のためにまとめます。

そもそもバックアップってなに?

パソコン等の端末に保存されているデータが消える前に、同じデータの複製を別の機器等に逃がす処理のことです。
バックアップをすることで万が一どこかのタイミングでデータが壊れても、バックアップデータで復旧できるという利点があります。

最近だとデフォルトでクラウドバックアップが付属していたり、暗黙的に実施していることもあるので意識することはあまり無いです。

しかし個人用途とは違い、業務用の場合データが1つ飛ぶだけでも大変な事態に発展することもままあります。それこそ金銭のやり取りでその流れが消失した瞬間大問題になるのは目に見えてますよね。

なので定期的にバックアップ、出来れば業務終了後に1回はバックアップを取り、バックアップを取る前はログ等でデータを保管し、バックアップとログを使ってデータを再現することが大事になるわけです。

フルバックアップ

読んで字のごとく全てを保存します。

フルバックアップ

利点は分かりやすいことくらいで、一週間全てでフルバックアップを取るのは時間がかかる上、長時間稼働させる関係上HDDなどが摩耗しやすいという懸念点もあります。

差分バックアップ

指定された分の前回のフルバックアップからの差分バックアップを取得したらフルバックアップを取得するという方式です。
これの利点は全てをフルバックアップしなくても良いためフルバックアップと違って時間がかからなくなります。

差分バックアップ

ただし、差分バックアップの時に壊れた場合、前回のフルバックアップと差分のバックアップを2つ適用しないと行けないため、復旧はフルバックアップより時間がかかるという欠点があります。

増分バックアップ

前回のバックアップから増えた分をバックアップとして保管していく方式です。ちょっと分かりづらいので図だと分かりやすいはずです。

増分バックアップ

利点は差分バックアップよりもさらにデータ書き込みを抑えるためバックアップ時間が早いです。
ただし、復旧を考えると壊れた時点でのその日までの増分バックアップ全てと前回のフルバックアップ全てが必要になります。

さらに万が一どこかの増分バックアップが失敗していた場合データ復旧がより困難になるという側面もあり、この3つはバックアップ時間と復旧時間のトレードオフの関係が成り立ちます。

永久増分バックアップ

バックアップ時間や復旧時間の問題があったため、データを常に増分バックアップで取得しつつ、決まった増分個数になると前回のフルバックアップと増分全てを合成してリセットするのが永久増分バックアップです。
最低限の増分個数で復旧できるため、時間がかなり短くなるのが利点です。

ただし、永久増分バックアップは対応しているソフトが限られていること、増分のマージに時間と計算能力が必要なためサーバーに負荷がかかることが上げられます。これもまたトレードオフです

まとめ

どの方式を採用するにせよ企業はもちろん個人でもデータが吹っ飛んだ時に泣かないように常に第2第3の手法をとってデータを喪失しないようにしないと行けませんね。
今回はバックアップの話のため、もしその1日でのバックアップ前に壊れた時のデータの再現方法についての記載をしませんでした。

それについてはまた次回まとめたいと思います。