写点什么

将 MySQL 数据库迁移到 Amazon Aurora 数据库

  • 2019-10-21
  • 本文字数:2116 字

    阅读完需:约 7 分钟

将 MySQL 数据库迁移到 Amazon Aurora 数据库

有很多用户在本地或云中使用标准 MySQL 来持久化业务数据,现在他们希望能使用新一代基于云架构的 Amazon Aurora 数据库。 使用 Amazon Aurora 数据库有非常多的好处,她的性能比普通的 MySQL 数据库高数倍,并且很容易能横向及纵向扩展。对于已有系统,首先会面对如何将现有数据库迁移到 Amazon Aurora 中。下面将介绍如何将一个 AWS 云中 Amazon Linux 上的 MySQL 迁移到 Amazon Aurora 的全过程,迁移的过程分为下面几个步骤:


  • 安装 Percona XtraBackup 备份工具

  • 备份 MySQL 数据库

  • 将备份 MySQL 文件上传到 S3

  • 在 Aurora Console 中还原备份文件到 Amazon Aurora


对于数据中心的 MySQL ,整个迁移过程是类似的。

Percona XtraBackup 备份工具

XtraBackup 是 MySQL 的一个开源热备份的工具,能支持全备及增量备份等。和 mysqldump 相比, mysqldump 是将数据库转换为 SQL 语句,再应用到目标数据库去。因此迁移较大 MySQL 数据库到 Aurora 时, mysqldump 的方式效率太低。而 XtraBackup 备份的是数据库的二进制数据及日志等,并且文件可以压缩,这样文件更小,因此备份和还原都更快。因此对于大数据库推荐用 XtraBackup 备份的方式进行迁移。


  1. 下载 Percona yum repository

  2. 由于 Percona XtraBackup 安装地址并不在 yum 的默认仓库(repository)里,因此运行下面命令下载并安装:

  3. wget: http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

  4. 运行结果如下图所示:

  5. 安装 Percona yum repository

  6. 使用下面命令安装已下载的 rpm 包,

  7. 结果如下图所示:

  8. 检查 yum repository 的安装结果

  9. 运行 yum list 命令检查 percona 相关的 repository 是否被正确安装。如下命令:

  10. 命令输出类似下图:

  11. 安装 percona-xtrabackup 工具

  12. 运行下面 yum 命令直接安装 percona-xtrabackup 包,必须安装 2.3 版本以上软件。

  13. 输出结果如下图所示:

  14. 安装成功后,应该显示安装成功信息如下图所示:

备份 MySQL 数据库

运行下面命令备份 MySQL 实例为压缩文件。


sudo innobackupex -u root -ppassword --stream=tar /tmp | gzip -9 > ./prod_db.tar.gz
复制代码


整个备份过程如下图所示:



你会看到最后显示备份成功。


xtrabackup: Transaction log of lsn (1719557) to (1719557) was copied. 180517 08:46:45 completed OK!
复制代码


将备份文件上传到 S3

  1. 安装本地 CLI 命令行工具

  2. 使用下面命令配置命令行访问 aws 资源:

  3. 如果不了解如何配置命令行工具,请参考:

  4. https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-getting-started.html

  5. 将文件上传到 Aurora 数据库相同 Region 的 S3 bucket。

  6. 在 S3 上检查文件是否上传成功(也可以在命令行中直接检查)

在 Aurora Console 上将 MySQL 备份文件还原为 Aurora 数据库

  1. 在 RDS Console 上点击 ”Restore Aurora DB cluster from s3” 开始还原过程。

  2. 指定具体备份信息

  3. Source engine

  4. 当前只支持 MySQL 引擎的 S3 迁移。Source engine version

  5. 源 MySQL 数据库的版本,当前支持 5.5 及 5.6 版本。S3 bucket

  6. 上传到 s3 上 bucket 的路径。IAM role

  7. 创建一个新的角色,此角色用来授权 Aurora 访问 s3 中的备份文件。

  8. IAM role name

  9. 指定新创建角色的名称。

  10. 指定要还原 Aurora cluster 的信息

  11. DB Engine

  12. 显示当前 Aurora MySQL 的引擎版本。DB Instance class

  13. 定义 Aurora 的 master 节点容量大小,临时测试环境可以使用 t 系列的机型,生产环境可以使用 r 系列的机型。请根据生产的压力选择合适大小的机型。Create Replica in Different Zone

  14. Aurora 是一个集群数据库,这个集群数据库可以有一个主节点和多个 read replica 的只读节点。如果 read replica 节点分布在多个可用区,则当主节点可用区不可用时,数据库可以切换到另外一个可用区的 read replica。Settings

  15. 数据库基本信息设置。

  16. 指定 Aurora 环境信息

  17. VPC

  18. 指定 Aurora 数据库需要创建在哪个 VPC 下。Subnet group

  19. 指定在哪个子网组中创建 Aurora 实例,请在 RDS Console 主页左侧 subnet groups 列表下定义子网组。Public accessibility

  20. 指定数据库是否公网可访问,一般生产数据库都设置成内网访问的模式。如果你选择的子网组是都是私有子网,则你设置成公有访问,也无法访问数据库。VPC Security group

  21. 设置安全组的信息,请确保你向目标访问 aurora 的机器开放 3306 端口

  22. 还原后去 RDS Console 中确认数据库还原成功。

