SQL Server向云数据库迁移的三大利器

  • 来源: IT168 作者: sevenleaf   2010-07-02/10:04
  •       SQL Azure 是微软云计算平台(Windows Azure Platform)的三大组成部分之一,是一个部署在云端的关系型数据库引擎,它支持SQL Server中绝大多数和开发有关的功能。SQL Azure与本地的SQL Server和VS 2008/2010可以很容易的集成开发。

          云应用的开发者可以使用T-SQL查询数据,这类似于我们现在使用T-SQL在本地环境中查询SQL Server上的数据。SQL Azure具有高可用性和高可扩展性,能够在SQL.Azure.com进行注册。但是微软云计算平台没有为开发者提供SQL Azure场外管理工具和开发工具,因此,我们首先需要开发一个本地的数据库,然后把本地的数据库迁移到SQL Azure上去,有关迁移的方法,可以参考:迁移现有SQL数据库至SQL Azure。

          由微软或者第三方的一些开发者已经提供了一些SQL Azure工具,使用这些工具可以把本地SQL Server和SQL Azure数据库进行集成。在这些不多的工具中,Microsoft Sync Framework, SQL Azure迁移向导(the SQL Azure Migration Wizard,SQLAzureMW)和Gem Query是最流行的三个工具,本文就是介绍这三大利器,来帮助开发者更好的进行SQL Azure的开发。

          Microsoft Sync Framework

          Microsoft Sync Framework通过云可以同步任何类型的数据。同步框架包为SQL Azure提供了一个在生产环境的SQL Server数据库和SQL Azure数据库之间的同步功能。不仅如此,同步框架包为Visual Studio提供了一个插件。同步框架包由以下几个部分组成:

          SQL Azure同步提供者,SqlAzureSyncProvider:是一个新型的数据提供者,为SQL Azure提供了一流支持,提升了性能与可靠性。

          Sql Azure 离线VS插件,Sql Azure Offline Visual Studio Plug-In:为VS 2008 SP1提供了新的项目模板SqlAzureDataSyncClient。

          对SQL Serverd SQL Azure数据同步工具,SQL Azure Data Sync Tool for SQL Server:提供了一个向导式的工具。使用此工具能够同步SQL Server和SQL Azure之间的数据。

          新SQL Azure事件,New SQL Azure Events:增加了诸如ApplyChangeFailed, ApplyMetadataFailed和所有改变枚举事件。

          自动提取,Automated Provisioning:使用类SqlAzureSyncScopeProvisioning 和SqlAzureSyncTableProvisioning能提取当前环境信息。

          要使用Microsoft Sync Framework,首先要去下载这个工具,Microsoft Sync Framework和SDK的下载地址

          Microsoft Sync Framework Power Pack for SQL Azure November CTP (32-bit)

          Microsoft Sync Framework 2.0 Software Development Kit (SDK)

          要想使用Microsoft Sync Framework,你必须要在本地环境上安装SQL Server 2008,并且要有SQL Azure的账户才能使用此工具。

          安装完成后,点击开始|Microsoft Sync Framework|SQL Azure Data Sync Tool for SQL Server,如图1所示:

          如图1所示:

     
    图1 Microsoft Sync Framework介绍

          点击下一步,出现SQL Azure database界面,如图2所示:

     
    图2 SQL Azure数据库

    #p#副标题#e#

          在图2所示的界面中输入SQL Azure服务器名称、数据库名称、用户名、密码,也可以点击测试,输入完成后点击“下一步,next”;

          输入本地SQL Server的服务器名称、数据库名称,点击“下一步”,如图3所示:

     

    图3 数据表信息

          选择了我们需要的数据表后,这里可以选择一个表,也可选择全部表,对于冲突,可以选择冲突解决策略。

          设置完成后,若点击“Process”按钮,所有已选择的数据表将被创建在SQL Azure上,但是这些表里没有数据。直到同步的JOB从本地库更新这些表以后才会有数据。

          设置完成后,若点击“下一步”按钮,则可以设置同步表的顺序。

          同步数据的任务必须在本地数据库环境上设置一个唯一的名称,可以在汇总Summary页面设置同步数据库的大小是1G或者10G。

          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来迁移表数据。

    #p#副标题#e#

          应用与案例

          在这个案例中,我们将使用SQLAzureMW来迁移微软提供的实例数据库NORTHWND,最终生成能够在SQL Azure上部署的数据库脚本,详细步骤如下:

          第一步:下载SQLAzureMW。下载SQLAzureMW后,解压缩后包含四个文件,期中有2个配置文件,一个配置文件是SQL Azure不支持的文件,一个是SQL Azure数据迁移配置文件,如图4所示


    图4 打开SQLAzureMW

     

    图5 SQL Azure迁移向导功能选项

          第二步:运行SQLAzureMW。双击SQLAzureMW.exe,弹出窗口如图5所示,在图5的窗口中,我们可以看到:

          SQLAzureMW支持数据迁移的类型:

          (1) SQL Server到SQL Azure

          (2) SQL Azure到SQL Server

          (3) SQL Azure到SQL Azure

          SQLAzureMW支持数据迁移的功能有:

          (1) 只是分析数据库

          (2) 分析和迁移数据库

          (3) 不分析只迁移数据库

          (4) 直接运行T-SQL进行分析

          在这里我们选择了分析和迁移数据库|SQL Database,点击“下一步(Next)“,如图6所示:

     
    图6 连接数据库

          第三步:连接数据库。点击“连接服务器Connect to Server“,在弹出的窗口中我们可以输入要连接的数据库名称、用户名、密码,点击”连接Connect“;

    #p#副标题#e#

          第四步:选择数据库。连接成功后,需要选择数据库,这里我们选择了示例数据库NORTHWND,点击下一步,如图7所示:


    图7 选择数据库对象脚本  

     

          第五步:选择生成的脚步对象。在这里我们选择了数据库所有对象来生成脚本,点击下一步,如图8所示:

     
    图8 导出结果

          第六步:保存脚本文件。在图8中,我们生成了脚本的备份文件,这里调用了BCP命令,由于语言版本的问题,所以在图10中出现了一些乱码。但是我们还是可以看到已经生成完成了。切换到SQL Script这个Tab上来,如图9所示:

     
    图9 生成的SQL脚本

          在图9中,点击“保存 Save“,把生成的脚步保存成文件,这样我们就得到了一个能够在SQL Azure上部署的SQL脚本。我们的迁移工作可以说已经完成了百分之八十,剩下的工作就是拿这个脚本在我们云端的SQL Azure上去执行就可以了。

    #p#副标题#e#

          Gem Query

          Gem Query是由第三方供应商Microguru提供的免费SQL Azure查询工具。此工具安装在.NET Framework 3.5 SP1环境上,支持DDL和DML的SQL查询。它可以直接连接到SQL Azure数据库上进行查询,而不管本地环境是否安装了SQL Server。

          Gem Query的下载地址是:http://www.microguru.com/gem/

          下载安装完成后,点击开始|Gem Query,或者在桌面点击“Gem Query”,打开的界面如图10所示:

     
    图10 创建新查询

          输入服务器名称、用户名、密码、数据库名称后,点击“OK”就创建了一个新连接,连接上SQL Azure以后,就可以使用查询功能了,实例界面如图11所示:

     
    图11 使用Gem Query进行查询

          总结

          由微软或者第三方的一些开发者已经提供了一些SQL Azure工具,在这些工具中最流行的三个是:Microsoft Sync Framework, SQL Azure迁移向导(the SQL Azure Migration Wizard,SQLAzureMW)和Gem Query。使用同步框架可以同步数据库,使用SQLAzureMW可以迁移数据库,使用Gem Query可以查询数据,有了这三大利器,相信大家对SQL Azure的开发更有信心了。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多