利用計劃任務定時備份SQLSERVER資料庫
阿新 • • 發佈:2019-02-05
STEP one:
在 master資料庫中建立 備份的儲存過程
USE [master] GO /****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 12/16/2014 11:14:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- Author: whl -- Create date: 20141216 -- Description: 備份資料庫 -- @databaseName: 資料庫名 -- @backupType: 備份型別 F=全部, D=差異, L=日誌 -- @backupDir: 備份檔案的目錄 如: d:\backup\ ALTER PROCEDURE [dbo].[sp_BackupDatabase] @databaseName sysname, @backupType CHAR(1), @backupDir varchar(500) AS BEGIN SET NOCOUNT ON; DECLARE @sqlCommand NVARCHAR(1000) DECLARE @dateTime NVARCHAR(20) SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') + REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','') IF @backupType = 'F' SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + --' TO DISK = ''e:\back_file\' + @databaseName + '_Full_' + @dateTime + '.BAK''' ' TO DISK = '''+ @backupDir + @databaseName + '_Full_' + @dateTime + '.BAK''' IF @backupType = 'D' SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + ' TO DISK = '''+ @backupDir + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL' IF @backupType = 'L' SET @sqlCommand = 'BACKUP LOG ' + @databaseName + ' TO DISK = '''+ @backupDir + @databaseName + '_Log_' + @dateTime + '.TRN''' EXECUTE sp_executesql @sqlCommand END
TWO :
新建指令碼檔案 sqlserver_bk.sql
內容為
exec [sp_BackupDatabase] 'TESTDB','F','e:\back_file\'
go
THREE:
新建任務計劃, 選擇 程式或指令碼 為 D:\install\SqlServer2008\100\Tools\Binn\SQLCMD.EXE 程式,
引數為: -S . -E -i e:\back_file\sqlserver_bk.sql 即可,其他的定時時間依照需要設定即可
至此, 備份就可以啦