SQLServerExpressでタスクスケジューラーを使ったバックアップ方法
SQLServerExpressでのバックアップは多少テクニックを弄する必要があるっぽい。
なっちゃんのプログラミングTips: SQLServer Express版の自動バックアップ
基本的にはこのサイトの通りで、これに曜日ごとのバックアップを作るようにしてみた。
最新のバックアップと曜日ごとのバックアップを別立てにして、最新のバックアップは常にファイルサーバーに保存。
曜日ごとのバックアップは毎週日曜日に1週間分を保存する。
という運用を想定。
declare @target varchar(255) --曜日ごとのバックアップセット set @target = cast('C:\dbBackups\daily\TESTDATA.' as varchar) + cast(datepart(dw,getdate()) as varchar)+ '.bak' BACKUP DATABASE TESTDATA TO DISK=@target WITH INIT --最新のバックアップセット BACKUP DATABASE TESTDATA TO DISK='C:\dbBackups\daily\TESTDATA.bak' WITH INIT
本来は最新のバックアップだけ取ってバッチファイルとかでコピーすべきなんだけど、データ量も多く無いし面倒だから2重でバックアップを取ることに。
あとはこれをsqlファイルとして保存、起動するバッチファイルを作ってタスクに登録するだけ。