《Windows Azure Platform 系列文章目錄》
注意:
1.只有SQL Server 2012 CU4及以上版本才支持本章內容
2.當你的數據庫文件很大時,建議優化以下內容:
(1)創建新的SQL Server VM,至少4Core,將bacpac文件保存到本地磁盤。注意不能保存到D盤,D盤是臨時磁盤,數據會有丟失風險
(2)將Azure SQL Database的配置升級到最高級別的P3,提高Performance
(3)按照以下內容進行數據庫還原
Update 2015-10-14
現在國內世紀互聯運維的Azure China,其SQL Azure組件已經升級到了V12版本。
如果是以下情況:
- 本地PC安裝的是SQL Server 2012 CU4的Management Studio
- 使用SQL Azure V12數據庫
還原bacpac文件的話,會遇到以下問題:
這是由於本地SQL 2012 Management Studio 客戶端不支持SQL Azure V12。
筆者建議讀者將SQL 2012 Management Studio升級大SQL 2014 Mangement Studio。如下圖:
SQL Azure提供一系列的數據復制和同步機制。例如,本地的SQL Server數據庫可以被發布到SQL Azure上;SQL Azure的數據庫也可以被打包下載到本地SQL Server服務器上;您還可以通過數據同步服務(Data Sync Service)備份數據庫,以及進行動態數據同步。
數據層應用程序
數據層應用程序(Data-Tier Application, DAC)封裝了一個應用程序所用的所有數據庫和實例對象,例如表、索引、視圖、存儲過程乃至用戶等。
通過這個邏輯上的封裝,開發者可以直接對數據庫進行設置和修改,然后把封裝好的數據庫定義交給數據庫管理員部署在任何支持DAC的數據庫上。
DAC避免了維護數據庫腳本的復雜性,也弱化了開發者和數據庫管理員之間的相互依賴。
DAC還提供了自動化的數據庫更新,從而在更新數據結構的過程中保證數據不丟失。
DAC還支持版本控制,所以開發者和數據庫管理員可以像管理源代碼版本一樣管理不同的DAC版本。
在DAC的操作過程中經常要涌動啊的兩個文件類型,一個是.bacpac,一個是.dacpac
- .bacpac:.bacpac文件包含了一個數據庫中的結構和數據。其中數據庫結構信息與.dacpac文件中的信息相同,而數據是以JSON格式存儲的。
在邏輯上,.bacpac相當於數據庫的一個備份,它的主要作用在於數據庫的移植。
- .dacpac: .dacpac文件包含了一個數據庫中的結構,其主要作用是把數據庫結構部署到不同的環境,以及數據庫結構的更新。
首先我們需要在本地安裝SQL Server 2012並安裝SQL Server Management Studio。
本章我將介紹如何將雲端的SQL Azure中的數據庫導入到本地SQL Server數據庫。
1.先做好准備工作,我們使用SQL Server Management Studio在雲端創建一個SQL Azure,命名為LeiDB。同時創建若干張表。如下圖:
2.創建一個存儲賬號,命名為leizhangstorage(可以根據自己的需要選擇是否需要異地冗余),同時在storage中創建container命名為dbback,設置container權限為private。
3.登陸到Windows Azure Management Portal,選擇我們在步驟1中創建的SQL Azure,點擊Export,如下圖:
4.在彈出的Export Database Settings窗口中,設置Blob Storage和SQL Azure用戶名密碼
該步驟就是將SQL Azure中的LeiDB這個數據庫的bacpac文件(包含了數據庫結構和數據)備份到leizhangstorage這個存儲賬號中
5.我們以管理員身份打開本地的Visual Studio 2013,點擊View->Server Explorer。
在Server Explorer中,展開Windows Azure->Storage->leizhangstorage
選中我們在步驟4中生成的bacpac文件,右鍵Save As,保存至本地計算機上
6.打開本地計算的SQL Server Management Studio,連接本地的SQL Server服務。
點擊數據庫,右鍵,導入數據層應用程序
在彈出的窗口中,選擇從本地磁盤導入:
執行成功后,我們就可以看到雲端的SQL Azure數據庫已經保存到本地的SQL Server服務器上了。
經過以上的實例,我們現在在雲端的SQL Azure和本地的SQL Server上有兩份相同的數據庫。