數據庫備分方案腳本



--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)





 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章