目前依照既定的規劃,利用了MS-SQL2005的Agent自動的備份資料庫的資料。
Step1 :
先設定SQL語句該如何寫。
需求 : 每一個禮拜只產出一個檔案,檔案內可能包含(一個完整備份、多個差異備份、多個Log備份)
1.完整備份 :
--設定時間與周數的變數
DECLARE @mdatetime nvarchar(19),@weektime nvarchar(2)
--取得yyyyMM的日期格式
select @mdatetime = substring(CONVERT(nvarchar,getdate(),112),1,4)
--取得目前是第幾周
select @weektime = datepart(wk, getdate())
--設定檔案路徑位置
DECLARE @mfilename nvarchar(255)
set @mfilename = N'D:\DB\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\資料庫名稱(自行設定)_'+@mdatetime+'_'+@weektime+'.bak'
backup database [資料庫名稱] to disk=@mfilename
with NOFORMAT, INIT,
NAME = N'WWEIP-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
2.差異備份 :
--設定時間與周數的變數
DECLARE @mdatetime nvarchar(19),@weektime nvarchar(2)
--取得yyyyMM的日期格式
select @mdatetime = substring(CONVERT(nvarchar,getdate(),112),1,4)
--取得目前是第幾周
select @weektime = datepart(wk, getdate())
--設定檔案路徑位置
DECLARE @mfilename nvarchar(255)
set @mfilename = N'D:\DB\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\資料庫名稱(自行設定)_'+@mdatetime+'_'+@weektime+'.bak'
BACKUP DATABASE [資料庫名稱] TO DISK = @mfilename
WITH DIFFERENTIAL , NOFORMAT, NOINIT,
NAME = N'WWEIP-差異 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
3.交易備份 :
--設定時間與周數的變數
DECLARE @mdatetime nvarchar(19),@weektime nvarchar(2)
--取得yyyyMM的日期格式
select @mdatetime = substring(CONVERT(nvarchar,getdate(),112),1,4)
--取得目前是第幾周
select @weektime = datepart(wk, getdate())
--設定檔案路徑位置
DECLARE @mfilename nvarchar(255)
set @mfilename = N'D:\DB\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\資料庫名稱(自行設定)_'+@mdatetime+'_'+@weektime+'.bak'
BACKUP LOG [資料庫名稱] TO DISK = @mfilename
WITH NO_TRUNCATE , NOFORMAT, NOINIT, NAME = N'WWEIP-交易記錄 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Step2 :
設定排程
需要安裝MS-SQL Agent的系統,當你在資料庫工具項裡面沒有看到關於Agent的項目,可能因為沒有安裝此服務了,需要再安裝此項服務才會出現功能。
開啟Agent的服務。
新增作業。
需要設定的相關項目有“一般、步驟、排程”。
1. 一般項目 : 輸入的只有名稱
2. 步驟設定 :
A. 新增一個步驟 :
B.設定相關步驟方式 :
(1). 步驟的名稱。
(2). 類型選擇T-SQL做執行。
(3). 將完整備份的指令設定進去。
(4). 選擇進階。
(5). 設定成功時的動作為 : 結束時報成功作業(當有下一個步驟的時候可以選擇“移至下一動作”)
3.排程設定 :
我的排程設定就是禮拜一是完整備份,禮拜二到五就是差異備份,因此每一週就會有一個備份檔案。