mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案

 139cc79169e29c12c4004f11204ead8e.png

今天,我们讲讲如何使用源MySQL数据库执行数据库迁移到MySQL数据库的目标Amazon RDS的方案,同时由于(源和目标数据库引擎是相同的)——模式结构、数据类型和数据库代码在源和目标数据库之间是兼容的,这意味着这种迁移不需要任何模式转换。

63a3656f7a8703d9cde9efd0f12a0b07.png

716409c51c57d98928f2f8809d152e77.gif

 数据库迁移可以通过多种方式执行:可以通过迁移实例的方式,也可以通过DMS进行迁移。这里我们将使用AWS数据库迁移服务(DMS)执行连续的数据复制迁移,迁移思路如下:

  • 创建目标数据库

  • 设置网络

  • 创建复制实例

  • 创建源和目标段节点

  • 配置数据库

  • 创建和运行复制任务

    1afcf21af42d84f248e85e6e9499b7a6.gif

1.1

创建目标数据库

在配置AWS DMS之前,需要在提供的AWS帐户中创建目标数据库。使用AWS关系数据库服务(RDS)来执行此活动,使得在云中轻松地设置、操作和扩展关系数据库。

1. 进入AWS管理控制台, 从服务中选择RDS然后点击创建数据库

2. 在引擎选项中,选择MySQL,版本选择MySQL 5.6.44

79ed04a8161594878193ea2e23e8dede.png

       在设置部分,为新数据库实例配置数据库实例标识符(比如 database-1)、主用户名(比如 admin)和主密码。这里密码设置为“passwr0d”

52d48de6b4c832303a856e6ed9b8cdaf.png

       数据库选择db.m5.large来自标准DB实例类,并保留存储参数的默认值。

a9d887f119a410ab5aa3a10f791e4b11.png

3. 在可用性与持久性部分,选用缺省值,创建备用实例(使用多AZ部署更加安全)

c3cf79c86a87ff15e9c71b2d199d9dce.png

4. 在连接部分:

  • 在Virtual Private Cloud (VPC),选择 Generated VPC。

  • 在其它连接配置 -> VPC 安全组,选择 新建 VPC 安全组,输入名称(比如 “DB-SG”)

511dab44da6e57cfa11a059e60a4fa1f.png

5. 对于 数据库身份验证,选择 密码身份验证。

6. 在 其它配置 部分,确保 监控 下面的 启用增强监测 不被选中,如下图所示:

cf0fc07f371a91cc00fde3414a473183.png

c4e64704296b33419ddd184b9b9ec830.png

93cfd2fb8a535d4825507dba17909f5a.png

7. 最后,点击创建数据库按钮。

9e32abf7ef405521ee8049997b87d2a4.png

1afcf21af42d84f248e85e6e9499b7a6.gif

1.2

设置网络

      由于在迁移的过程中,不使用VPNAWS直接连接,因此DMS复制实例将需要通过公共internet连接到源数据库,而通过专用网络连接到目标数据库

f7357258b3e7aa4e4fbebaac96a35f5a.png

1afcf21af42d84f248e85e6e9499b7a6.gif

1.2.1 

创建复制子网组

使用AWS DMS的先决条件之一是配置一个子网组,该子网组是将由DMS复制实例使用的子网集合。

1.进入AWS控制台>服务>Database Migration Service>子网组,点击创建子网组按钮。

2.在创建复制子网组中输入以下参数值:

参数
名称dms-subnet-group
说明Default VPC subnet group
VPCGenerated VPC
添加子网选择Generated VPC-public-a, Generated VPC-public-b

cbc862dfc231cc32ad44106612b3e3b7.png

点击创建子网

1afcf21af42d84f248e85e6e9499b7a6.gif

1.2.2

配置安全组

      在进行数据库迁移的时候,VPC安全组必须允许从DMS复制实例到目标RDS数据库的入站流量。

  • 为DMS复制实例创建一个安全组 

  1. 进入AWS控制台>服务> EC2 >安全组,点击创建安全组按钮。

  2. 输入安全组名称(例如RI-SG),给它一个描述并为VPC字段选择生成的VPC。

f0a9654cc87512bc9e03d4be8c4f32ea.png

