[SQL][Azure]將資料庫備份存放至 Microsoft Azure 儲存體內

[SQL][Azure]將資料庫備份存放至 Microsoft Azure 儲存體內

隨著 SQL Server 2014 的上市,我們也在MSDN 提供下載的當天就搶先安裝來測試相關功能了,在這次的測試中,主要是來測試 SQL Server 2014 上的異地備份,將資料庫備份到 Microsft Azure 上的環境。

 

為了要能存放在 Azure 上面,我們必須先了解一下 Azure 上面 Storage (儲存體)的架構,基本上會有一個 Storage Account ( 儲存體帳號 ),而在這個之下可以建立數個 Container ( 容器 ),而 Blob 就是我們存放在之上的內容。

image

 

大致知道一些名詞和功用之後,我們就可以連透過 Azure 的入口網站,選擇「新增」的功能,建立我們所要存放的儲存體帳號、位置和複寫方式

image

 

建立好之後,接下來我們在帳號之下,再去建立用來存放檔案的「容器

image

 

此時我們就可以在儲存體瀏覽頁下,選擇「管理存取金鑰」,這裡所告訴我們的資訊非常的狀況,後續我們使用這個 Azure 儲存體的時候,就必須要使用這裡所記錄的「儲存體帳戶名稱」和「主要存取金鑰」來進行驗證,驗證過之後才可以對容器下的檔案進行新增和刪除的操作。

image

 


在完成 Azure 上面的設定之後,那接下來我們就要到 SQL Server 2014 下面來測試一下,看看是否可以正常備份到 Azure 上面去。首先我們先開啟 SSMS ,選擇根節點下的「安全性」→「認證」,在節點上按下滑鼠右鍵,選擇「新增認證」。認證名稱你可以自己定義一個好記的名稱,而「識別」就是對應前面 Azure 上面的「儲存體帳戶名稱」,「密碼」就是對應到「主要存取金鑰」。

image

 

一開始我們測試直接使用 SQL 語法進行備份,此時要將原來 BACKUP TO FILE 的部分,改成 BACKUP TO URL,而網址的部分,則可以透過 Azure 的入口網站,查看我們剛剛建立的容器網址,以我們這個範例來看,要上傳的網址就是 「http://5l2fbackup.blob.core.windows.net/taichung」,

image

 

將那個網址給記錄下來之後,我們就可以透過指令來進行了,而這裡要稍微注意兩個地方,除了前面所說的指令要使用 BACKUP TO URL 之外,由於是透過網際網路傳輸,因此可以在備份的時候,建議最好加上 WITH COMPRESSION (備份壓縮)的參數,可以讓備份檔案比較小一點;另外也要加上 CREDENTIAL 的參數指令備份到 Azure 上的認證,這樣才可以正常備份上去。

image

 

當然如果您嫌使用指令麻煩的話,在 SQL 2014 上也可以在 SSMS 上面透過 GUI 的方式來進行操作,也可以很容易地來進行備份。

image

 

當然可以備份到 Azure 上面,也可以從 Azure 取回備份檔案直接進行還原囉

image


後記 : 在整理這份資料的時候,剛好有朋友問到,那如果不是使用 SQL Server 2014 的話呢 ? 然後就沒有辦法使用 Azure 儲存體了嗎 ? 並不是這樣的喔,只是在 SQL Server 2014 上指令和 GUI 界面都有直接支援;而如果是 SQL Server 2012 的使用者,則必須要在 SQL Server 2012 SP1 CU2 之後的版本 ( 11.0.3339.0 ) 才有支援 BACKUP TO URL 的指令。但如果是 2012 SP1 之前的版本,或者是不想上 CU2 的朋友,也可以透過 SSIS 來進行,至於該怎麼做,就讓我留到下一篇再來整理囉。