加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

【AWS征文】AWS 迁移MSSQL 数据库到 Aurora

发布时间:2022-10-21 13:32:05 所属栏目:MsSql教程 来源:未知
导读: AWS 提供了RDS这样传统的关系型数据库,也提供了Dynamodb这样的NoSQL 数据库。那么问题来了,如何把现有的数据库迁移到AWS上呢?
当然,数据库本身就提供了备份和还原的功能,我们完全可以

AWS 提供了RDS这样传统的关系型数据库,也提供了Dynamodb这样的NoSQL 数据库。那么问题来了,如何把现有的数据库迁移到AWS上呢?

当然,数据库本身就提供了备份和还原的功能,我们完全可以手动拷贝备份到对应的服务器上然后进行还原的操作。这种操作对于相同平台的数据库来说还是比较方便的,但是如果涉及到不同的数据库平台,那就比较麻烦了。

AWS本身就提供了一个数据库迁移的服务,叫做 Database Migration Service ( DMS)。 通过这个服务,我们可以实现同类型迁移 (Homogenous migration),例如 Oracle 到 Oracle,或者混杂迁移(Heterogeneous migration) ,比如 Oracle 到 MS SQL。对于混杂迁移来说,我们需要使用 Schema Converter Tool (SCT)对 Schema进行 转换才能迁移。

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

下面看一个简单的demo,如何把一个现有的Microsoft SQL 数据库转换到AWS的 Aurora 数据库。

豆子打算创建一个RDS的 MSSQL 数据库,一个 RDS的 Aurora 数据库。在MSSQL上我会创建一些样本数据,然后通过 SCT 进行 Schema 转换,最后通过 DMS 进行数据库的同步进行迁移。值得一提的是,DMS支持从 RDS到RDS, EC2 到 RDS 甚至 本地数据库 到 RDS 的各种转换。

下面看看具体操作。在操作过程中,豆子因为实验环境的缘故,遇见了一些坑,会尽量列出来,避免再次发生。

首先创建 RDS数据库

进入 AWS RDS 控制界面

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

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

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

输入数据库Instance的名字和密码

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

测试的服务器不需要太好,最便宜的就行

mssql数据库同步_酷狗音乐怎么同步乐库_mssql数据导入mysql

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

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

重点,注意看他的价格,一个月要768 美元!!

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

这个是通过下面的价格算出来的。新手做这个实验大概要2个小时,两台服务器大概开支会在5刀左右,所以做完了实验一定要记得删除自己的数据库!!

mssql数据导入mysql_mssql数据库同步_酷狗音乐怎么同步乐库

数据库创建中

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

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

重复上面的操作步骤,我又创建了一个 Aurara的数据库,他会自动创建一个cluster,然后把你新建的成员放在里面(即使只有一个)

最后我的两个RDS的Instance就创建好了。demo1 是 MSSQL,做为我的数据库源,demo2是Aurora,作为数据库目标

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

创建好了数据库以后,我还需要生成一些测试用的table和数据。 下面看看如何从本机连接数据库。

首先看看 MSSQL的 Endpoint

mssql数据库同步_酷狗音乐怎么同步乐库_mssql数据导入mysql

mssql数据导入mysql_mssql数据库同步_酷狗音乐怎么同步乐库

在我的本地电脑上通过MSSQL Management 工具连接。理论上,这一步应该很简单,如果我的安全组策略正确的话。这里我遇见了第一个坑。我的账号里面有多个VPC的网络,而我的本地网络和AWS 某一个VPC之间已经存在了 S2S V-P-N 的连接,因而AWS会认为我的计算机属于内网,他很智能地把他的域名解析为内部IP。事实上,我的计算机和这个测试的VPC的网络之间并没有路由,也没有配置Gateway,内网访问是不通的,尽管他有一个公网IP,但是AWS自动给我解析为内网IP之后,我的路由会找不到对应的路径导致我始终无法访问。最后我只能重建RDS,然后确保他在的VPC和我的计算机网络之间存在了S2S连接关系。

连接之后,执行我的测试SQL脚本,他会创建一堆表,并插入一些测试数据

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

下载安装 Schema Conversion Tool

下一步我们需要在我的电脑上安装 SCT 工具。在下面的连接上下载SCI,MSSQL 的 JDBC 以及 MySQL的 JDBC

然后打开SCTmssql数据库同步,选择新建一个项目

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

分别连接 MSSQL 和 Aurora

mssql数据库同步_酷狗音乐怎么同步乐库_mssql数据导入mysql

连接成功

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

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

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

下面是生成的报告

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

如果报告没有问题,下一步就是进行Schema的转换了, 选择 Action- Convert Schema

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

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

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

配置DMS

最后一大块的操作是配置DMS。 登录AWS 控制台 , 选择 Database Migration Service。这个服务里面,我需要创建三个东西:

一个用来同步的Instance,类似EC2实例,但是它是由AWS来管理的创建Source Endpoint和 Destination Endpoint创建一个任务来同步。

首先来创建一个 replication instance ( 同步实例)

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

注意他所选择的VPC Secuirty Group 是我之前创建的,这里其实是有问题的

创建完成之后 我们来继续创建Endpoint。

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

mssql数据库同步_mssql数据导入mysql_酷狗音乐怎么同步乐库

Endpoint 创建完之后一定要测试 Connection。

mssql数据库同步_酷狗音乐怎么同步乐库_mssql数据导入mysql

创建之后的样子

mssql数据导入mysql_mssql数据库同步_酷狗音乐怎么同步乐库

创建好了之后来测试一下,不通!!

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

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

首先,我之前配置这个SG的时候,只允许了我本地的机器访问,我的DMS的服务器是不行的,因此这里我们需要把这个DMS的内网IP也加进去;

第二:SG的outbound rule默认是所有都打开的,我无意中进行了限制,因此需要确认outbound rule是放行的

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

获取DMS 同步服务器的IP

mssql数据导入mysql_酷狗音乐怎么同步乐库_mssql数据库同步

修改安全组的出入规则

mssql数据库同步_酷狗音乐怎么同步乐库_mssql数据导入mysql

修改我的NACL的出入规则

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

再测试一下连接成功

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

最后,我们来创建一个任务进行同步

mssql数据导入mysql_mssql数据库同步_酷狗音乐怎么同步乐库

添加一个 selection rule

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

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

mssql数据导入mysql_mssql数据库同步_酷狗音乐怎么同步乐库

测试

MSSQL Management 工具 连接我的源数据库, 进入查询一下数据

酷狗音乐怎么同步乐库_mssql数据导入mysql_mssql数据库同步

MySQL workbench 连接进入我的目标数据库,查询一下 数据一致,迁移成功!

酷狗音乐怎么同步乐库_mssql数据库同步_mssql数据导入mysql

再次友情提醒,实验成功了记得删掉服务器,AWS的收费还是很贵的。

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!