指令化備份及網路磁碟機及清除備份檔
以下的動作,必須將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
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!