更新数据库安全组

  1. a) 仍然AWS管理控制台 > 服务 > EC2 > 安全组屏幕中选择之前创建的数据库安全组 DB-SG

  2. b) 编辑和更新数据库安全组,以允许来自端口3306上的DMS复制实例安全组的入站流量

d6177015787ddc368186adaee9c02be2.png

1afcf21af42d84f248e85e6e9499b7a6.gif

1.3

创建DMS Replication实例

1.3.1

创建AWS DMS Replication实例

      在此步骤中,将创建一个AWS数据库迁移服务复制实例,这实例启动源数据库和目标数据库之间的连接,传输数据,并缓存在初始数据加载期间源数据库上发生的任何更改。

(1)在AWS控制台内部,进入服务->数据库迁移服务。

(2)点击复制实例中的创建复制实例按钮。

50449a8b49e9a67197125be0ec213a76.png

(3)在“创建复制实例”屏幕上,使用以下参数值配置一个新的复制实例:

参数
名称replication-instance
描述DMS replication instance
实例类dms.t2.medium
引擎版本dms.t2.medium
分配的存储空间 (GB)50
VPCGenerated VPC
多可用区Unchecked
公开访问Checked

如下图所示:

07845282f50b6e0c4d61e7d2f967f3fb.png

在高级安全性和网络配置中,请确保选择前面创建的复制子网组和复制实例安全组。

78a1386938997207b3c8e415059e55cd.png

点击创建按钮。

      创建复制实例需要花几分钟时间,确保状态变为可用,再执行下面的步骤。

1afcf21af42d84f248e85e6e9499b7a6.gif

1.4

创建源环境和目标环境Endpoints

1.4.1

创建源环境endpoint

使用下面的参数去配置endpoint

参数
终端节点类型Source endpoint
终端节点标识符source-endpoint
源引擎mysql
服务器名称Source Environment – Database Server IP from the Event Engine – Team Dashboard
端口3306
安全套接字层(SSL)模式none
用户名wordpress-user
密码wordpress-user

f0e0a5f41919a46c1baf666dd670b6bd.png

      打开测试端点连接(可选)部分,然后在VPC下拉菜单中选择生成的VPC并单击Run Test按钮来验证端点配置是否有效。

306f9cad839efcc86c09e52442b216c7.png

       测试将运行一分钟,会在Status列中看到成功消息。单击Create endpoint按钮创建端点。

      在出现任何错误的情况下确保正确配置了端点参数,并且复制实例是在检查了可公开访问的参数后创建的。

1afcf21af42d84f248e85e6e9499b7a6.gif

1.4.2

 创建目标endpoint

      重复所有步骤,以创建具有以下参数值的目标端点:

参数
终端节点类型Target endpoint
选择RDS数据库实例checked
RDS 实例Select your RDS instance from the drop-down
终端节点标识符target-endpoint
目标引擎mysql (will be pre-populated)
服务器名称(leave the the pre-populated value)
端口306 (will be pre-populated)
安全套接字层(SSL)模式none
用户名(leave the pre-populated value)
密码Enter password you used when you creating the RDS database
1afcf21af42d84f248e85e6e9499b7a6.gif

1.4.3

调整参数

      在特定于终端的设置->额外连接属性复制-粘贴以下连接参数

parallelLoadThreads=1; initstmt=SET FOREIGN_KEY_CHECKS=0

      如果出现任何错误,请确保RDS数据库的VPC安全组允许来自AWS DMS复制实例安全组(或例如来自整个生成的VPC(10.0.0.0/16))的端口3306上的入站流量。1.4.4在“测试端点连接”(可选)下拉菜单中选择生成的VPC,然后单击“运行测试”按钮,以验证端点是否有效。

1afcf21af42d84f248e85e6e9499b7a6.gif

1.4.4

      在测试端点连接”(可选)下拉菜单中选择生成的VPC,然后单击运行测试按钮,以验证端点是否有效。

      如果出现任何错误,请确保RDS数据库的VPC安全组允许来自AWS DMS复制实例安全组(或例如来自整个生成的VPC(10.0.0.0/16))的端口3306上的入站流量。

1afcf21af42d84f248e85e6e9499b7a6.gif

1.5

配置源数据库

1.5.1

