AWS 迁移MSSQL 数据库到 Aurora

AWS 提供了数据库迁移的服务,叫作 Database Migration Service ( DMS)。 经过这个服务,咱们能够实现一样平台的迁移,例如 MySQL 到 MySQL,或者不一样平台的迁移,好比 MS SQL 到 Aurora。前者能够直接迁移,后者则须要使用 Schema Converter Tool (SCT)对 Schema进行 转换才能迁移。固然,若是数据库自己很小,那么可能直接手动拷贝的效率会更高了。html

AWS 迁移MSSQL 数据库到 Aurora

下面看一个简单的demo。数据库

豆子打算建立一个RDS的 MSSQL 数据库,一个 RDS的 Aurora 数据库。在MSSQL上我会建立一个sample的数据库,而后经过 SCT 进行 Schema 转换,而后经过 DMS 进行数据库的同步迁移。安全

下面看看具体操做服务器

首先建立 RDS MSSQL 数据库

进入 AWS RDS
AWS 迁移MSSQL 数据库到 Aurora网络

新建一个 MSSQL 数据库,注意我选择的类型是 SQL Server Standard Edition。DMS不支持 Express版本的迁移。ide

AWS 迁移MSSQL 数据库到 Aurora

数据库Instance的名字和密码工具

AWS 迁移MSSQL 数据库到 Aurora

测试的服务器不须要太好,最便宜的就行
AWS 迁移MSSQL 数据库到 Aurora测试

选择VPC (这里有个坑稍后我会提到)ui

AWS 迁移MSSQL 数据库到 Aurora

重点,注意看他的价格,一个月要768 美圆!!计算机网络

AWS 迁移MSSQL 数据库到 Aurora

这个是经过下面的价格算出来的。新手作这个实验大概要2个小时左右,两台服务器大概开支会在5刀左右,因此作完了实验必定要记得删除本身的数据库!!

AWS 迁移MSSQL 数据库到 Aurora

数据库建立中

AWS 迁移MSSQL 数据库到 Aurora

我顺便建立了一个安全组,容许我本身的机器访问1433和3306端口 。(目前为止没问题,可是这是第二个坑,后面会有问题)

AWS 迁移MSSQL 数据库到 Aurora

按照上面的操做步骤,我又建立了一个 Aurara的数据库,他会自动建立一个cluster,而后把你新建的成员放在里面(即便只有一个)

最后个人两个RDS的Instance就建立好了。demo1 是 MSSQL,作为个人source,demo2是Aurora,做为destination
AWS 迁移MSSQL 数据库到 Aurora

建立好了之后,我须要生成一些测试用的table和数据。 首先看看 MSSQL的 Endpoint
AWS 迁移MSSQL 数据库到 Aurora

在个人本地电脑上经过MSSQL Management 工具链接。理论上,这一步应该很简单,若是个人安全组策略正确的话。这里我碰见了第一个坑。个人本地电脑网络和AWS VPC直接是 S2S 的链接,而后AWS认为个人计算机属于内网,他很智能地把他的域名解析为内部IP。第一次我测试的时候是把RDS配置在另一个不一样的VPC里面,个人计算机和这个VPC的网络之间并无路由,也没有配置Gateway,内网访问是不通的,尽管他有一个公网IP,可是AWS自动给我解析为内网IP以后,个人路由会找不到对应的路径致使我始终没法访问。最后我只能重建RDS,而后确保他在的VPC和个人计算机网络之间存在了S2S链接关系。

链接以后,执行SQL脚本,他会建立一堆表,并插入一些测试数据

AWS 迁移MSSQL 数据库到 Aurora

下载安装 Schema Conversion Tool

下一步咱们须要在个人电脑上安装 SCT 工具。
在下面的链接上下载SCI,MSSQL 的 JDBC 以及 MySQL的 JDBC

https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html

而后打开SCT,选择新建一个项目

AWS 迁移MSSQL 数据库到 Aurora

分别链接 MSSQL 和 Aurora
AWS 迁移MSSQL 数据库到 Aurora

AWS 迁移MSSQL 数据库到 Aurora

链接成功
AWS 迁移MSSQL 数据库到 Aurora

勾选咱们要迁移的数据库,以后在Action 选择 Create Report

AWS 迁移MSSQL 数据库到 Aurora

他会扫描你的 MSSQL 数据库进行评估是否能够转换。

下面是生成的报告

AWS 迁移MSSQL 数据库到 Aurora

下一步就是进行Schema的转换

AWS 迁移MSSQL 数据库到 Aurora

几秒以后 能够看见Schema已经在Aurora这边生成了

AWS 迁移MSSQL 数据库到 Aurora

配置DMS

登陆AWS 控制台 , 选择 Database Migration Service。这里我须要建立一个用来同步的Instance,相似EC2实例,可是由AWS来管理,建立Source Endpoint和 Destination Endpoint,最后建立一个任务来同步。

首先来建立一个 replication instance

AWS 迁移MSSQL 数据库到 Aurora

注意他所选择的VPC Secuirty Group 是我以前建立的,这里实际上是有问题的
AWS 迁移MSSQL 数据库到 Aurora

建立完成以后 咱们来继续建立Endpoint。

AWS 迁移MSSQL 数据库到 Aurora

Endpoint 建立完以后必定要测试 Connection。
AWS 迁移MSSQL 数据库到 Aurora

建立以后的样子

AWS 迁移MSSQL 数据库到 Aurora

建立好了以后来测试一下,不通!!

AWS 迁移MSSQL 数据库到 Aurora

我在这里卡了至少1个小时。最后发现有3个坑在这里。

首先,我以前配置这个SG的时候,只容许了我本地的机器访问,个人DMS的服务器是不行的,所以这里咱们须要把这个DMS的内网IP也加进去;

第二:SG的outbound rule默认是全部都打开的,我无心中进行了限制,所以须要确认outbound rule是放行的

第三:我有一个NACL在这个公网subnet上,所以我还得在NACL上面放行

AWS 迁移MSSQL 数据库到 Aurora

修改个人SG inbound rule 和 outbound rule

AWS 迁移MSSQL 数据库到 Aurora

修改个人NACL

AWS 迁移MSSQL 数据库到 Aurora

再测试一下链接成功

AWS 迁移MSSQL 数据库到 Aurora

最后,咱们来建立一个任务进行同步

AWS 迁移MSSQL 数据库到 Aurora

添加一个 selection rule

AWS 迁移MSSQL 数据库到 Aurora

等待2 分钟以后 进度条显示成功

AWS 迁移MSSQL 数据库到 Aurora

MSSQL Management 工具 链接 进入查询一下数据
AWS 迁移MSSQL 数据库到 Aurora

MySQL workbench 链接进入查询一下 数据一致,迁移成功
AWS 迁移MSSQL 数据库到 Aurora

相关文章
相关标签/搜索