AWS 提供了RDS这样传统的关系型数据库,也提供了Dynamodb这样的NoSQL 数据库。那么问题来了,如何把现有的数据库迁移到AWS上呢?
当然,数据库本身就提供了备份和还原的功能,我们完全可以手动拷贝备份到对应的服务器上然后进行还原的操作。这种操作对于相同平台的数据库来说还是比较方便的,但是如果涉及到不同的数据库平台,那就比较麻烦了。
AWS本身就提供了一个数据库迁移的服务,叫做 Database Migration Service ( DMS)。 通过这个服务,我们可以实现同类型迁移 (Homogenous migration),例如 Oracle 到 Oracle,或者混杂迁移(Heterogeneous migration) ,比如 Oracle 到 MS SQL。对于混杂迁移来说,我们需要使用 Schema Converter Tool (SCT)对 Schema进行 转换才能迁移。
下面看一个简单的demo,如何把一个现有的Microsoft SQL 数据库转换到AWS的 Aurora 数据库。
豆子打算创建一个RDS的 MSSQL 数据库,一个 RDS的 Aurora 数据库。在MSSQL上我会创建一些样本数据,然后通过 SCT 进行 Schema 转换,最后通过 DMS 进行数据库的同步进行迁移。值得一提的是,DMS支持从 RDS到RDS, EC2 到 RDS 甚至 本地数据库 到 RDS 的各种转换。
下面看看具体操作。在操作过程中,豆子因为实验环境的缘故,遇见了一些坑,会尽量列出来,避免再次发生。
首先创建 RDS数据库
进入 AWS RDS 控制界面
新建一个 MSSQL 数据库,注意我选择的类型是 SQL Server Standard Edition。很不幸的是,DMS不支持 Express版本的迁移。
输入数据库Instance的名字和密码
测试的服务器不需要太好,最便宜的就行