SQL Server Expressで自動バックアップを作成する方法

SQL Server Expressで自動バックアップを作成する方法

SQLServer Expressで自動バックアップの取り方

小規模のWebアプリであれば、SQL Server Expressで事足りることも多く利用されている方も多いと思います。
しかしSQL Server Expressには製品版と比べ、いくつかの機能の制限がかけられています。
メンテナンスプランによる自動バックアップ機能もそのうちの一つです。

勿論手動でのバックアップはできますが、SQL Server Expressでも自動でバックアップを作成したいので、その方法を調べました。

自動バックアップの取り方の手順

方法としては、SQL Serverの機能は使えないので、Windowsのタスクスケジューラを使用します。
バックアップを作成するためのSQL(.sql)と、それを実行するバッチファイル(.bat)作成し、タスクスケジューラで定期的にバッチの実行を行います。
そうすることで定期的なバックアップを取ることができるようになります。

バックアップを作成するためのSQL

まずはバックアップを作成するためのSQLを用意します。
作成したSQLは c:\backup\backup.sql として保存しておきます。

実際のSQLは手書きでもよいのですが、ManagementStudioから以下の手順で簡単に作成できます。

ManagementStudioのデータベースから右クリックし、タスク -> バックアップをクリックします。

バックアップの作成

上部のスクリプトから指定された条件でバックアップを作成するスクリプトが自動で作成されます。

スクリプトの作成

作成したSQLは次の通りです。

BACKUP DATABASE [TestDB] TO  DISK = N'C:\backup\TestDB.bak' WITH NOFORMAT, NOINIT,  NAME = N'TestDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

SQLを実行するバッチファイルの作成

次に作成したSQLを実行するためのバッチファイルを作成し、任意の場所に保存しておきます。
SQLを実行するためのバッチファイルのコマンド例を以下に記します。

sqlcmd -S MYPC\SQLEXPRESS -U sa -P sqlpass -i c:\backup\backup.sql > c:\backup\backup.log

コマンドの意味はコマンドプロンプトで「SQLCMD /?」を実行してやると確認できますので必要なパラメータを設定してください。
とりあえずここで作成したコマンドの意味を説明します。

sqlcmd SQL Serverをコマンドラインで管理するためのツール
-S サーバ名
-U SQL Serverのユーザー
-P SQL Serverのパスワード
-i 実行するSQLのファイル

ここまでで作成したバッチファイルをダブルクリックで実行してやると、DBのバックアップ作成が開始されるはずです。
バックアップファイルとログを確認してください。
問題がなければ、あとはこのバッチをタスクスケジューラで定期的に実行されるように設定するだけです。

タスクスケジューラの設定

タスクスケジューラへの登録手順は次の通りです。

  • スタートメニュー -> コントロールパネル -> 管理ツール -> タスク スケジューラ をクリックし起動します。
    右側の操作パネルから、[基本タスクの作成]をクリックしてタスクを作成します。
    タスクスケジューラの起動
  • タスクの名前と説明を入力して、[次へ]をクリックします。
    タスクの名前と説明を入力
  • タスクのトリガー(タスクを起動する間隔)を選択します。
    タスクのトリガーを選択
  • 上で選択したトリガーの詳細を入力し、[次へ]をクリックします。(画面は選択したトリガーによって異なります。)
    タスクのトリガーの詳細を入力
  • 操作で[プログラムの開始]を選択し、[次へ]をクリックします。
    プログラムの開始を選択
  • プログラム/スクリプトで作成したバッチファイルを選択し、[次へ]をクリックします。
    バッチファイルを選択
  • 内容を確認し、[完了]をクリックします。
    バッチファイルを選択

これでタスクスケジューラにバックアップを作成するためのタスクが登録されました。
あとは指定したタイミングでタスクが実行されバックアップが作成されているか、
バックアップファイルとログファイルを確認しておきましょう。

SQL Serverカテゴリの最新記事