自動備份SQL資料庫到雲端儲存Storage

EricWen發表於2013-11-21

如何自動備份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

注意:

  1. 在建立計劃或者開發程式,並設定特定的時間來執行,兩次執行的時間要合理定義,不要在上次任務沒執行前啟動下次任務。這個時間段取決於資料庫的大小和資料伺服器負載的情況。
  2. 使用異常處理機制和重試(Retry)機制來避免錯誤,例如超時。
  3. 在設定重試邏輯的時候,不要立即重試,需要一定的時間間隔,而且重試的間隔應該越來越長。

要備份或者恢復資料庫使用Storage,至少需要SQL server 2012 SP1 CU2

http://technet.microsoft.com/en-us/library/jj919148.aspx這篇文章有詳細的描述。

下載地址如下:

SQL Server2012 SP1 CU2

http://support.microsoft.com/kb/2790947

支援使用Storage備份和還原資料庫

SQL Server2012 SP1 CU4

http://support.microsoft.com/kb/2833645/zh-cn

 支援Powershell 操作使用Storage備份和還原資料庫

相關文章