Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
1つの誤ったクエリで重要なデータが瞬時に消去される可能性があります。SQL Serverの特定時点リカバリを活用すれば、ミスが発生する直前の時刻にデータベースを正確に復元可能で、余分なデータ損失を防げます。
本ガイドでは、バックアップ復元から目標とする正確なタイムスタンプの指定まで、完全なリカバリ手順を解説します。
SQL Serverの特定時点リカバリは、秒単位の任意のタイムスタンプまでデータベースを復旧する復元手法です。
完全バックアップを基底とし、オプションの差分バックアップで復元範囲を縮小、最後にトランザクションログバックアップを順次再生する仕組みで動作します。鍵となるのがトランザクションログ(T-log)で、データベースに対するすべての変更履歴を記録することで、高精度な時点指定復元を実現します。
本機能を利用するには、データベースを完全復旧モデルで運用する必要があります。このモデルによりトランザクションログが常時保存され、復元処理に活用できる状態が保たれます。
任意の時点へデータベースを復元するには、厳格な順序で作業を実施する必要があります。作業開始前にテールログバックアップを取得し、まだバックアップされていない最新のログ変更を保存することで最新データの損失を回避します。
BACKUP LOG YourDatabase
TO DISK = 'C:\Backups\YourDatabase_taillog.bak'
WITH NORECOVERY;
復元目標時刻より前に作成された最新の完全バックアップを最初に復元し、以降の復元処理の基底とします。
RESTORE DATABASE YourDatabase
FROM DISK = 'C:\Backups\YourDatabase_full.bak'
WITH NORECOVERY;
NORECOVERYオプションを指定し、データベースを復元中状態に維持するRECOVERYは使用しないでください。データベースがオンライン状態になり、復元シーケンスを最初からやり直す必要が生じます。完全バックアップと復元目標時刻の間に差分バックアップが存在する場合は、続けて適用します。
RESTORE DATABASE YourDatabase
FROM DISK = 'C:\Backups\YourDatabase_diff.bak'
WITH NORECOVERY;
NORECOVERYを指定するトランザクションログバックアップは作成された順番通りにすべて適用します。
RESTORE LOG YourDatabase
FROM DISK = 'C:\Backups\YourDatabase_log1.bak'
WITH NORECOVERY;
RESTORE LOG YourDatabase
FROM DISK = 'C:\Backups\YourDatabase_log2.bak'
WITH NORECOVERY;
NORECOVERYを指定する最後のログファイルに対する復元処理では、STOPATパラメータに目標とする正確なタイムスタンプを設定します。
RESTORE LOG YourDatabase
FROM DISK = 'C:\Backups\YourDatabase_log3.bak'
WITH RECOVERY, STOPAT = '2026-03-15T10:05:29';
STOPATには障害発生直前の時刻を指定します。例:10時05分30秒にトラブルが発生した場合は10時05分29秒を設定NORECOVERYからRECOVERYに切り替え、データベースをオンライン状態に復帰させる安定した復旧は偶然ではなく、障害発生前に確立された堅牢なバックアップ戦略に依存します。順守すべき主要な運用ルールを記載します。
ログバックアップの間隔が、最悪時のデータ損失量を直接決定します。15分以内を目安に実施し、大半の本番環境で1日1回のバックアップでは不十分です。
検証されていないバックアップファイルは信頼できません。専用のテスト環境で一連の復元作業を実施し、ファイルの正当性とチームが手順を把握できるか確認します。
データベース障害対応時に、どのログファイルがどの時間帯のデータをカバーするか推測する手間をなくすため、すべてのバックアップファイル名に日時を含めます。例:YourDB_log_20260315_1015.bak
上記の手動手順でも復元は可能ですが、複数のデータベースやサーバーのバックアップ系列を管理すると運用負荷が大幅に増加します。緊急時にログの適用順番を間違えたりテールログバックアップを忘れたりする人的ミスのリスクも高まります。i2Backupはこの一連のフローを自動化し、人的エラーの要因を低減します。
大規模なSQL Server環境を管理するチームにとって、i2Backupは特定時点リカバリに伴う手作業の負担を大幅に削減し、本来の業務に集中できる環境を提供します。
Q1:バックアップと特定時点リカバリの違いは何ですか?
A:バックアップは特定瞬間のデータベーススナップショットのことです。特定時点リカバリは、バックアップとトランザクションログを組み合わせ、バックアップ取得時以外の任意のタイムスタンプまでデータを復元するプロセスを指します。
Q2:SQLの3種類の主要バックアップとは?
A:完全バックアップ、差分バックアップ、トランザクションログバックアップの3種類です。完全バックアップはデータベース全体を保存し、差分バックアップは前回完全バックアップ後の変更分のみを記録、トランザクションログバックアップは個々の処理履歴を保存し特定時点リカバリを実現する基盤となります。
Q3:SQL Serverの「復元中」とはどういう状態ですか?
A:データベースがトランザクションログを適用しており、ユーザーが利用できない状態を指します。復元処理中の正常な状態であり、すべてのログ適用後にRECOVERY付き復元コマンドを実行するとデータベースがオンラインになります。
Q4:すべてのトランザクションログバックアップを復元する必要がありますか?
A:はい、順番通りにすべて適用する必要があります。1つでもファイルを飛ばすと復元連鎖が途切れ、目標時点まで復旧できなくなります。
Q5:SQL Serverデータベースをどれくらい過去まで復元可能ですか?
A:バックアップファイルの保存期間に依存します。復元したい過去時点まで連続した完全・差分・ログバックアップの系列が存在する限り、その時間範囲内の任意の時点に復旧できます。
Q6:RECOVERYを早い段階で使用したらどうなりますか?
A:データベースが即時オンラインになり、復元シーケンスが強制終了します。それ以降のトランザクションログを適用できなくなるため、目標時点に達していない場合は完全バックアップから復元作業をやり直す必要があります。
SQL Serverの特定時点リカバリはDBAにとって最も重要なツールの1つです。誤ったクエリ、意図しないデータ削除、予期せぬシステムクラッシュなどのトラブル発生時に、必要以上のデータ損失なく正確にデータを回復する手段を提供します。
復元の流れは4段階に整理できます:完全バックアップを復元、差分バックアップが存在する場合は適用、トランザクションログを順次再生、STOPATで目標時点を指定。正しく実施すれば制御された予測可能な復旧処理となります。
複数のデータベースを管理し手動作業のリスクを低減したい場合は、i2Backupのようなツールで大半の工程を自動化可能です。復旧作業の手間を削減し、本来の業務にリソースを集中させられます。