本文將繼續介紹在 Windows Azure SQL Database 平台上備份和還原資料庫的另外一種方法。
【情境說明】
本文繼續介紹 Windows Azure SQL Database(以下簡稱 SQL Database)上進行備份和還原時,也可以使用的公用程式 - SQLAzureMWBatchBackup、SQLAzureMWBatchUpload 來進行。
【前置作業】
首先您必須到 CodePlex 的 SQL Database Migration Wizard 頁面中點選【DOWNLOADS】在 OTHER AVAILABLE DOWNLOADS 項目下,找到【SQLAzureMWBatchBackup v4.0.11 Release Binary for SQL Server 2012】和【SQLAzureMWBatchUpload v4.0.11 Release Binary for SQL Server 2012】,其中前者是用來備份 SQL Database 上的資料庫,後者則是用來還原資料庫。
【使用 SQLAzureMWBatchBackup 備份資料庫】
當您下載 SQLAzureMWBatchBackup 後會是一個附檔名為 ZIP 的壓縮檔,解壓縮之後您將會看到如下圖的檔案內容,其中紅色框框處的執行檔就是用來備份 SQL Database 上資料庫的公用程式。
您不能在檔案總管中直接 double click 該執行檔來做使用,而是必須在命令提示字元下來使用,您可以利用 /? 參數來查看 SQLAzureMWBatchBackup 的使用方式。
下圖中的指令用來示範利用將 SQLAzureMWBatchBackup 公用程式將 SQL Database 上的 Northwind 資料庫備份到 c:\temp 目錄下,並將所有的備份歷程儲存在 nw.log 檔案。
SQLAzureMWBatchBackup.exe-S 資料庫伺服器名稱.database.windows.net
-U 使用者名稱 -P 密碼-D 資料庫名稱 -o 備份紀錄檔案名稱 -O 備份路徑
按下 ENTER 之後公用程式預設會在您指定的目錄下,建立一個以日期為名稱的目錄,用來存放利用 BCP 匯出 SQL Database 上資料庫的檔案。
匯出結束後您將可以看到所有使用 BCP 匯出資料的指令碼以及備份工作耗時多久。
接著到您利用 -O 參數所指定的備份目錄可以看到類似下圖的內容,其中您會看到一個和資料庫名稱相同的 .sql 指令碼檔案,它是用來建立所有資料庫物件所需的指令碼;另外所有的 TABLE 都被匯出成經過編碼的 dat 檔案,而 nw.log 則是在開始備份資料時,使用 -o 參數所指定的紀錄檔名稱。
【使用 SQLAzureMWBatchUpload 還原資料庫】
若您要還原 SQL Database 上的資料庫,可以使用 SQLAzureMWBatchUpload 公用程式,同樣的您必須在命令提示字元中使用該程式,您可以利用 /? 參數來查看使用的方法,如下圖所示:
接著筆者示範利用前一節所備份的資料庫內容搭配 SQLAzureMWBatchUpload 公用程式來還原資料庫,使用的指令碼如下:
SQLAzureMWBatchUpload.exe -S 伺服器名稱.database.windows.net
-U 使用者名稱 -P 密碼-D 目標資料庫名稱 -i "路徑\指令碼.sql"
-e 資料庫版本 -s 資料庫大小 -o 還原歷程紀錄
同樣的在資料庫還原時,您可以看到整個過程中每個資料表資料匯入的筆數及完成度,最後一樣會告訴您總共歷時多久的資訊。
您可以利用 Windows Azure 管理入口網站來查看剛剛所還原的資料庫,確實已經透過公用程式建立完成。
【參考資料】