在SQL Server Agent中新建一個作業,並在步驟處加入一個步驟,輸入以下的內容,並進入排程設定要啟動的時間


EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GOEXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO
USE master
GO
EXEC XP_CMDSHELL 'net use z: \\192.65.xx.xx\aws password /user:"username"'
DECLARE @MyFileName varchar(50)
SET @MyFileName='z:\filename_' + (convert(nvarchar(20),dateadd(DAY,-1,GetDate()),112)) + '.bak'
alter DATABASE [databasename] set SINGLE_USER with rollback immediate
restore DATABASE [databasename] from DISK=@MyFileName
alter DATABASE [databasename] SET MULTI_USER;


解說1:
USE master
GO
本句能讓Server Agent不至於斷線,原因不清楚

解說2:EXEC XP_CMDSHELL 'net use z: \\192.65.xx.xx\aws password /user:"username"'
本句能讓SQL讀取網路資料夾來源,否則雖然連線網路磁碟,一樣無法讀取

解說3:SET @MyFileName='z:\filename_' + (convert(nvarchar(20),dateadd(DAY,-1,GetDate()),112)) + '.bak'
是產生.bak檔案名稱,大部份備份檔案都採用日期.bak做備份,因此也採取這樣還原

解說4:alter DATABASE [databasename] set SINGLE_USER with rollback immediate的錯誤
設定為SINGLE_USER模式,可以避免"it is in use by this session"的錯誤

 

 

arrow
arrow
    全站熱搜

    夜市 小霸王 發表在 痞客邦 留言(0) 人氣()