對于很多SQL Azure用戶來說,使用SQL Azure的第一步就是將已有的數(shù)據(jù)庫遷移到SQL Azure。下面我將向你介紹幫助您遷移數(shù)據(jù)庫的三種工具。
一、SQL Server遷移助理(SQL Server Migration Assistant)
首先介紹的是SQL Server遷移助理(SQL Server Migration Assistant,SSMA)。它有分別針對Access、MySQL、Oracle、Sybase的幾種版本。這里我們以SQL Server Migration Assistant 2008 for Access v4.2 為例。
1、先從File菜單打開遷移向?qū)В∕igration Wizard)。
2、然后在“創(chuàng)建新工程”(Create New Project)這一步,將遷移到(Migration To)修改為SQL Azure。這是需要注意的關(guān)鍵步驟,因為默認的選項是SQL Server。
3、然后, 我們把Access數(shù)據(jù)庫加入到向?qū)е,稍候幾秒鐘之后,這個向?qū)Ь蜁谐鯝ccess數(shù)據(jù)庫中的所有表和查詢等對象,以供選擇。
4、選擇好需要遷移的對象之后,下一步,我們需要提供SQL Azure的服務(wù)器和數(shù)據(jù)庫名稱及登錄信息。一般來說,這時我們可以在自己的SQL Azure服務(wù)器上創(chuàng)建一個空白數(shù)據(jù)庫。
5、最后,遷移的核心開始執(zhí)行了。在這一步中,遷移助理先把Access中的對象(包括表、主鍵、外鍵、約束等等)轉(zhuǎn)換成SQL Azure中對應(yīng)的對象,并在SQL Azure數(shù)據(jù)庫中創(chuàng)建這些對象,然后再把表內(nèi)的所有數(shù)據(jù)行轉(zhuǎn)換并載入SQL Azure數(shù)據(jù)庫中。對于轉(zhuǎn)換對象的過程,遷移助理生成了詳細的報告。我們可以點擊Report按鈕來瀏覽。
二、數(shù)據(jù)層應(yīng)用程序(Data-tier Application,DAC)
通過數(shù)據(jù)層應(yīng)用程序(Data-tier Application,縮寫為DAC),我們可以將SQL Server中的數(shù)據(jù)庫的Schema提取出來,并且可以方便地將Schema布署到SQL Azure上。數(shù)據(jù)層應(yīng)用程序DAC已經(jīng)集成在SQL Server Management Studio (2008 R2) 與Visual Studio 2010之中。面前,DAC只能提取和布署Schema,而不能提取、布署表中的數(shù)據(jù)行。今后,DAC會增加這項功能。
DAC很適宜用于基于數(shù)據(jù)庫的軟件的開發(fā)過程中,尤其當(dāng)我們把Visual Studio和Management Studio融合為一體時。
在本文中, 我們以Management Studio中的DAC為例,來介紹數(shù)據(jù)層應(yīng)用程序的提取與布署。
1、啟動提取數(shù)據(jù)層應(yīng)用程序的向?qū)。只需要在Object Explorer中右鍵點擊某一個SQL Server的數(shù)據(jù)庫,在彈出的菜單中選“Tasks”,然后選擇“Extract Data-tier Application”。這樣,提取數(shù)據(jù)層應(yīng)用程序的向?qū)Ь蛷棾鰜砹?/p>
。
2、在這個向?qū)е械腟et Properties(設(shè)置)頁面中,我們可以設(shè)置應(yīng)用程序的名稱以及DAC Package的路徑。
3、接著,進入Validation and Summary(校驗與總結(jié))頁面。如果第一步中所選的數(shù)據(jù)庫中有DAC不支持的特性,這一步會報錯。
4、進入Build Package頁面生成DAC包。下面我們將把剛才生成的DAC包布署到SQL Azure服務(wù)器中。
5、在Management Studio的Object Explorer中,右鍵點擊 一個SQL Azure服務(wù)器。在彈出的菜單中,選擇“Deploy Data-tier Application”(布署數(shù)據(jù)層應(yīng)用程序)。
6、在彈出的“Deploy Data-tier Application”向?qū)е,進入“Select Package”頁面。在這兒,我們選擇剛才生成的DAC包。
7、在隨后的“Update Configuration”頁面中,我們可以修改這次布署的目標(biāo)數(shù)據(jù)庫的名字。
8、在Summary頁面中,可以看到此次布署的總結(jié)。
9、最后,在“Deploy DAC”頁面中,向?qū)䦟AC包布署到SQL Azure服務(wù)器,并且在服務(wù)器上注冊這個DAC包的元數(shù)據(jù)。
三、腳本生成向?qū)В℅enerate Script Wizard,GSW)
使用腳本生成向?qū)磉w移數(shù)據(jù)庫的原理是:將一個數(shù)據(jù)庫的所有Schema與數(shù)據(jù)行都用GSW導(dǎo)出成Transact-SQL的腳本,然后在SQL數(shù)據(jù)庫中執(zhí)行這些腳本。具體地說則有下述步驟。
1、在Management Studio的Object Explorer中,右鍵點擊某一SQL Server的數(shù)據(jù)庫。在彈出的菜單中,選取“Tasks”,再在展開的菜單中選擇“Generate Scripts”。
2、這時會彈出“Generate and Publish Scripts”向?qū),即“生成與發(fā)布腳本”向?qū)АT谶@個向?qū)У腎ntroduction頁面中,點擊Next。
3、在“Choose Objects”頁面中,我們可以選擇需要遷移的表(Tables)、存儲過程(Stored Procedures)、用戶定義的數(shù)據(jù)類型(User-Defined Data Types)以及Schemas。
4、在“Set Scripting Options”頁面中,我們需要點擊“Advanced”按鈕,以更改高級選項。
5、我們需要更改兩處高級選項。其一是將“Script for the database engine type”改選為“SQL Azure Database”。這是因為我們要將這個數(shù)據(jù)庫遷移到SQL Azure上。
6、其二是將“Types of data to script”改選為“Schema and data”,以將數(shù)據(jù)模式與數(shù)據(jù)行一起遷移。
7、然后,我們可以逃過“Summary”頁面,來到“Save or Publish Scripts”頁面。在這兒,GSW將把我們選取的數(shù)據(jù)庫對象轉(zhuǎn)錄謄寫為一個T-SQL的腳本文件。
8、現(xiàn)在,我們就可以在SQL Azure服務(wù)器上新建一個數(shù)據(jù)庫,然后通過Management Studio的腳本窗口,在這個數(shù)據(jù)庫中來執(zhí)行剛才生成的T-SQL腳本。這樣,就完成了這次數(shù)據(jù)庫遷移。