新建db_backup.sql檔案,填入以下內容。
– 定義需要備份的資料庫
DECLARE @backupDatabase VARCHAR(20) = ‘DB_NAME’
– 定義資料庫備份檔案存放的基礎路徑
DECLARE @backupBasePath VARCHAR(MAX) = ‘D:/DB_NAME/’
– 定義備份檔名,檔名格式:
DECLARE @backupFileName VARCHAR(50) = NULL
– 獲取當前時間戳
DECLARE @backupTime DATETIME = CURRENT_TIMESTAMP
– 處理備份檔名稱
SET @backupFileName = @backupDatabase + ‘_backup_’ + CONVERT(VARCHAR(25), @backupTime, 112) + ‘_’ + REPLACE(CONVERT(VARCHAR(25), CURRENT_TIMESTAMP, 114), ‘:’, ") + ‘.bak’
– 處理完整的備份檔案路徑
SET @backupBasePath = @backupBasePath + @backupFileName
– 執行備份
BACKUP DATABASE @backupDatabase TO DISK = @backupBasePath
到這裡已經可以使用指令碼對資料庫進行備份,但仍需手動執行指令碼,無法實現自動定時備份的需求。
新建db_backup.bat檔案
sqlcmd -S localhost -U sa -P 123 -i ./db_backup.sql -o ./db_backup.log
sqlcmd -S <資料庫連線地址> -U <資料庫登入名> -P <資料庫密碼> -i <要執行的指令碼檔案> -o <執行日誌檔案>
3. 建立Windows任務計劃
輸入taskschd.msc開啟任務計劃程式對話方塊
輸入任務名稱
如果是伺服器環境,安全選項中務必選擇不管使用者是否登入都要執行
新建觸發器
設定觸發器為按預定計劃執行一次
在觸發器高階設定中選擇重複任務間隔根據需要設定,持續時間設定為無限期。這樣配置的結果就是在觸發後,無限期地每隔xx時間段重複一次
新建操作
選擇剛才新建的批處理指令碼
檢查批處理指令碼中是否包含有關目錄結構的語句,比如需要讀寫某個位置的檔案。如果有且是Windows Server 2012及以後的作業系統,就需要配置起始位置,起始位置設定為批處理的目錄即可。