本文將介紹 SQL Database 新增的匯入匯出功能,幫助您可以透過資料層應用程式把資料庫匯入到 SQL Database,或是將 SQL Database 匯出至 Cloud Storage。
【背景說明】
在 Facebook 上看到 Eric Shangkuan 分享 ScottGu 發表的文章,文中提到 Windows Azure Platform Management Portal 的再次擴充許多新功能,其中包含下列功能:
- Service Bus Management and Monitoring
- Support for Managing Co-administrators
- Import/Export support for SQL Databases
- Virtual Machine Experience Enhancements
- Improved Cloud Service Status Notifications
- Media Services Monitoring Support
- Storage Container Creation and Access Control Support
本文就先針對 Import/Export support for SQL Databases 功能進行簡介,其他新功能再陸續上來跟各位分享。
【匯入資料庫到 SQL Database】
要將資料庫匯入 SQL Database 您可以依照下列步驟進行:
1. 建立 Storage。
目前要匯入資料庫到 SQL Database 只能透過 Windows Azure Storage(以下簡稱 STORAGE)當媒介,而且必須先將資料庫打包成 BACPAC 封裝檔,筆者假設您尚未建立 STORAGE ACCOUNT,所以第一步您必須先建立 STORAGE ACCOUNT,請於 Windows Azure Platform Management Portal 的巡覽列(Navigation Panel) 中點選【STORAGE】,接著於頁面右側點選【CREATE STORAGE ACCOUNT】。
輸入 STORAGE 的 URL 只要 URL 不重複,您可以依照自己的習慣或邏輯來為 STORAGE URL 命名,然後選擇您的 STORAGE 要放在哪個區域的資料中心或 AFFINITY GROUP,接著選擇開通 STORAGE ACCOUNT 的 Windows Azure 訂閱。您可以依照您的需求選擇是否啟用 STORAGE 的地理性複寫,最後按 CREATE STORAGE ACCOUNT。
當 STATUS 狀態顯示為 Online 表示您的 STORAGE 已經建立完畢。
2. 建立 Container。
點選您剛剛建立的 STORAGE(本文以 dacbacstorage 為例)來建立 Container。
於 STORAGE 主畫面中點選【CONTAINERS】來建立接下來要放置 BAC 封裝檔的容器。
在 Container 首頁上點選【CREATE A BLOB CONTAINER】。
於【New blob container】視窗中輸入 Container 的名稱以及選擇存取權限,預設為 Private 只有建立這個容器的帳號有權限存取;若你想要公開 blob 給其他人存取,可以選擇 Public Blob;另外你也可以選擇 Public Container,來把整個 Container 的相關屬性及 metadata 都公開,請注意這是完整公開,選擇這個選項前請考慮清楚。
建立完畢之後您於下圖看到剛剛所建立的 Container,請記住您的 Blob Container 的 URL,等下部署 BAC 封裝會用到。
另外您還必須到準備 STORAGE 的 Manage Key,請於 Windows Azure Platform Management Portal 點選巡覽列【STORAGE > MANAGE KEYS】。
記住 STORAGE ACCOUNT NAME 和 PRIMARY ACCESS KEY 或 SECOND ACCESS KEY 其中一組 KEY,這在下面的步驟利用 SSMS 產生資料層應用程式的時候用到。
3. 產生 BAC 封裝檔。
開啟 SQL Server Management Studio 2012,於物件總管點選【您要產生 BAC 封裝檔的資料庫 > 工作 > 匯出資料層應用程式】。
在【匯出資料層應用程式】視窗的【簡介】步驟點選下一步,或是您也可以勾選【不要再顯示此頁面】。
於【匯出設定】選擇【儲存至 Windows Azure】然後按【連接】。
輸入 STORAGE ACCOUNT NAME 以及 PRIMARY ACCESS KEY (或 SECONDARY ACCESS KEY)然後按連接。
順利連上 STORAGE 後,從下拉選單中可以選到您建立的 Container,選擇完畢之後按下一步。
最後按完成來開始將 SQL Server 中的資料庫匯出成資料層應用程式,並部署到 STORAGE。
若順利匯出成功後請按關閉。
截至此步驟要透過 SQL Database 的新功能來匯入資料庫的前置作業就已經完成。
4. 從 STORAGE 匯入資料層應用程式封裝檔。
點選左側巡覽列的 SQL DATABASES,您就可以看到下方多出了之前所沒有的【IMPORT】功能。
於【IMPORT DATABASE】視窗中點選資料夾圖示。
接著您就可以找到您在步驟 3 透過 SSMS 所部署的 BAC 封裝檔。
接著您可以依照下列的欄位來進行相關的組態設定:
- Name:資料庫名稱,預設會跟您產生BAC 封裝檔的資料庫相同。
- SUBSCRIPTION:請選擇適當的 Windows Azure 訂閱。
- SERVER:選擇您要將 BAC 封裝檔部署到哪台 SQL Database 伺服器。
- LOGIN NAME、PASSWORD:輸入足夠權限的 SQL Database 管理帳號。
- Configure advanced database settings:您可以視情況選擇是否進行進階設定。
當您勾選【Configure advanced database settings】您就可以設定 SQL Database 所要使用的版本以及最大資料庫容量。
接著您就可以看到正在匯入資料庫的訊息。
匯入完成之後您就可以在 SQL Database 頁面上看到您透過 BAC 封裝檔所匯入的資料庫。
【匯出 SQL Database 資料庫】
若您想要將 SQL Database 中的資料庫匯出來,首先您必須要有 STORAGE Account 並建立好 Container,設定方式可以參考前述的步驟。接著於Windows Azure Platform Management Portal 的巡覽列(Navigation Panel) 點選 SQL Databases,然後選擇【EXPORT】,本文以 pubs 資料庫為例,示範如何將 SQL Database 匯出。
於【Export Database】視窗中輸入下列資訊:
- FILENAME:從 SQL Database 匯出為資料層封裝程式的檔案名稱。
- SUBSCRIPTION:選擇適當的 Windows Azure 訂閱。
- BLOB STORAGE ACCOUNT:選擇適當的 STORAGE ACCOUNT 或建立新的 ACCOUNT。
- CONTAINER:選擇適當的 Container 或建立新的 Container。
- SERVER LOGIN NAME、PASSWORD:輸入 SQL Database 的登入名稱和密碼。
接著您就可以看到如下圖正在匯出 SQL Database 的狀態。
【檢視匯入匯出紀錄】
隨著新增匯入匯出功能,您可以在 Windows Azure Platform Management Portal 檢視 SQL Database 匯入和匯出的紀錄,請由巡覽列點選【SQL DATABASES > SERVERS > 您的 SQL Database 伺服器】。
在 SQL Database 伺服器主畫面中點選【HISTORY】。
輸入 SQL Database 的登入帳號及密碼後,您就可以看到該伺服器上所有資料庫匯出和匯入的紀錄。
【參考資料】
- Announcing: Improvements to the Windows Azure Portal
- How to: Import and Export a Database (Windows Azure SQL Database)
- How to: View Import and Export Status of Database (Windows Azure SQL Database)