工作中需要創建SQL Job對資料庫進行定期備份,現把腳本記錄如下。 1. 完整備份: 2. 差異備份: 以上兩段可以分別創建兩個SQL Job,比如完整備份的作業可以定在每周天凌晨運行,執行成功後刪掉之前的備份文件(代碼中有刪除的語句),差異備份的作業定在周一到周六每天凌晨運行。 ...
工作中需要創建SQL Job對資料庫進行定期備份,現把腳本記錄如下。
1. 完整備份:
-- FULL declare @filename varchar(1024), @file_dev varchar(300) declare @path varchar(1024) set @path = N'F:\Backup\Plan2\'; declare @extension_name varchar(16) set @extension_name = N'bak'; set @filename = convert(varchar(1024), getdate(), 120) set @filename = replace(@filename, ':', '') set @filename = replace(@filename, '-', '') set @filename = replace(@filename, ' ', '') set @filename = @filename + '_' + convert (varchar(3), datepart(ms, getdate())) + N'.' + @extension_name -- start backup, COMPRESSION is the parameter set @file_dev = @path + 'SmartDev_Full_' + @filename backup database [SmartDev] to disk = @file_dev with noformat, init, name = N'SmartDev-Database full backup', COMPRESSION -- delete the old backup file 1 days ago declare @olddate datetime select @olddate=getdate()-1 -- execute delete select @path select @extension_name select @olddate execute master.dbo.xp_delete_file 0, @path, @extension_name, @olddate, 1 go
2. 差異備份:
-- Differential declare @filename varchar(1024), @file_dev varchar(300) declare @path varchar(1024) set @path = N'F:\Backup\Plan2\'; declare @extension_name varchar(16) set @extension_name = N'bak'; set @filename = convert(varchar(1024), getdate(), 120) set @filename = replace(@filename, ':', '') set @filename = replace(@filename, '-', '') set @filename = replace(@filename, ' ', '') set @filename = @filename + '_' + convert (varchar(3), datepart(ms, getdate())) + N'.' + @extension_name -- start backup, COMPRESSION is the parameter set @file_dev = @path + 'SmartDev_Differential_' + @filename backup database [SmartDev] to disk = @file_dev with differential, noformat, init, name = N'SmartDev-Database Differential backup' go
以上兩段可以分別創建兩個SQL Job,比如完整備份的作業可以定在每周天凌晨運行,執行成功後刪掉之前的備份文件(代碼中有刪除的語句),差異備份的作業定在周一到周六每天凌晨運行。