从SQL Server迁移到AWS Aurora

5

我的组织正在考虑将当前的SQL Server RDS实例迁移到AWS Aurora实例。我们的动机仅仅是为了降低成本。我已经使用MySQL Workbench数据库迁移工具成功地运行了一些测试,将SQL Server数据库迁移到Aurora实例。该数据库约为4GB,有大约100张表格、十几个视图和存储过程。我已经在本地机器上使用MySQL数据库副本进行开发,因此所有的SQL语法差异都已经处理好。

在进行这个迁移项目之前,是否存在任何严重的缺点?我们在进行转换之前应该考虑什么?


好问题,但是我没有理解你的推理。是什么让你认为SQL Server Express不能满足你的需求? - Slava Murygin
你必须优先使用Aurora RDS测试存储过程。 - error2007s
谢谢,Slava。我正在测试环境中尝试使用Express。它似乎读取速度很快,但是与我们当前的db.m3.xlarge实例相比,写入(从Web表单保存数据)非常慢。 db.t2.medium是Express的最大类型。CPU看起来没问题。也许缺少PIOPS优化是造成差异的原因? - RichKB
Aurora将在不久的将来支持Postgres(目前处于预览阶段)。https://pages.awscloud.com/amazon-aurora-with-postgresql-compatibility-preview-form.html - Dave Maple
1个回答

8
这是一个非常重要的步骤。在迁移时,您需要考虑几个关键因素:
  1. 性能:对于简单请求,Aurora(改进的MySQL)可能比MS SQL更快,但: a)MS SQL具有智能查询分析器,为了获得良好的Aurora(MySQL)性能,您需要非常了解它的工作原理。SQL Server可以“原谅”很多开发人员的错误。 b)对于如此大的数据库,SQL Server企业版拥有一些出色的功能:分区数据压缩在线重建索引,始终保持启用。但企业版可能足够昂贵。这是真的。
  2. 开发:与SQL Server相比,MySQL(Aurora)语法非常简陋。MySQL不支持许多东西,例如HierarchyID、递归CTE、包含列在索引中、索引过滤、更改跟踪、XML、JSON等等。它甚至严重限制了嵌套查询的语法。许多事情需要自己实现。此外,SQL Server拥有更专业的开发工具,如SQL Server管理工具、SQL Profiler和Tuning Adviser等。
  3. 不同的实现:Aurora中的某些内容工作方式不同。例如,Aurora中的唯一索引允许有许多空值,但SQL Server不允许这样做。等等。
  4. 价格:为了获得良好的性能,现在您需要租用至少一个大型的Aurora实例,其成本约为每月210美元+副本=约420美元-并不便宜。Amazon Aurora Pricing
因此,我建议在迁移时计算所有优缺点,因为您可以降低资源成本,但需要在开发和维护上花费额外的时间和精力(因此需要金钱)。

1
谢谢,Vasyl。1-3是很好的建议,但最终是第4个原因让我们放弃了Aurora。为了获得可比较的实例,我们几乎没有节省任何东西。 - RichKB
没错,你可以节省一些钱,留点备用,特别是对于高负载的大型数据库来说。 - Vasyl Zvarydchuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接