數據庫備分方案腳本
--1.完整備分 以數據庫RoleRight為例 每週一次
declare @datestr char(10) --第一個星期日的日期
declare @weekstr char(10) --星期幾
select @datestr=Convert(char(16), dateadd(dd,7-datepart(WEEKDAY,dateadd(mm, datediff(mm,0,getdate()), 0))+1,dateadd(mm, datediff(mm,0,getdate()), 0)),112)
select @weekstr=rtrim(DATENAME(weekday,getdate()))
if @weekstr='星期日' and @datestr=Convert(char(16), getdate(),112)
begin
BACKUP DATABASE RoleRight TO DISK = N'E:\SQLBAK_M\TRIO_SQL_MoBak' WITH INIT , NOUNLOAD , NAME = N'TRIO_SQL_MoBak', NOSKIP , STATS = 10, NOFORMAT
end
if @weekstr='星期日' and @datestr<>Convert(char(16), getdate(),112)
begin
BACKUP DATABASE RoleRight TO DISK = N'E:\SQLBAK\TRIO_SQL_WeBak' WITH INIT , NOUNLOAD , NAME = N'TRIO_SQL_WeBak', NOSKIP , STATS = 10, NOFORMAT
end
--2.差異備份 以數據庫RoleRight為例 每天晚上
declare @weekstr varchar(10) --星期幾
select @weekstr=ltrim(rtrim(DATENAME(weekday,getdate())))
--select @weekstr
--BACKUP DATABASE RoleRight TO DISK = N'E:\SQLBAK\TRIO_SQL_diff' WITH DIFFERENTIAL , NOUNLOAD , NAME = N'TRIO_SQL_diff', NOSKIP , STATS = 10, NOFORMAT
Declare @FilePath Char(1000)
Select @FilePath='BACKUP DATABASE RoleRight TO DISK = N'+ '''E:\SQLBAK\TRIO_SQL_'+@weekstr+'_diff'+''''
+' WITH DIFFERENTIAL , NOUNLOAD , NAME = N' +'''TRIO_SQL週日志 備份'''+', NOSKIP , STATS = 10, NOFORMAT '
Select @FilePath =rtrim(ltrim(@FilePath))
ExEcute (@FilePath)
--
--3.日誌備份 每天兩次,中午一次,下班後一次
Declare @FilePath Char(1000)
Select @FilePath='BACKUP LOG RoleRight TO DISK = N'+ '''E:\SQLBAK\TRIO_SQL_'+Replace( Replace( Replace(Convert(char(16),
Getdate(),21),'-',''),':',''),' ','')+'_Log'+''''
+' WITH NOINIT , NOUNLOAD , NAME = N' +'''TRIO_SQL週日志 備份'''+', NOSKIP , STATS = 10, NOFORMAT '
Select @FilePath =rtrim(ltrim(@FilePath))
ExEcute (@FilePath)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.