如何自動備份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備份和還原數據庫 |