总结

从上面可以知道,我们只需要几个简单的步骤,就可以将 MySQL 数据库备份然后恢复成一个 Aurora 数据库了,小伙伴们还等什么,赶紧去试试吧!


作者介绍:


蓝勇


AWS 解决方案架构师,负责基于 AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内的应用和推广,在 DR 解决方案、数据仓库、RDS 服务、企业应用、自动化运维等方面有着广泛的设计和实践经验。在加入 AWS 之前,在甲骨文中国担任资深售前工程师,负责售前方案咨询和架构设计,在数据库,中间件,大数据及企业应用方面有丰富经验。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/combine-mysql-database-to-amazon-aurora/


2019-10-21 08:001325

评论

发布
暂无评论
发现更多内容

嘉为蓝鲸IT服务管理中心ITSM解决方案:多项殊荣实力彰显,融合创新重塑IT服务管理生态

嘉为蓝鲸

AIOPS ITSM 智能运维 IT服务管理中心

链游开发:在区块链浪潮中构建虚拟世界

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

AI 应用开发(二):Blender 建模助手

北桥苏

人工智能 大模型 AI智能体 AI工作流 MCP协议

汇金资损防控体系建设及实践 | 得物技术

得物技术

人工智能

亚马逊云科技中国峰会:数新智能CTO原攀峰详解一站式AI原生数智平台DataCyber在Amazon EKS的实践

数新网络官方账号

Java原生交易所全套开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

数智焕新 “数质”先行 用友BIP为企业补上数据这一课

用友BIP

“数字创新产品课程” 8月2-3日 · CSPO认证上海线下面授周末班【和A-CSPO打包报名享特惠】

ShineScrum

产品负责人 CSPO认证 CSPO

智能指标AIMetrics赋能:构建一体化数据智能决策中枢

袋鼠云数栈

数据 数据治理 大数据平台 数据管理 数据库 大数据

商品中心—库存分桶调配的技术文档

不在线第一只蜗牛

Java spring

Aliyun OSS iOS SDK 使用指南

qife122

ios 阿里云

用 AI “一句话生成代码”,用创意兑换灵码潮品:技术人的夏日狂欢季来了

阿里巴巴云原生

通义灵码

用友与柳钢再续合作新篇,共筑废钢产业数智化新标杆

用友BIP

MyEMS能源管理系统后台配置-能源费率管理

开源能源管理系统

开源 能源管理

Spring Boot 插件化开发模式,即插即用

Geek_e3e86e

Java 编程

非凸科技荣获“2025中国金融科技竞争力百强企业”

非凸科技

公链钱包开发:打造安全便捷的数字资产管家

区块链软件开发推广运营

交易所开发 链游开发 公链开发 代币开发 链游开发公链开发

华商律所与iCourt达成战略合作,国内首家千人规模强所完成AI本地化部署

科技汇

用 AI “一句话生成代码”,用创意兑换灵码潮品:技术人的夏日狂欢季来了

阿里云云效

昇腾CANN再进化:开放创新繁荣AI生态

极客天地

Sermant指标采集功能:构建指标可观测性实践

华为云开源

开源 微服务架构 sermant

AI Infra 运维实践:DeepSeek 部署运维中的软硬结合

袋鼠云数栈

数据库 大数据 运维 数据治理 数据平台

可私有化部署的企业内部即时通讯聊天软件 ——BeeWorks 免费版上线

BeeWorks

即时通讯 IM 私有化部署

【清源SCA社区版】正式上线!|深度解析:从功能架构到技术实践的全维度指南

安势信息

开源 代码检测 情源SCA 清源SCA社区版

DApp 开发:开启去中心化应用新时代

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

用友成功中标茅台集团司库数据管理项目

用友BIP

信创国产化,可私有化部署的企业内部即时通讯聊天软件

BeeWorks

即时通讯 IM 私有化部署

淘宝API系列:淘宝店铺所有商品API接口详解

tbapi

淘宝API 天猫API 天猫店铺所有商品接口 淘宝店铺所有商品接口

三角偶极子天线(上)---MIMO系统, 包络相关系数ECC和分集增益DG

思茂信息

电磁 MIMO CST Studio Suite

javascript中IIFE(立即执行函数表达式)到底是咋来的?

电子尖叫食人鱼

JavaScript

将 MySQL 数据库迁移到 Amazon Aurora 数据库_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章