標籤:通過ssms工具遷移本地的sql server database到windows azure sql database
通過SSMS工具遷移本地的SQL Server Database到Windows Azure SQL Database
微軟的產品更新越來越快了,幾乎每年都有產品更新,今天呢,我們主要介紹一下,如何將本地的SQL Server資料庫遷移到windows azure上的SQL Server Database。當然說到SQL Serrver資料庫的遷移,大家都會想到最普通及最普遍的方法,那就是通過備份資料庫,然後通過備份的資料庫檔案進行還原。其實呢,我們在IT營運的工作中多少會有體會,最普通的方法往往是最有效方法也是最安全的方法,但是效率不高,由於時代進步的太快了,我們也不能太out了,也不想用這個古老的方法去做資料移轉,畢竟SQL Server及windows azure都是微軟的產品,微軟肯定也有其他管理工具進行遷移或者管理。我們日常都會用到,資料庫的管理工具,我們首選會用到SQL Server Manager Studio(SSMS)進行管理操作。那SSMS到底支不支援從本地的SQL Server資料庫遷移資料到Windows azure SQL Server Database呢。答案是肯定支援的,那怎麼操作呢,那就是我們今天介紹的主要內容,我們會主要著重介紹兩種方法,第一是通過SSMS隨即轉移到windows azure sql database下,還有一種就是通過SSMS匯出需要遷移的資料庫結構描述資訊,然後在windows azure sql database下匯入架構資訊。
關於本地SQL Server遷移到Azure Database,首先我們需要明確二者之間的差異(比如支援的SQL文法及一些約束條件等),然後根據這些差異制定基於當前資料庫的遷移計劃。關於Azure SQL Database與傳統SQL Server資料庫幾點重要的差異:
1. 叢集索引要求:Azure SQL Database 不支援沒有叢集索引的表,表必須具有叢集索引(這點非常重要,更多約束參考:Azure SQL Database 一般性的指導原則和限制)。
2. Azure SQL Database Transact-SQL 參考
3. 不支援的 Transact-SQL 陳述式
關於具體的遷移實現過程,我們可以參考微軟官方提供的遷移方案:
1. 將 SQL Server 資料庫遷移到 Azure SQL Database
2. 使用 SQL Server Data Tools 將資料庫遷移到 Azure SQL Database
使用SQL Server資料庫匯入Azure
前提條件:
a. 需要在本地安裝SQL Server 2012 SP1 CU2 或者更新的版本. 如果您安裝了 SQL Server 2012 SP1,可以從下面的串連下載並更新SQL Server.
SQL Server2012 SP1 CU2 |
http://support.microsoft.com/kb/2790947/en-us |
SQL Server2012 SP1 CU4 |
http://support.microsoft.com/kb/2833645/en-us |
b. 本機資料庫的資料對象需要滿足支援DAC的要求,具體可以查看 對 SQL Server 物件和版本的 DAC 支援 (http://technet.microsoft.com/zh-cn/library/ee210549.aspx)
另外我們還可以通過第三方的工具來遷移。
使用SQLAzureMW進行遷移
SQLAzureMW是微軟公司發布在CodePlex上的一個項目,它可以將SQL 2005及SQL 2008資料庫遷移到SQL Azure上。其最新版本是3.3,是:
http://sqlazuremw.codeplex.com/releases/view/32334
SQLAzureMW會檢測並糾正SQL Server 2005/2008與SQL Azure之間的不相容性。嚮導能修複的一些常見問題有:使用varChar(max)替換text列、將使用者自訂類型轉換為基底類型。將text列轉換為varchar(max),將image轉換為varbinary(max),同時它還會取消對XML schema的綁定,因為SQL Azure並不支援它。由於SQL Azure缺乏對hierarchyID的支援,因此需要手工完成。除了在SQL Azure上產生指令碼以部署遷移的schema之外,使用者還可以憑藉該工具通過BCP來遷移表資料。
廢話不多說了,今天我們主要介紹通過SSMS如果做資料的遷移。具體操作見下:
前提是我們已經在windows azure上建立好了資料庫,然後用2008的Sql Server Manager Studio對資料庫進行串連管理,我們通過SSMS串連了本地的SQL SERVER及windows azure上的SQL Server Database。我們串連後發現,2008 sql server manager studio工具的任務下,沒有部署資料到windows azure database的選項,經過諮詢世紀互聯後,告知,SSMS的版本必須是2012以上版本,而我們現在使用的是2008版本的SSMS,所以無法通過以下方法進行匯出及匯入:
650) this.width=650;" title="clip_image002" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image002" src="http://s3.51cto.com/wyfs02/M02/53/BE/wKioL1Ruyy3BHnDsAAFCtljopeI460.jpg" height="310" />
為瞭解決問題,我們就在微軟的MSDN網站上下載最新的資料庫,目前微軟最新的資料庫版本為SQL Server 2014,所以我們就下載了SQL Seraver 2014 Manager Studio管理工具的安裝包。
Sql server 2014 manager studio管理資料庫
650) this.width=650;" title="clip_image004" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image004" src="http://s3.51cto.com/wyfs02/M00/53/BE/wKioL1Ruyy2zjZaWAADK1opoF90010.jpg" height="271" />
開始安裝SQL Server Manager Studio2014
650) this.width=650;" title="clip_image006" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image006" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyrShGdsnAADjDGHI9Cs631.jpg" height="385" />
安裝完成後,我們運行SQL Server Manager Studio2014工具
650) this.width=650;" title="clip_image008" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image008" src="http://s3.51cto.com/wyfs02/M01/53/C0/wKiom1RuyrSji8HAAACyuDKBsFY062.jpg" height="410" />
還是串連本地的SQL server資料庫和Windows azure Sql server database資料庫後,然後我們在本機資料庫下,右擊要遷移的資料庫---Deploy Database to windows azure sql database
我們發現一共有兩個選項,還有一個是Deploy Database to windows azure vm,這個選項是windows azure 上的vm上啟動並執行sql 資料庫遷移
650) this.width=650;" title="clip_image010" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image010" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyrTC326zAAGOXF_gk3k607.jpg" height="381" />
我們遷移本機資料到windows azure sql database後,我們預設下一步
650) this.width=650;" title="clip_image012" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image012" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1RuyrTB6DagAAFtmZ3xIzE164.jpg" height="376" />
解析來我們需要串連目標服務,也就是說遷移的目的地,我們要遷移到windows azure上,所以我們需要串連windows azure sql server database
650) this.width=650;" title="clip_image014" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image014" src="http://s3.51cto.com/wyfs02/M01/53/C0/wKiom1RuyrSQpVP9AAGVrPLIiF0641.jpg" height="389" />
可根據自己的選項進行串連及配置
650) this.width=650;" title="clip_image016" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image016" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyrSB2Xg3AAFu2X9HBaQ895.jpg" height="376" />
開始匯出sql server 的架構資訊
650) this.width=650;" title="clip_image018" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image018" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1RuyrTRi0AnAAE-NvJwB0Y397.jpg" height="391" />
開始在windows azure上建立對應的資料庫結構描述及資料包。
650) this.width=650;" title="clip_image020" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image020" src="http://s3.51cto.com/wyfs02/M01/53/C0/wKiom1RuyrXxIkPFAAFyORhnhOc867.jpg" height="388" />
操作完成
650) this.width=650;" title="clip_image022" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image022" src="http://s3.51cto.com/wyfs02/M00/53/BE/wKioL1Ruyy_RWm6KAAHAXFumS1A260.jpg" height="395" />
我們通過SSMS可以看見windows azure sql server database下多了一個本地的資料庫,通過查詢語句查看,資料完整性好。
650) this.width=650;" title="clip_image024" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image024" src="http://s3.51cto.com/wyfs02/M00/53/BE/wKioL1RuyzDR4EZ-AAFqilszSM8012.jpg" height="347" />
方法2:
我們在遷移資料庫的時候還有一張方法,那就是Export data-tier application進行還原。該功能類似於資料庫的備份機還原。
650) this.width=650;" title="clip_image026" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image026" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1Ruyrbh1VLSAAGozRN6A64609.jpg" height="401" />
我們預設下一步
650) this.width=650;" title="clip_image028" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image028" src="http://s3.51cto.com/wyfs02/M01/53/C0/wKiom1RuyrbTm9KJAAFRuvEhTek237.jpg" height="490" />
儲存模板檔案,模板檔案的類型為.bacpac
650) this.width=650;" title="clip_image030" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image030" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyraR3-ZjAAGCZH3PiLk683.jpg" height="501" />
儲存資訊提示
650) this.width=650;" title="clip_image032" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image032" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1RuyrnA6PF2AAEKEsfDLP4361.jpg" height="497" />
操作完成。匯出資料庫及架構等資訊。
650) this.width=650;" title="clip_image034" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image034" src="http://s3.51cto.com/wyfs02/M01/53/BE/wKioL1RuyzOC0Z5PAAF3h_Oodqk601.jpg" height="497" />
匯出的架構檔案及資料檔案
650) this.width=650;" title="clip_image036" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image036" src="http://s3.51cto.com/wyfs02/M02/53/BE/wKioL1RuyzTCATZrAAC4Pfr-uDk520.jpg" height="290" />
接下來我們還是通過SSMS連結windows azure SQL Server database進行還原。我們右擊windows azure sql server database後,右擊import data-their application
650) this.width=650;" title="clip_image038" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image038" src="http://s3.51cto.com/wyfs02/M00/53/BE/wKioL1RuyzTjA2zvAAD7JSjLdEw584.jpg" height="330" />
提示資訊。
650) this.width=650;" title="clip_image040" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image040" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1RuyrqzpcKgAAFfLDQaAGk079.jpg" height="501" />
我們選擇剛才備份的資料庫結構描述檔案
650) this.width=650;" title="clip_image042" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image042" src="http://s3.51cto.com/wyfs02/M01/53/C0/wKiom1RuyrrBXZAbAAFw6mxgbpA551.jpg" height="501" />
確認資料庫的配置資訊後,下一步
650) this.width=650;" title="clip_image044" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image044" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyrqhAFO2AAFp3XbwJeY261.jpg" height="517" />
確認資訊
650) this.width=650;" title="clip_image046" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image046" src="http://s3.51cto.com/wyfs02/M00/53/C0/wKiom1RuyrqDfQtvAAEXbOfcfjQ330.jpg" height="506" />
操作完成。
650) this.width=650;" title="clip_image048" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image048" src="http://s3.51cto.com/wyfs02/M01/53/BE/wKioL1RuyzThRUbMAAGbwj4iT9w507.jpg" height="503" />
我們還是通過SSMS查看windows azure下的SQL Server database資料庫資訊
650) this.width=650;" title="clip_image050" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image050" src="http://s3.51cto.com/wyfs02/M02/53/BE/wKioL1RuyzWxjXDIAAEjc5Qha_E886.jpg" height="395" />
我們還是通過SQL 查詢語句對剛才遷移的資料庫進行查詢機判斷。
650) this.width=650;" title="clip_image052" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image052" src="http://s3.51cto.com/wyfs02/M02/53/C0/wKiom1RuyruwpdgjAAF3GU14qaI808.jpg" height="411" />
本文出自 “高文龍” 部落格,請務必保留此出處http://gaowenlong.blog.51cto.com/451336/1580834
通過SSMS工具遷移本地的SQL Server Database到Windows Azure SQL Database