上船容易——从阿里云迁移SQL数据库到Azure云的尝试 之二

本文介绍了从阿里云PaaS SQL到Azure SQL的迁移过程及遇到的问题。由于Ali RDS限制了系统库的访问,最终采用在本地创建IaaS数据库再进行导入导出的方法。讨论了不同迁移工具(SSMS和DMA)的适用场景,并分享了如何实现平滑迁移的经验。

   上文书说到,利用DMA和SSMS迁移阿里PaaS SQL到Azure失败了,并且初步查到了原因,是因为Ali RDS对系统库的访问做了Deny。

    解决的办法是在本地(Ali云)对数据库进行导出导入:创建一个新的IaaS的数据库,然后将PaaS上的数据导入。有了这个可以输出的数据库,就能够在Azure快乐地进行输入啦。

   

    进行数据迁移,除了DMA之外,SSMS 2017的菜单里也集成了Azure SQL的部署向导,能够把SQL Server直接部署到Azure SQL的PaaS实例。

    clip_image001

    放这张图的意义在于这句话“……将数据库部署到Microsoft Azure SQL Database。您还可以使用该向导将 Microsoft Azure SQL Database部署到SQL Server的本地实例,或将数据库从一个Microsoft Azure SQL Database实例移到另一个实例。”

    我觉得,云服务应该是能上能下的,而不是上了就下不来的。虽然这个向导的迁移并不是我期望的平滑同步迁移。SSMS使用的是BACPAC的迁移方式。

    clip_image001[5]

    在这个场景中,我的笔记本同时连接到不同的云平台,这意味着数据需要从Ali云流到我的电脑,然后再流入Azure云。实际部署中肯定应该把SSMS部署在云中,提高复制速度减少流量。并且,需要保留足够的存储空间以存放BACPAC文件。

    回到这个故事的最初,朋友其实是有很大的数据库需要迁移的。所以,这种导入导出的方式并不是我所期望的。我期望的是没有什么实际停机时间的平滑迁移。所以我觉得订阅复制方式可能更加适合。

    借这个机会,我也在Ali的SQL Server上启用了分发,在Azure上启用了订阅。

    image

    从Ali的IaaS SQL到Azure,就没啥问题了。转过身,我当然也要试试DMA这个工具来迁移数据库,

    image

    这一次,能够访问系统库的数据库服务器可以迁移了。DMA工具会对迁移进行评估,然后来创建迁移工作。在这个例子里,因为存在跨库查询,所以迁移到PaaS的SQL实例会有报错,建议修改使用弹性查询。

    通过这次折腾,我觉得比较好的迁移方式,是:

1、如果是个很小的数据库,并且也不想做任何的修改调整的话,简单粗暴的虚机导出导入~

2、如果希望通过迁移完成从IaaS到PaaS的变迁,建议首先评估PaaS是否有任何限制,上得去,是否下得来

3、源SQL到目标SQL的操作兼容性。可以用DMA进行迁移评估,根据报告确认有哪些兼容性调整的工作

4、数据库稍大,就需要考虑数据连续性和迁移窗口的矛盾,是否使用AlwaysOn或者发布订阅的方式来做数据库复制

另外有个本来是NDA的消息,不过微软的兄弟已经透露了,Azure上很快有更新的Managed SQL的版本,能够减少更多的限制,提供更好的性能和灵活度。

    上船容易,也要想想下船难不难。




     本文转自HaoHu 51CTO博客,原文链接:http://blog.51cto.com/haohu/2059547,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值