将数据库迁移到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)。
将数据库迁移到SQL Azure的三种方式(转)  

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

3、然后, 我们把Access数据库加入到向导中,稍候几秒钟之后,这个向导就会列出Access数据库中的所有表和查询等对象,以供选择。
将数据库迁移到SQL Azure的三种方式(转)  
将数据库迁移到SQL Azure的三种方式(转)

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

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

将数据库迁移到SQL Azure的三种方式(转) 

二、数据层应用程序(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”。这样,提取数据层应用程序的向导就弹出来了

将数据库迁移到SQL Azure的三种方式(转)。 

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

 将数据库迁移到SQL Azure的三种方式(转)

3、接着,进入Validation and Summary(校验与总结)页面。如果第一步中所选的数据库中有DAC不支持的特性,这一步会报错。
将数据库迁移到SQL Azure的三种方式(转) 

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

将数据库迁移到SQL Azure的三种方式(转) 

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

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

将数据库迁移到SQL Azure的三种方式(转) 

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

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

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

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

将数据库迁移到SQL Azure的三种方式(转)

本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2012/11/12/2766323.html,如需转载请自行联系原作者

上一篇:[leetcode/lintcode 题解] 阿里面试高频题:岛屿的个数


下一篇:云原生之数据库:《数据库最佳实践_问题诊断》