SQL Server ログ バックアップと差分バックアップの比較

SQL Server の完全バックアップ(オンラインでのフル バックアップ)では、データベースを丸ごとバックアップする必要があるので、データベースのサイズが大きい場合には、バックアップに時間がかかってしまいます。そこで、バックアップ時間を短縮するための機能として、「ログ バックアップ」と「差分バックアップ」の 2種類のバックアップが用意されています。


ログ バックアップトランザクション ログ バックアップ)は、前回のログ バックアップ以降の増分情報のみをバックアップできる機能です。これにより、バックアップにかかる時間を短縮することができます。

ログ バックアップ定期的に取得している場合は、この図のように、リストア時は、完全バックアップをリストアした後に、その後のすべてのログ バックアップをリストアすることで、最新の状態まで復元することができます。また、ログ バックアップ時には、トランザクション ログ内の不要になった領域が切り捨てられるので、トランザクション ログの肥大化を防ぐ効果もあります。


差分バックアップは、前回の完全バックアップ以降の差分情報のみをバックアップできる機能です。これにより、バックアップにかかる時間を(完全バックアップを実行するよりも)短縮することができます。

この図のように、差分バックアップは、実行のたびに、完全バックアップ以降の差分情報をすべてバックアップしていくので、ログ バックアップよりもバックアップ時間がかかります。この反面、差分バックアップでは、リストア時間をログ バックアップよりも短縮することができます。
このように、差分バックアップとログ バックアップには、一長一短があるので、次のように組み合わせて利用すると、それぞれの長所を活かせるようになります。

このように組み合わせると、バックアップ時間もリストア時間も短縮できるようになります。たとえば、日中のトランザクションが多く発生する時間帯は、バックアップ時間が短くて済むログ バックアップのみを実行し、1日の終わりなどに差分バックアップを取得、そして 1週間に 1回完全バックアップを取得、という形で利用して、バックアップ時間を短縮するこことができます。
また、リストア時は、完全バックアップと差分バックアップを復元した後に、差分バックアップ以降のログ バックアップのみを復元するだけで済むので、リストア時間を短縮することもできます。