次の方法で共有


将数据库迁移到SQL Azure的三种工具

对于很多SQL Azure用户来说,使用SQL Azure的第一步就是将已有的数据库迁移到SQL Azure。下面我将向你介绍帮助您迁移数据库的三种工具。

一、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菜单打开迁移向导(Migration Wizard)。

  

2、然后在“创建新工程”(Create New Project)这一步,将迁移到(Migration To)修改为SQL Azure。这是需要注意的关键步骤,因为默认的选项是SQL  Server。

3、然后, 我们把Access数据库加入到向导中,稍候几秒钟之后,这个向导就会列出Access数据库中的所有表和查询等对象,以供选择。

  

4、选择好需要迁移的对象之后,下一步,我们需要提供SQL Azure的服务器和数据库名称及登录信息。一般来说,这时我们可以在自己的SQL Azure服务器上创建一个空白数据库。

 

5、最后,迁移的核心开始执行了。在这一步中,迁移助理先把Access中的对象(包括表、主键、外键、约束等等)转换成SQL Azure中对应的对象,并在SQL Azure数据库中创建这些对象,然后再把表内的所有数据行转换并载入SQL Azure数据库中。对于转换对象的过程,迁移助理生成了详细的报告。我们可以点击Report按钮来浏览。 

 

二、数据层应用程序(Data-tier Application,DAC)

通过数据层应用程序(Data-tier Application,缩写为DAC),我们可以将SQL Server中的数据库的Schema提取出来,并且可以方便地将Schema布署到SQL Azure上。数据层应用程序DAC已经集成在SQL Server Management Studio (2008 R2) 与Visual Studio 2010之中。面前,DAC只能提取和布署Schema,而不能提取、布署表中的数据行。今后,DAC会增加这项功能。

DAC很适宜用于基于数据库的软件的开发过程中,尤其当我们把Visual Studio和Management Studio融合为一体时。

在本文中, 我们以Management Studio中的DAC为例,来介绍数据层应用程序的提取与布署。

1、启动提取数据层应用程序的向导。只需要在Object Explorer中右键点击某一个SQL Server的数据库,在弹出的菜单中选“Tasks”,然后选择“Extract Data-tier Application”。这样,提取数据层应用程序的向导就弹出来了

。 

2、在这个向导中的Set Properties(设置)页面中,我们可以设置应用程序的名称以及DAC Package的路径。

 

3、接着,进入Validation and Summary(校验与总结)页面。如果第一步中所选的数据库中有DAC不支持的特性,这一步会报错。

 

4、进入Build Package页面生成DAC包。下面我们将把刚才生成的DAC包布署到SQL Azure服务器中。 

 

5、在Management Studio的Object Explorer中,右键点击 一个SQL Azure服务器。在弹出的菜单中,选择“Deploy Data-tier Application”(布署数据层应用程序)。 

 

6、在弹出的“Deploy Data-tier Application”向导中,进入“Select Package”页面。在这儿,我们选择刚才生成的DAC包。 

 

7、在随后的“Update Configuration”页面中,我们可以修改这次布署的目标数据库的名字。

8、在Summary页面中,可以看到此次布署的总结。

9、最后,在“Deploy DAC”页面中,向导会将DAC包布署到SQL Azure服务器,并且在服务器上注册这个DAC包的元数据。

三、脚本生成向导(Generate Script Wizard,GSW)

使用脚本生成向导来迁移数据库的原理是:将一个数据库的所有Schema与数据行都用GSW导出成Transact-SQL的脚本,然后在SQL数据库中执行这些脚本。具体地说则有下述步骤。

1、在Management Studio的Object Explorer中,右键点击某一SQL Server的数据库。在弹出的菜单中,选取“Tasks”,再在展开的菜单中选择“Generate Scripts”。

2、这时会弹出“Generate and Publish Scripts”向导,即“生成与发布脚本”向导。在这个向导的Introduction页面中,点击Next。

3、在“Choose Objects”页面中,我们可以选择需要迁移的表(Tables)、存储过程(Stored Procedures)、用户定义的数据类型(User-Defined Data Types)以及Schemas。

4、在“Set Scripting Options”页面中,我们需要点击“Advanced”按钮,以更改高级选项。

5、我们需要更改两处高级选项。其一是将“Script for the database engine type”改选为“SQL Azure Database”。这是因为我们要将这个数据库迁移到SQL Azure上。

6、其二是将“Types of data to script”改选为“Schema and data”,以将数据模式与数据行一起迁移。

7、然后,我们可以逃过“Summary”页面,来到“Save or Publish Scripts”页面。在这儿,GSW将把我们选取的数据库对象转录誊写为一个T-SQL的脚本文件。

8、现在,我们就可以在SQL Azure服务器上新建一个数据库,然后通过Management Studio的脚本窗口,在这个数据库中来执行刚才生成的T-SQL脚本。这样,就完成了这次数据库迁移。

软件开发测试工程师  范智华

Comments