Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
データベース管理者の業務において、堅牢なデータ保護とストレージ効率を両立させることは永続的な課題です。完全バックアップはあらゆるリカバリ戦略の基盤となりますが、大規模なSQL Serverデータベースでは数時間ごとに完全バックアップを実行することは現実的ではありません。そこで差分バックアップが重要な手段となります。
SQL Serverにおける差分バックアップは累積型です。前回の完全バックアップ以降のすべてのデータ変更を記録するため、バックアップ時間とストレージ使用量を削減できます。データベースバックアップ、部分バックアップ、ファイルバックアップ(コピーオンリーバックアップを除く)など、大半の完全バックアップが差分バックアップのベースとして利用可能です。
完全バックアップ vs 差分バックアップ vs トランザクションログバックアップの違い
SQL Serverには主に3種類のバックアップ、完全バックアップ、差分バックアップ、トランザクションログバックアップが存在します。データ保護戦略において種類の選び方と使用タイミングを理解するため、各々の定義と主な特徴を一覧にまとめます。
| 特徴 | 完全バックアップ | 差分バックアップ | トランザクションログバックアップ |
|---|---|---|---|
| 含まれるデータ | データベース全体 | 前回完全バックアップ以降の変更分 | 前回ログバックアップ以降の変更分 |
| バックアップ速度 | 最も遅い | 中程度(時間経過で増大) | 最も速い |
| リストア速度 | 最も速い | 速い(完全+1つの差分) | 最も遅い(完全+すべてのログ) |
| ファイルサイズ | 最も大きい | 中程度(増加する) | 最も小さい |
| 実行頻度 | 週次/日次 | 日次/時間次 | 分次/時間次 |
多くの管理者はGUI操作でデータベース作業を行うツールとしてSQL Server Management Studio(SSMS)を利用します。スクリプトを手書きせずガイドに沿って操作できるため、初心者に好まれます。SSMSによるバックアップ基礎の詳細ガイドはSSMSでのデータベースバックアップを参照してください。
GUIを使用して差分バックアップを実行する手順は以下の通りです。
.bakのような拡張子を指定しファイルを整理できます。
GUIによる手法は単発作業に適していますが、ワークフローの自動化や複数サーバーの管理にはTransact‑SQLがより柔軟です。
GUIは単発のバックアップに有効ですが、データベース技術者の中にはTransact‑SQL(T‑SQL)でバックアップを作成することを好む方もいます。SQL Server差分バックアップ専用スクリプトを使用することで、より精密かつ高速にワークフローを実行可能です。
以下は本番環境で利用可能な標準スクリプトです。自身のSQL Server環境とバックアップ要件に合わせてコピーし修正して使用してください。
-- 前提:事前にデータベースの有効な完全バックアップが存在すること
-- 注記:環境に合わせデータベース名とバックアップパスを変更してください
BACKUP DATABASE [YourDatabaseName]
TO DISK = N'C:\Backups\YourDatabaseName_Diff.bak'
WITH
DIFFERENTIAL,
NAME = N'YourDatabaseName‑Differential Backup',
COMPRESSION,
STATS = 10,
DESCRIPTION = N'前回正常完了した完全バックアップ以降の累積データ変更';
GO
T‑SQLはエンタープライズ規模の管理に必要な柔軟性を提供します。さらに高度な自動化でプロセスを簡素化したい場合、専用ツールがより効率的な手段となります。
手動操作やT‑SQLスクリプトはデータベース保護の基礎となりますが、企業環境で複数のインスタンスを横断して管理すると作業が複雑になります。ワークフローを簡略化しデータセキュリティを高めたい管理者向けに、i2Backupは従来のバックアップスクリプトに代わるプロフェッショナルソリューションです。
単一の物理サーバーから複雑なクラウド環境まで、i2Backupのような自動化ソリューションは現代の企業データ保護に必要な高い拡張性とセキュリティを提供します。
バックアップ作成は作業の半分に過ぎず、最終的な目的は正常なリカバリです。SQL Server差分バックアップのリストアには「2つのファイルのルール」があります。差分バックアップは累積型のため、データベースを復旧させるにはベースの完全バックアップと最新の差分ファイルの2つだけをリストアすればよいです。
各手法を見る前に重要なルールがあります。NORECOVERY状態です。最初の完全バックアップをリストアする際、後続の差分データを適用できるようデータベースを「リストア中」の状態に維持する必要があります。
前述の3つの手法によるリストア手順を説明します。
SSMSはバックアップ履歴を自動的に読み取りリストアチェーンを組み立てるため、作業が非常にスムーズです。
スクリプトを使用する環境では、T‑SQLによる手動リストアで完全な制御が可能です。コマンドを順次実行します。
-- データベースが消失した状況を想定、完全バックアップをNORECOVERYでリストアし
-- 後続リストア操作を受け付けられるようにする
RESTORE DATABASE [YourDatabaseName]
FROM YourDatabaseName_1
WITH NORECOVERY;
GO
-- 次に差分バックアップをリストア
RESTORE DATABASE [YourDatabaseName]
FROM YourDatabaseName_1
WITH FILE = 2,
RECOVERY;
GO
手動のリストア手法も有効ですが、i2Backupのようなエンタープライズ向けソリューションは複雑なリカバリシナリオに対する追加の柔軟性を備えています。リストアに必要な手順のシーケンスを自動化し、多様なデータ保護ニーズに対応する専用機能を提供します。
i2Backupは下記の機能によりリストアプロセスを強化します。
RESTORE HEADERONLYで完全バックアップの成功を検証します。基幹データベースではポイントインタイムリカバリのためトランザクションログバックアップと組み合わせてください。COMPRESSIONパラメータを追加します。圧縮レベルとリストア速度のバランスを取り、重複排除ストレージを併用するとさらに効率が向上します。SQL Server差分バックアップの作成は、データ安全性とストレージ効率を両立させたいDBAやIT技術者にとって重要な工程です。前回の完全バックアップ以降の変更分だけを取得することで、バックアップ時間を大幅に短縮し、リストアプロセスも簡素化できます。
最後の注意点として、ベースとなる完全バックアップが正常であることを確認し、バックアップを定期的に検証し、.bakのような分かりやすい拡張子を使用しファイルを整理してください。
最良のバックアップ戦略とは、検証済みで自動化され、必要なときに確実に動作するものです。現在のインフラに適した手法から始め、データ量の増加に合わせてツールも進化させましょう。