两大秘笈SQLServer向SQLAzure迁移Word下载.docx
《两大秘笈SQLServer向SQLAzure迁移Word下载.docx》由会员分享,可在线阅读,更多相关《两大秘笈SQLServer向SQLAzure迁移Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
使用SSMS进行迁移
微软云计算平台对开发人员的特点之一是开发人员可以充分使用现有的技能和经验,使用熟悉的开发语言和工具,使用SQL数据库管理工具进行迁移也证明了这一点。
下面来介绍使用SSMS进行迁移的详细步骤。
应用与案例
在这个案例中,我们将使用SSMS来迁移微软提供的实例数据库NORTHWND,最终生成能够在SQLAzure上部署的数据库脚本,详细步骤如下:
第一步:
打开SSMS,找到NORTHWND数据库,右击选择任务(Tasks),在弹出的窗口中选择生成脚本(GenerateScripts…),如图1所示:
图1选择数据库生成脚本
第二步:
在弹出的SQL脚本向导窗口中,点击“下一步”,出现选择数据库窗口,选择微软实例数据库NORTHWND,点击“下一步“,选择脚本选项,在脚本选项页面里,我们要对脚本选项里的几项进行配置,需要配置的几项已经用红线标示出来了,如图2所示:
图2设置导出脚本选项
(1)表/视图选项中需要配置
编写数据的脚本:
设置编写数据的脚本为False,因为现在我们不能把数据写入到生成的脚本中。
(2)常规中配置
编写UseDatabase脚本:
设置为False,因为SQLAzure不支持。
编写扩展属性脚本:
设置为False,因为SQLAzure不支持扩展属性。
将UDDTs转换为基类型:
设置为True,因为SQLAzure不支持用户自定义数据类型。
能够使用的数据类型就是门户站点里列出来的类型。
第三步:
选择要生成脚本的对象,在这里可以选择表、视图、存储过程,如图3所示:
图3选择表
第四步:
选择完表以后,点击“下一步“,SSMS自动生成脚本,这对于开发者或者DBA来说是非常熟悉的,生成成功后的窗口如图4所示:
图4导出成功
在图4中,公有37个项目生成成功,这里包括了NORTHWND所有的表、视图和存储过程。
在接下来的内容介绍中,我们还将使用这个实例数据库,不过迁移的方法换成了SQLAzure迁移向导这个工具。
使用SQLAzureMW进行迁移
SQLAzureMW是微软公司发布在CodePlex上的一个项目,它可以将SQL2005及SQL2008数据库迁移到SQLAzure上。
其最新版本是3.3,下载地址是:
/view/32334
SQLAzureMW会检测并纠正SQLServer2005/2008与SQLAzure之间的不兼容性。
向导能修复的一些常见问题有:
使用varChar(max)替换text列、将用户自定义类型转换为基类型。
将text列转换为varchar(max),将image转换为varbinary(max),同时它还会取消对XMLschema的绑定,因为SQLAzure并不支持它。
由于SQLAzure缺乏对hierarchyID的支持,因此需要手工完成。
除了在SQLAzure上生成脚本以部署迁移的schema之外,用户还可以凭借该工具通过BCP来迁移表数据。
在这个案例中,我们将使用SQLAzureMW来迁移微软提供的实例数据库NORTHWND,最终生成能够在SQLAzure上部署的数据库脚本,详细步骤如下:
下载SQLAzureMW。
下载SQLAzureMW后,解压缩后包含四个文件,期中有2个配置文件,一个配置文件是SQLAzure不支持的文件,一个是SQLAzure数据迁移配置文件,如图5所示
图5
打开SQLAzureMW
第二步:
运行SQLAzureMW。
双击SQLAzureMW.exe,弹出窗口如图6所示,在图6的窗口中,我们可以看到:
SQLAzureMW支持数据迁移的类型:
(1)SQLServer到SQLAzure
(2)SQLAzure到SQLServer
(3)SQLAzure到SQLAzure
SQLAzureMW支持数据迁移的功能有:
(1)只是分析数据库
(2)分析和迁移数据库
(3)不分析只迁移数据库
(4)直接运行T-SQL进行分析
在这里我们选择了分析和迁移数据库|SQLDatabase,点击“下一步(Next)“,如图7所示:
图7连接数据库
第三步:
连接数据库。
点击“连接服务器ConnecttoServer“,在弹出的窗口中我们可以输入要连接的数据库名称、用户名、密码,点击”连接Connect“,连接成功后的界面如图8所示:
图8选择数据库
选择数据库。
连接成功后,需要选择数据库,这里我们选择了示例数据库NORTHWND,点击下一步,如图9所示:
图9选择数据库对象脚本
第五步:
选择生成的脚步对象。
在这里我们选择了数据库所有对象来生成脚本,点击下一步,如图10所示:
图10导出结果
第六步:
保存脚本文件。
在图10中,我们生成了脚本的备份文件,这里调用了BCP命令,由于语言版本的问题,所以在图10中出现了一些乱码。
但是我们还是可以看到已经生成完成了。
切换到SQLScript这个Tab上来,如图11所示:
图11生成的SQL脚本
在图11中,点击“保存Save“,把生成的脚步保存成文件,这样我们就得到了一个能够在SQLAzure上部署的SQL脚本。
我们的迁移工作可以说已经完成了百分之八十,剩下的工作就是拿这个脚本在我们云端的SQLAzure上去执行就可以了。