使用更改数据捕获(CDC)运行DMS复制任务

      为了确保数据库迁移的停机时间最小化,我们将使用从源数据库到目标数据库的更改的连续复制(也称为更改数据捕获(Change Data Capture, CDC))

1afcf21af42d84f248e85e6e9499b7a6.gif

1.5.2

在源数据库上启用二进制日志

      未了实现从MySQL数据库持续复制AWS DMS,需要启用二进制日志并对源数据库进行配置更改。

      修改“wordpress-user”的权限

(1)登录到源环境数据库服务器

      通过Database SSH key(这是个私有.pem密钥),并使用它连接到数据库服务器(用户是centos)

013a9c4219995a1a6c6f291ecff37117.png

(2)为 wordpress-user数据库用户授予额外的特权

        在数据库服务器上运行以下命令:

sudo mysql -u root -p

GRANT REPLICATION CLIENT ON *.* to ‘wordpress-user’;

GRANT REPLICATION SLAVE ON *.* to ‘wordpress-user’;

GRANT SUPER ON *.* to ‘wordpress-user’;

exit

(3)创建一个bin logs目录,

       在数据库服务器上运行以下命令:

sudo su – mysql

mkdir /var/lib/mysql/binlogs

exit

(4)修改/etc/my.cnf 文件,

       运行以下程序来编辑文件:

sudo vi /etc/my.cnf

         然后在[mysqld]部分添加以下信息:

 server_id=1

log-bin=/var/lib/mysql/binlogs/log

binlog_format=ROW

expire_logs_days=1

binlog_checksum=NONE

binlog_row_image=FULL

log_slave_updates=TRUE

(5)重启Mysql服务,

       运行以下命令来应用更改:

sudo service mysql restart

(6)测试,运行以下命令来应用更改:

sudo mysql -u root -p

select variable_value as “BINARY LOGGING STATUS (log-bin) :: “

from information_schema.global_variables where variable_name=’log_bin’;

 select variable_value as “BINARY LOG FORMAT (binlog_format) :: “

from information_schema.global_variables where variable_name=’binlog_format’;

 exit

      输出必须显示设置为ON的二进制日志状态,如下面的屏幕截图所示:

b1b225e449274c2324e892256a208811.png

      如果确实如此您可以 退出 SSH 了。如果出现任何问题请检查 /var/log/mysqld.log 文件中的错误信息。

1afcf21af42d84f248e85e6e9499b7a6.gif

1.6

创建和运行复制任务

回到AWS DMS控制台,进入数据库迁移任务,并单击Create Task按钮。

1)在创建数据库迁移任务屏幕中输入以下参数值:

参数
任务标识符replication-cdc
复制实例replication-instance
源终端节点source-endpoint
目标终端节点target-endpoint
迁移类型Migrate existing data and replicate ongoing changes
在创建时启动任务Checked

1a7e8d1656aab4acc5a8fea66f8e6184.png

2)在任务设置面板中输入以下值(保持其他值为默认值):

参数
目标表准备模式Do nothing
启用CloudWatch 日志Checked
启用验证Checked

a767ca1239a720bf70371a213c741356.png

3)在表映射面板的选择向导 UI模式中,点击添加新选择规则按钮,在架构下拉列表中选择wordpress-db。

a2d35504177fe3227bece873c2a34eb7.png

4)滚动到屏幕底部,单击创建任务按钮创建任务并开始数据复制即可。

802257a9486234554c6f76952ebfe1e6.png

4b80d93a442dda1c0e5f380ca7347d70.gif

      以上介绍了如何将源mysql数据库迁移至Amazon RDS的方案,通过上面的步骤可以完整实现数据库的迁移。这里面除了上面的操作步骤的细节,还有目标环境的网络构建,确保目标网络至少2个以上的网络,且有必备的公有子网和私有子网,公有子网能与源环境互通即可。

817878ecdc283ac7268178f75c1fe13f.gif

      敏捷云是一家专注为企业客户提供AWS云服务咨询、迁移、托管运维和解决方案的创新公司,我们拥有丰富的数据库迁移经验,不但帮助客户安全高效地把数据迁移上云,还为企业优化成本,降低运维费用,让用户拥有优质云端应用体验。

