sql server指令化備份及網路磁碟機及清除備份檔

指令化備份及網路磁碟機及清除備份檔

以下的動作,必須將sql server的服務以doamin user的帳號啟動,並於目的端的資料夾,該帳號有權限做存取才可以

我將備份資料庫及清除歷史bak的這個連續動作寫成一個procedure,以後就直接拿來用即可,給需要的人參考一下

 

create procedure sql_backupdb as

--取得現在時間

declare @nowdate varchar(10)=rtrim(CONVERT(char, getdate(), 112))

declare @path varchar(100)='\\192.168.1.1\備份區\SQL2K8R2\'

--db1 db

declare @db1 varchar(100)=@path+'rps'+@nowdate+'.bak'

BACKUP DATABASE db1

TO DISK = @db1

WITH NOFORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 10; --設定壓縮(compression)、覆蓋(init)備份

------------------------------------------------------------------------------------------

--刪除2天前的備份

declare @deldate varchar(10)= CONVERT(char, DATEADD(day,-2,GETDATE()),111)

declare @d varchar(20)=CONVERT(char, getdate(), 111)

select @d

EXECUTE master.dbo.xp_delete_file 0,@path,N'bak',@deldate

‧覺得文章不錯請給我一個『讚』作為鼓勵喔!