ストアドプロシージャを作成して、バッチ処理でバックアップを作成します。
ストアドプロシージャを作成します。
サンプル:ServerToolという名称のデータベースをバックアップします。
use ServerTool go SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO CREATE Procedure [dbo].[ServerTool_db_backup] @Path nvarchar(50) = N'e:\SQL_Backup\', @DBFname nvarchar(50) = N'ServerToolDB.Bak', @LOGFname nvarchar(50) = N'ServerToolLog.bak' as declare @DBBKF as nvarchar(100) declare @LOGBKF as nvarchar(100) set @DBBKF = @Path + @DBFname set @LOGBKF = @Path + @LOGFname BACKUP DATABASE ServerTool TO DISK = @DBBKF WITH FORMAT, NAME = 'Full Backup of ServerTool' BACKUP LOG ServerTool TO DISK = @LOGBKF return
データベースをバックアップするためのバッチファイルを作成します。
サンプル:E:\backup_cmd\servertool.logに実行結果のログを書き込みます。
sqlcmd -U <ログインID> -P <パスワード> -S <サーバー名>\<インスタンス名> -d ServerTool -s , -w 1024 -Q "EXEC ServerTool_db_backup" >> e:\backup_cmd\ServerTool.log
実行結果
ServerTool.log
データベース 'ServerTool' の 472 ページ、ファイル 1 のファイル 'ServerTool' を処理しました。 データベース 'ServerTool' の 1 ページ、ファイル 1 のファイル 'ServerTool_log' を処理しました。 BACKUP DATABASE により 473 ページが 0.127 秒間で正常に処理されました (29.096 MB/秒)。 データベース 'ServerTool' の 2 ページ、ファイル 1 のファイル 'ServerTool_log' を処理しました。 BACKUP LOG により 2 ページが 0.008 秒間で正常に処理されました (1.403 MB/秒)。
2014/05/29 14:24 4,280,832 ServerToolDB.Bak 2014/05/29 14:24 84,480 ServerToolLog.bak
注>トランザクションログのバックアップは、復旧モデルが「完全」に設定されていないと出来ません。