文章资料来源AWS官方,由敏捷云编写

图片来自网络,版权归原作者所有

侵删致歉


延伸阅读:

【AWS ·创新科技】 关于AWS CDK 构建 EKS 平台

【AWS ·创新科技】当 DR 灾备遇到 KMS( 二)

【AWS ·创新科技】当 DR 灾备遇到 KMS(一)

【AWS ·创新科技】AWS CloudFront 根据客户端IP做302重定向

【AWS ·创新科技】AWS CloudFront + Lambda@Edge 的切图方案

【AWS ·创新科技】使用AWS Lambda和Amazon Cloudwatch定时重启Instance指南

F5的分布式多云活架构

F5 的公有云WEB安全与合规性

Fortinet SD-WAN的优势与应用场景

Prisma Cloud落地中国,为本土云安全保驾护航

Prisma Cloud商业合规版的功能

【云势工具】成本追溯功能OptimizeNow重磅推出2.0版

ded0f92bd395fdd507a1065385733f97.png

       深圳敏捷云计算科技有限公司是一家专注于公有云增值服务的技术创新型公司,为企业客户提供云迁移,培训,开发,安全合规以及运维服务。

29b91c0bc496ecf2e281c6008b88f9a6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse run on server 点不了finish_分享点经验 | springboot入门及编码

点击蓝字关注我们AMP很多新人在刚刚接触后端开发的时候,可能对springboot的概念、如何快速上手一个springboot项目多多少少有些一知半解;此外写出来的代码也因为不够规范而可读性较低,导致后期难以维护。本文旨在站在新手的视角,尽…

mac redis 客户端_分享一个免费好用的Redis桌面客户端

今天波波为做开发的朋友们分享一个免费好用的Redis桌面客户端。这个工具纯属机缘巧合下发现的,前几天波波在开发一个物联网平台,硬件通信部分用了Workman Gateway来负责通信和消息推送,结果因为自己把官方的文档理解错误,遇到了一…

实测实量数据表格_建筑工程质量实测实量操作手册,130页PPT下载!

来源:百度文库版权归原作者所有文件下载方式在最后第一篇 总 则1、适用范围2、取样总则第二篇 尺差控制篇1、混凝土结构工程2、实测实量数据、水平基准线上墙3、砌体工程4、抹灰工程5、设备安装6、涂饰工程7、饰面墙砖(石材)工程8、地面饰面砖(石材)工程9、吊…

0018计算机基础知识,0018 0019计算机应用基础上机试题

满意答案pgeqanyyafe2013.02.23采纳率:51% 等级:12已帮助:6328人有2套:复制发给你? 还是通过QQ发给你呢? 还是给你发到邮箱呢?第一套:《计算机应用基础》上机考试试题 姓名&…

java接口测试工具_【分享】接口工具对比(apipost、jmeter、postman、swagger等)

一、接口都有哪些类型?接口一般分为两种:1.程序内部的接口 2.系统对外的接口系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好的方法来获取数据…

用flash做古诗动画_带孩子用两张A4纸做动画(内附资源可下载)

不要让孩子在成长过程中丢失了对自然的好奇心,在自然科学(物理,化学,生物,天文......)的实验中快乐成长,热爱生活,保护环境,探索精彩世界。科学爸爸的孩子从2014年四岁多开始对科学产生了浓厚兴…

promise的状态以及api介绍_2019年,盘点一些我出过的前端面试题以及对求职者的建议

笔者虽然曾经也面试过很多求职者,但是对于前端的笔试和面试,我觉得并不能体现一个人的真实能力,所以建议大家多修炼前端真正的技术.对于前端面试题,之前也承诺过读者要出一篇,笔者大致总结一下曾经面试的题目.后续不会再出面试题,而是聚焦于一些真正的,有利于成长性的技术文章和…

otis电梯服务器tt使用说明_南充私人电梯

南充私人电梯,成都蒂澳机电放心产品,并在麓山国际社区、麓湖别墅、蔚蓝卡地亚、城南官邸、城南逸家、复地御香山、万科五龙山、保利198、美城悦荣府、三利宅院、维也纳森林别墅、乐山御墅、华侨城纯水岸(东岸)、芙蓉古城等知名别墅楼盘均有大量成功案例。…

