【MSSQL】Expressでのデータ自動バックアップ手順

2014年7月25日

SQL Server Expressでは、SQL Server Agent が使えないので
バックアップを手動で行っている方もいると思います。
毎回毎回だと面倒になったり、忘れることもあるでしょう。

そこで、今日は自動でバックアップを取る手順を書いてみたいと思います。
Windows の機能として「タスク スケジューラ」という機能があります。
一定の条件を指定しておくとその条件を満たした時にバッチファイルやスクリプトを実行できます。
今回は、これを使うことにします。

準備するものは、以下の2ファイルになります。

・タスクスケジューラに登録するバッチ処理ができる実行ファイル(.batとか.vbsとかなど)
・バッチファイルから呼び出す sql スクリプトファイル(.sql)

(注) ファイル名の¥記号は全角になっていますので、コピペする場合は 半角に変更してください。

まずは、タスク スケジューラに登録するファイルをテキストエディタで作ります。
SQLServer への認証の仕方によってファイルの内容が変わってきます。
また、SQLCMD の実行結果を D:\BackUp\BACKUP.log に保存するとします。

・Windows認証の時

コンピュータ名を PC とします。

SQLCMD -S PC\SQLEXPRESS -E -i D:\BackUp\SCRIPT.sql > D:\BackUp\BACKUP.log

・SQL Server認証の時

コンピュータ名を PC とし
ログインユーザー:saユーザー
パスワード: sqlpwd
とします。

SQLCMD -S PC\SQLEXPRESS -U sa -P sqlpwd -i D:\BackUp\SCRIPT.sql > D:\BackUp\BACKUP.log

SQLCMDは、SQLServer をインストールすると入っているコマンドラインツールです。
今回使っているオプションの意味などは以下のとおりです。

-S server : SQL Server名
-E : Windows認証の時に指定
-i inputfile : 入力ファイル(SQLが書かれているファイル等)
-U login id : SQL Server認証のログイン
-P password : SQL Server認証のパスワード

次にバックアップ用のスクリプトを作ります。
テキストエディタで自分で一から作るのもいいのですけど
SQLServer Management Studio を使って簡単に作りたいと思います。

その手順は、以下のとおりです。

Management Studio を起動してデータベースに接続します。
接続したら、メニューからバックアップを選択して、バックアップダイアログを表示させます。
バックアップに必要な項目を設定します。
設定が済んだら、画面左上の「スクリプト」ボタンをクリックします。
メニューが表示されるので、その中の「スクリプト操作をファイルに保存」をクリックします。

MSSQLServerのメニュー画像です。

MSSQLServerのメニュー画像です。

以上です。

SQLServer Management Studio が自動で作ってくれるので間違いもないので安心です。
最後に、先に作ったバッチファイルを実行して、正常にバックアップされるかを確認してみましょう。
問題なければ、あとは、タスクスケジューラにバッチファイルを登録したら完了です。