Windows NT/2000/XP/2003/2008 PageSQL Server > ストアドプロシージャを作成してバッチ処理でのバックアップ
ストアドプロシージャを作成してバッチ処理でのバックアップ



ストアドプロシージャを作成して、バッチ処理でバックアップを作成します。

ストアドプロシージャを作成します。
サンプル: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/秒)。

e:\SQL_backup

2014/05/29  14:24         4,280,832 ServerToolDB.Bak
2014/05/29  14:24            84,480 ServerToolLog.bak

バックアップ先フォルダにデータベースおよびトランザクションログのバックアップファイルが作成されます。

注>トランザクションログのバックアップは、復旧モデルが「完全」に設定されていないと出来ません。