SQL Server のバックアップの種類
SQL Server のバックアップの種類
SQL Server のバックアップのタイプは何種類かありますが、ここではメンテナンスプランでよく見かける代表的な 3 つのタイプと、緊急時のリカバリする際に必要になってくるテイルログバックアップについて、細かいことは抜きにして概要を理解したいと思います。
フル(完全)バックアップ (full backup)
その名の通り完全なデータベースのバックアップで、データベースの全てのデータ、ファイルグループやファイル、データベースをリカーバーするのに十分なログが含まれています。
フルバックアップをリストアすることで、バックアップが終了した時点のデータベースの状態に復元することができます。
これさえあれば、バックアップを取った状態に復元できるのが利点ですが、マイナス点としてはバックアップを取るのに時間がかかることや、バックアップファイルのサイズが大きいことがあげられます。
差分バックアップ (differential backup)
差分バックアップには、一番最近のフルバックアップからの変更のみが含まれています。
差分バックアップを何度とっても、一番最近のフルバックアップからの変更が含まれますので、最新の状態にリストアする際には、一番最近にとった差分バックアップだけを使います。
差分バックアップの良い点は、バックアップをとるのに時間がかからず、ファイルのサイズも小さいことですが、一番最近フルバックアップから時間が経って変更点が多くなると、時間もかかりファイルサイズも大きくなってしまいます。
リストアする際には一番最新のフルバックアップも必要です。 フルバックアップをリストアしてから、差分バックアップをリストアします。
差分バックアップがあれば、リストアしなければならないトランザクションログバックアップの数を減らすことができます。
トランザクションログバックアップ (transaction log backup)
※ FULL ・ BULK_LOGGED リカバリーモデルのみ
まず、トランザクションログとは、全てのトランザクションと、トランザクションによるデータベースの変更のログのことです。
トランザクションログバックアップには、差分バックアップと違って、前回トランザクションログバックアップをとった時以降のトランザクションログレコードのみが含まれます。
トランザクションログバックアップがあれば、特定のポイントまでリストアすることができますが、前回のフルバックアップ(あれば差分バックアップ)と、その特定のポイントまでの一連のログバックアップファイルが全て必要になります。
特定の状況を除いて、トランザクションログをバックアップすると不要なログが切り捨てされます(ログファイルのサイズが小さくなる訳ではありません)。
テイルログバックアップ (tail-log backup)
※ FULL ・ BULK_LOGGED リカバリーモデルのみ
テイルログバックアップには、その時点でバックアップされていなかったトランザクションログが含まれます。
このバックアップはメンテナンスでとるようなものではなく、何か問題が起こって、問題が起こるできるだけ直前の最新の状態までリカバリーしたい時などに、リストアの前にこのテイルログバックアップをとっておいて、最新のトランザクションログまでリストアした最後にこのテイルログバックアップをリストアします。