SQL Serverのバックアップと復旧


はじめに

SQL Serverのバックアップと復旧のクエリでの実行方法。

バックアップ

完全バックアップ.
BACKUP DATABASE [DB名] TO DISK = 'ファイルパス'
差分バックアップ(前回の完全バックアップ以降の差分情報のみをバックアップする機能).
BACKUP DATABASE [DB名] TO DISK = 'ファイルパス' WITH DIFFERENTIAL
トランザクションログバックアップ(前回のバックアップ以降の増分情報のみをバックアップする機能).
BACKUP LOG [DB名] TO DISK = 'ファイルパス'

復旧

現時点への復旧方法(実行前にDBの接続を切断する)

1.ログ末尾のバックアップ
2.完全バックアップのリストア
3.差分バックアップのリストア
4.トランザクションログバックアップのリストア
5.「1」で取得したログ末尾のバックアップのリストア
6.DB復旧の終了
※差分バックアップやトランザクションログ時点でリストアを終了したい場合は対象のリストア終了後に「6」を実行

BACKUP LOG [DB名] TO DISK = 'ファイルパス' WITH NORECOVERY,NO_TRUNCATE
RESTORE DATABASE [DB名] FROM DISK = 'ファイルパス' WITH NORECOVERY,REPLACE
RESTORE DATABASE [DB名] FROM DISK = 'ファイルパス' WITH NORECOVERY
RESTORE LOG [DB名] FROM DISK = 'ファイルパス' WITH NORECOVERY
RESTORE LOG [DB名] FROM DISK = 'ファイルパス' WITH NORECOVERY
RESTORE DATABASE [DB名] WITH RECOVERY

DBの接続の切断方法

1.対象のDBに接続されているspidを確認する
2.spidをkillする

sp_who
kill spid --spidが68の場合 例:kill 68