计算机上课创意互动游戏初中,16个课前热身小游戏:让每一堂课都充满新鲜感...

课堂正式开始之前,设置热身游戏,教学效果会更佳。它可以达到两个目的:一是把学生的注意力吸引到课堂;二是通过游戏自然过渡到课堂内容,增加课堂趣味性和学生参与感。受新冠病毒的影响,居家学习席卷全国&…

ros c++ 代码说明文档_减少运维工作量,如何通过 ROS 轻松实现资源编排新方式...

在日常工作中,我们一定遇到过需要快速构建系统的工作情形:作为资源管理人员,需要接收一定数量以及配置的资源申请,这些申请要求网络、存储设备按需到位;作为开发人员,需要将一套开发环境,复制一…

华硕和梅林系统哪个好_RUSHCRM:定制CRM软件系统哪个好?

Crm系统是一个可以帮助企业获得、维护以及提升客户价值的系统,并且做到以客户为中心的管理模式。但是有不少企业在选择crm软件系统的过程中,会发现在国内crm系统的市场中,绝大多数crm系统的功能都不能完全满足企业的需求,那么就需…

字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...

写在前面(本专栏仅是个人笔记本,有胡言乱语和错漏部分)本文以图文代码的形式记录了_Hashtable的结构,如何编排每一个bucket的链表,如何将每个bucket的链表串在一起形成一个长链表,如何利用迭代器遍历_Hasht…

null === undefined_【英】两个“非值”:undefined 和 null

前言本期英文由Dr. Axel Rauschmayer分享。英文从这开始~~Most programming languages have only one value for “no value” or “empty reference”. For example, that value is null in Java. JavaScript has two of those special values: undefin…

有趣的编程代码_iPad amp; Mac 编程游戏推荐

今天想给大家推荐一款免费的编程 App,它的名字叫「Swift Playgrounds」。会不会有人一看到“编程”两个字就觉得怕了怕了,感觉太深奥了?但是,这款游戏真的简单又有趣,值得你去试试。▍应用介绍这是一款适用于 Mac 和 i…

tensorflow支持python3.7吗_TensorFlow2.1正式版上线:最后一次支持Python2,进一步支持TPU...

机器之心报道参与:杜伟、一鸣TensorFlow2.1的更新,能够让弃坑的用户回心转意吗?去年 10 月,谷歌才发布了 TensorFlow 2.0 正式版。时隔三个月后,昨日官方发布了 TensorFlow 2.1,本次版本更新带了了多项新特…

hashmap containsvalue时间复杂度_不看看HashMap源码,怎么和面试官谈薪资

HashMap 是日常开发中,用的最多的集合类之一,也是面试中经常被问到的 Java 类之一。同时,HashMap 在实现方式上面又有十分典型的范例。不管是从哪一方面来看,学习 HashMap 都可以说是有利无害的。分析 HashMap 的源码的文章在网上…

tcp序列号为什么是随机的_译文:每个开发人员应了解的 TCP 知识

为什么要把服务器放在离用户很近的地理位置上?其中一个原因是为了实现更低的延迟。当您发送的数据是短的、应该尽可能快的传输数据时,这很有意义。但如果是大文件,比如视频等大文件呢?当然,在接收第一个字节时肯定会有…

matlab时域转换成频域_从时域到频域,你只需要旋转一下!

作为一个工科生,这里我不去说很多的严密的定理和知识,我只是从我的角度,形象的去理解时域和频域。首先我们来观察一个画在空间直角坐标系中的正弦函数:现在我们从两个视角去观察它分别是垂直于xoz面和垂直于yoz面看到的图像如下&a…

win7右键计算机管理参数错误,win7纯净版虚拟磁盘管理器参数错误怎么解决?

最近有用户反映win7纯净版虚拟磁盘管理器参数错误,他是硬盘分区太多,很乱,所以想要自己设置盘符名称,但没想到在修改盘符时出现提示“硬盘参数错误”,导致修改盘符失败,这让用户非常苦恼。那么,…

mysql查看用户名_Mysql创建数据表的方法介绍(附示例)

本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。数据表是数据库最重要的组成部分之一,是其他对象的基础。如果我们的数据库没有数据表就等于没有…