SQL Serverのバックアップコマンドでデータベースバックアップ

Database データベース

以前、「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 管理 | 技術情報・コラム

コメント

タイトルとURLをコピーしました