使用SQL Server 2014 Management Studio CTP2搭配Windows Azure Blob Storage實現異地備份與還原

本文將介紹如何使用SQL Server 2014 Management Studio CTP2搭配Windows Azure Blob Storage實現異地備份與還原。

情境描述

當您將SQL Server 2012安裝SP1的CU2之後,就可讓SQL Server 2012支援將資料庫備份到Windows Azure Blob Storage,或是從Windows Azure Blob Storage來還原資料庫,但在這個版本要備份到遠端的儲存空間的動作都必須使用T-SQL來完成,到了SQL Server 2014 CTP2已經把這功能做到SSMS之中,也就是說您可以使用GUI的方式來輕鬆的將Windows Azure Blob Storage來做為取代過去磁碟或磁帶等備份媒體,進而實現異地備份與還原的策略。

前置作業

在開始前您必須先建立認證(Credential)或是下載發行設定檔來幫您產生Windows Azure Blob Storage所需的認證,這兩種做法擇一即可,下一節我們將介紹如何實作。

建立認證(Credential)

您可以在物件總管中執行個體下的安全性節點中找到認證,於認證上按滑鼠右鍵選擇新增認證

image

新增認證視窗認證名稱欄位您可以自行命名,到時候在備份或還原時選擇SQL Credential時會以這個名稱來做為您挑選認證的選項,識別欄位則需填寫Windows Azure Blob Storage儲存體帳戶的名稱,而密碼欄位則是輸入主要存取金鑰或次要存取金鑰,輸入完畢之後按確定

image

對應於Windows Azure管理入口網站中您可找到管理存取金鑰頁面中,有您建立SQL Credential所需的相關資訊。

image

另外,您也可以利用CREATE CREDENTIAL敘述來建立SQL Credential。


USE [master]
GO
CREATE CREDENTIAL [mycredential] 
	WITH IDENTITY = N'sqlsrvbak'
	, SECRET = N'YOYq9hNAPqvnC3CsT790vvLGzPoqEO1hhm0xX1CRuaGbYJd2T3sBRYbMftI2iM7AoGvCauGcS6G++bdgM+Z14g=='
GO

建立完畢您將看到如下圖的結果:

image

下載發行設定檔

若您有多個Windows Azure訂閱而且在訂閱中已經建立多個Windows Azure Blob Storage,那麼手動建立認證就顯得比較缺乏效率,因此您可以利用下載發行設定檔的方式來幫助您建立SQL Credential。請打開瀏覽器輸入https://windows.azure.com/download/publishprofile.aspx,您會看到如下圖的畫面,Windows Azure會幫您將所有訂閱產生一個發行設定檔,這個設定檔可以讓您用在Visual Studio中發行雲端服務時使用,也可以用在SSMS中讓您選擇您要將資料庫備份檔備份到哪個Windows Azure Blob Storage。

image

請先將發行設定檔儲存在您所要存放的位置即可。

使用自行建立的認證來備份資料庫到Windows Azure Blob Storage

請於您所要備份的資料庫(本文以Northwind為例)上按滑鼠右鍵選擇工作>備份

image

在備份資料庫頁面中請選擇您所要備份的來源資料庫及備份類型,接著將Back up to欄位選擇至URL後,於File name欄位中輸入您所要備份的檔案名稱(本文以nw_full.bak為例),若您已經利用SSMS的GUI或T-SQL方式建立認證,則您可以在SQL credential欄位選擇您所建立的認證(本文以mycredential為例),最後則是Azure storage container欄位,您必須輸入您在Windows Azure管理入口網站中所建立的Windows Azure Blob Storage容器名稱,輸入完畢之後URL prefix欄位就會自動幫您組合好要存放資料庫備份檔的URL。

image

您在備份資料庫視窗中所看到的URL prefix應該會和您在Windows Azure管理入口網站所看到的相同。

image

另外您可以視情況選擇壓縮備份檔案,以減少備份檔案佔用Windows Azure Blob Storage所需的容量。若要壓縮備份請點選Backup Optiions頁籤,於Compression中選擇壓縮備份,然後按下確定

image

備份完成後您將看到如下圖的訊息。

image

您可以到Windows Azure管理入口網站中查看備份檔案是否真的存在於Windows Azure Blob Storage。

image

使用發行設定檔備份建立SQL認證

若您使用自行建立的認證來備份資料庫到Windows Azure Blob Storage,您在備份資料庫視窗中,SQL credential選項中應該會是空的,因為您尚未建立任何SQL credential,請按Create來建立認證。

image

備份至URL-建立認證視窗中您可以看到預設幫您建立的認證名稱為AzureCredential您可以自行修改成符合您所需要的認證名稱,接著按選取來選擇Windows Azure幫您產生的發行設定檔,選擇完畢後您便會在Select a Subscription or enter a Subscription ID to use欄位中看到您所管理的所有Windows Azure訂閱,當您選擇您的訂閱後就可以在儲存體帳戶欄位看到該訂閱中所建立的儲存體,選擇完畢後按Create

image

建立完畢後您可以在下圖中看到您透過發行設定檔所建立的認證。

image

使用Windows Azure Blob Storage還原資料庫

您也可以使用Windows Azure Blob Storage還原資料庫,請於您要還原的資料庫上按滑鼠右鍵選擇工作>還原>資料庫

image

在連接至Windows Azure儲存體視窗中輸入您的Storage account(儲存體帳戶名稱)以及Account key(主要存取金鑰或次要存取金鑰均可),接著Use secure endpoints(HTTPS)會被自動勾選,您可以依照您的實際需求選擇是否勾選Save account key來避免下次還要重新輸入存取金鑰,輸入完畢後按Connect

image

image

接下來就跟過去您使用SSMS還原資料庫幾乎相同,唯一的差別在於您可以看到在要還原的備份組當中,使用者名稱是MicrosoftAccount,這是因為您透過Microsoft Account將資料庫備份至Windows Azure Blob Storage所致。

image

您也可以按驗證備份媒體,就可以看到您的備份組的確是存放在Windows Azure Blog Storage。

image

最後按確定開始還原資料庫,還原成功後您將看到如下圖的畫面。

image

參考資料

-Windows Azure SQL Database 備份和還原 - 第三回合

- Windows Azure Management Certificates

- CREATE CREDENTIAL (Transact-SQL)