如何自動備份SQL資料庫到Storage呢。
前提條件需要SQL Server2012 SP1 CU2或更高版本
1. 備份SQL Azure資料庫到雲端儲存Storage
1)在SQL Server Management Studio中建立Storage儲存身份認證
建立Storage身份認證資訊指令碼樣例如下:
IF NOT EXISTS
(SELECT * FROM sys.credentials
WHERE credential_identity = 'mycredential')
CREATE CREDENTIAL mycredential WITH IDENTITY = 'mystorageaccount'
,SECRET = '<storage access key>' ;
2)從資料庫匯出資料包檔案*.BACPAC,並儲存到Storage的blob中。
指令碼樣例如下:
BACKUP DATABASE AdventureWorks2012
TO URL = 'https://mystorageaccount.blob.core.windows.net/mycontainer/AdventureWorks2012.bak'
WITH CREDENTIAL = 'mycredential'
,COMPRESSION
,STATS = 5;
GO
上面兩步使用的TSQL語句可以用在SQL指令碼(如儲存過程)或者開發程式設計(如C#呼叫)中使用,達到匯出資料包BACPAC檔案到Storage的目的。
2. 自動備份資料庫
1)可以使用Task Scheduler建立計劃(Schedule)執行指令碼或者程式
2)可以開發程式設計併發布Windows Azure Worker Role到雲服務上定時執行指令碼
關於怎樣使用Task Scheduler來備份資料,可以參考:http://support.microsoft.com/kb/2019698
注意:
- 在建立計劃或者開發程式,並設定特定的時間來執行,兩次執行的時間要合理定義,不要在上次任務沒執行前啟動下次任務。這個時間段取決於資料庫的大小和資料伺服器負載的情況。
- 使用異常處理機制和重試(Retry)機制來避免錯誤,例如超時。
- 在設定重試邏輯的時候,不要立即重試,需要一定的時間間隔,而且重試的間隔應該越來越長。
要備份或者恢復資料庫使用Storage,至少需要SQL server 2012 SP1 CU2。
http://technet.microsoft.com/en-us/library/jj919148.aspx這篇文章有詳細的描述。
下載地址如下:
SQL Server2012 SP1 CU2 |
支援使用Storage備份和還原資料庫 |
|
SQL Server2012 SP1 CU4 |
支援Powershell 操作使用Storage備份和還原資料庫 |