以前、「SQL Server Management Studio」を使用して、SQL Serverのデータベースをバックアップする方法を紹介しました。
詳細はこちら参照⇒「SQL Serverのデータベースの完全バックアップと復元方法」
今回は、バッチファイル・スクリプトファイルを使用して、SQL Serverのバックアップコマンドでデータベースをバックアップしたいと思います。
バッチファイル・スクリプトファイルでバックアップを行う方法は、そのバッチファイルをタスクスケジューラに登録すれば、決まった時刻に自動で実行することができるので便利ですよ。
なお、今回のバージョンは以下です。
- Windows Server 2008 R2 Standard
- SQLServer Standard 2008 R2
バッチファイルの作成
まずは、バッチファイル(拡張子「.bat」)を作成する。
今回は、「D:\Backup\Backup.bat」というファイルを作成した。
SQLCMD -S [サーバ名/IPアドレス\インスタンス名] -U [ユーザーID(saなど)] -P [パスワード] -i D:\Backup\Script.sql > D:\Backup\Backup.log
「SQLCMD」は、SQL Serverに付属の「SQL Server Command Line Tool」というコマンドラインツールのコマンドです。
上記のようにオプションを指定して使用すればOK。
なお、インスタンス名はデフォルトの「MSSQLSERVER」であれば指定しなくてもよい。
SQL Server Expressの場合のインスタンス名は「SQLEXPRESS」のようだ。
スクリプトファイルの作成
続いて、SQL Serverのバックアップコマンドのスクリプトファイル(拡張子「.sql」)を作成する。
バッチファイル内で、入力ファイルとして指定している「D:\Backup\Script.sql」というファイルを作成した。
BACKUP DATABASE [データベース名] TO DISK='D:\Backup\Data\[データベース名].BAK' WITH INIT GO
上記のように、「BACKUP DATABASE」文を使用してデータベースを完全バックアップする。
バックアップの実行
バッチファイルとスクリプトファイルが完成したら、バックアップを実行してみる。
「D:\Backup\Backup.bat」ファイルを実行させるとコマンドプロンプトが立ち上がり、処理が完了すれば自動で閉じる。
バッチファイルでログ出力するようにしているので、「D:\Backup\Backup.log」ファイルに以下のようにログが出力されていれば完了だ。
データベース '[データベース名]' の 528 ページ、ファイル 1 のファイル '[データベース名]' を処理しました。 データベース '[データベース名]' の 1 ページ、ファイル 1 のファイル '[データベース名]_log' を処理しました。 BACKUP DATABASE により 529 ページが 0.884 秒間で正常に処理されました (4.675 MB/秒)。
以上です。
参考サイト
SQL Server Expressのバックアップ(自動) – SQL Server Express 管理 | 技術情報・コラム
コメント