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

简介:

   上文书说到,利用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,如需转载请自行联系原作者


相关文章
|
5天前
|
运维 数据库 数据库管理
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
|
4天前
|
存储 监控 安全
阿里云数据库(ADB)的多租户秘籍:资源隔离的魔法如何施展?
【8月更文挑战第27天】多租户系统在云计算与大数据领域日益重要,它让不同用户或组织能在共享基础设施上独立运行应用和服务,同时确保资源隔离与安全。ADB(如阿里云数据库)通过资源组及标签实现高效多租户隔离。资源组作为一种软隔离策略,允许为不同租户分配独立的计算和存储资源,并设置资源上限;资源标签则支持更细粒度的硬隔离,可为每个数据库表或查询指定特定标签,确保资源有效分配。此外,ADB还提供了资源监控与告警功能,帮助管理员实时监控并调整资源分配,避免性能瓶颈。这种灵活且高效的资源隔离方案为多租户环境下的数据处理提供了强大支持。
32 0
|
5天前
|
Cloud Native 数据管理 数据挖掘
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
|
3天前
|
SQL 数据库 Python
数据库 SQL常用语句
这篇文章是数据库SQL的常用语句指南,涵盖了查询格式、WHERE子句查询条件、多表连接查询、嵌套查询、字符匹配查询以及其他指令如排序、聚集函数、GROUP BY分组、EXIST子查询和外连接等知识点。
|
5天前
|
SQL Java 数据库
云数据库问题之上述查询语句中的慢SQL问题如何解决
云数据库问题之上述查询语句中的慢SQL问题如何解决
|
2月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
49 13
|
2月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
2月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
40 6
|
18天前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
80 0
|
2月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。

热门文章

最新文章

下一篇
云函数