バックアップの一般的な運用形態
さて、これで基本的なバックアップの区別ができました。これらには一長一短があるため、実際の運用においては、複数のバックアップ方式を組み合わせるのが普通です。前述のように常にフルバックアップを取得する「富豪」運用が可能なら話は非常に簡単になるのですが、人生の大概の局面において、問題はそんなシンプルなものではありません。さまざまな入力条件に応じて、最適解を見つける努力が必要になります。
要件とバックアップ方法の選択
バックアップの方式を選択する場合、考慮するべき要件には次のようなものがあります。
- ① どの時点の状態に復旧させる必要があるか/そもそも復旧の必要があるか
- ② バックアップに使用できる時間(バックアップウィンドウ)(注3)
- ③リカバリに使用できる時間(リカバリウィンドウ)
- ④ 何世代までのデータを残す必要があるか
バックアップって本当に必要?
①は、最も根本的な要件です。もしそもそも「データの復旧の必要なし」ということであれば、バックアップとリカバリについて考える必要がなくなるからです。そんなシステムがあるのか、と疑問に思うかもしれませんが、これはまったくない話ではありません。DWH/BI(DataWareHouse/Business Intelligence)のような情報系システムの場合、データは読み取り専用ですので、大元の基幹系システムからもう一度データを流し込めば復旧が可能です。わざわざバックアップファイルから戻す必要がないのです[4]。
また、バックアップファイルからの復旧自体は必要だとしても、特に最新の状態に戻さなくてもよい、という場合には定期的にフルバックアップだけ取得して、差分/増分のバックアップは行わない、というシンプルな運用が可能になります。
データベースの基本精神
本当にバックアップが必要か、3回自問しよう
事件は夜中に起きている
②はどのようなバックアップ方式を用いるかの選択に大きく関係する要件です。一般的に、バックアップを行えるのは、サービスを止めたメンテナンス時間帯か、データへのアクセスが少ない夜間帯(だいたいAM0~6時ぐらい)です。万が一、このウィンドウ内でバックアップが終わらなかった場合[5]、日中にユーザがアクセスする負荷とバックアップの負荷が重なることになり、リソースの食い合いが発生します。これは深刻なパフォーマンス低下を招くため、通常は、安全のためバックアップウィンドウの半分ぐらいでバックアップを終わらせることが目標になります。夜間にはバックアップ以外のさまざまなバッチ処理も実行されるので、これらの実行時間も除外すると、条件はかなり厳しくなります。
こうした厳しい時間的な制約条件から、夜間帯に差分バックアップや増分バックアップをホットバックアップで取得する、というのがOLTP系のシステム[6]では一般的です。
また、③の条件は、ちょうど②の条件の裏返しです。差分/増分バックアップは、日々のバックアップ時間を短く終わらせることができる一方、リカバリ時間は長くなります[7]。そのため、バックアップ方式の選定においてはリカバリ時のことも考える必要があります。
バックアップ媒体から見た運用形態
④の条件は、主にバックアップデータを保管しておく媒体の選定に関わります。これについては、少し詳しく見ていくことにしましょう。
バックアップの間隔と当該システムにおけるデータ更新の多さ、何世代分を残すかといった要件にも依存しますが、バックアップファイルの累積サイズはかなり大きなものになります。また安全の観点からもサービス系のシステムとは独立した媒体に保管しておく必要もあるため、バックアップ専用の記憶媒体を用意することが一般的です。
このとき、問題になるのはメディアの容量と性能です。本連載の第1回でも取り上げましたが、記憶装置の容量と性能はトレードオフ、つまりどちらか一方が良いものはもう一方が悪い、という関係にあります。そのため、ここでも開発者は「あちらを立てればこちらが立たず」のパズルを解く必要が生じます。
D2T、D2D
バックアップ媒体としてこれまで一番ポピュラーだったのは、テープです。これは3次記憶装置に分類されることからもわかるとおり、大容量のデータを保存できて信頼性が高い代わりに書き込み/読み込みの速度は低速です。そのため、バックアップとリカバリに長時間を要します。他方、最近ではディスクの大容量化と低価格化が急速に進んだことで、バックアップ媒体としてディスクを使用することも増えてきました。そのため、一般的にはこの2つが候補となります。
バックアップ対象データが格納されているディスクから直接テープへバックアップする方法をD2T(Disk to Tape)(図5)、テープの代わりにディスクへバックアップする方法をD2D(Disk to Disk)(図6)と呼びます。
D2Dのメリットは、バックアップが高速に行われることです。特にスナップショット機能を持っているディスクならば非常に高速なバックアップが可能です。
D2D2T
もっとも、ディスクを永続的なバックアップ媒体として使用することは、費用や耐久性の観点から問題がある場合も多いので、ディスクはあくまで仲介機能としてのみ使用して、最終的にテープに再コピーするD2D2Tというハイブリッド方式もあります。
これはテープとディスクの「いいとこ取り」を狙った方式です(図7)。まず、D2Dによってディスクへのコピーが終わった時点で、DBサーバと業務データの入ったディスク(D1)はバックアップ処理から解放されるため、実質的にバックアップ時間が短縮されます。後半のD2Tによるテープへのコピーは、あとでゆっくりやってもかまわないからです。また、いざ障害発生時においても、中間のディスク(D2)に最新世代のバックアップが残っているため、これを利用することで高速なリカバリが可能になるというメリットがあります。実装方式は最も複雑ですが、こうした大きなメリットが得られるため、近年、採用が増えている方式です。