详细解答可以参考官方帮助文档

使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。

本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。

迁移步骤

对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下:

结构迁移

数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。

全量数据迁移

全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。

如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。

增量数据迁移

增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。

迁移限制迁移过程中,不支持 DDL 操作

结构迁移不支持 event 的迁移

对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期

如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败

当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog

当选择增量迁移时,源库的 binlog_format 要为 row

当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full

当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失

迁移权限要求

当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下:

迁移类型

结构迁移

全量迁移

增量迁移

本地 MySQL 实例

select

select

super

select

replication slave

replication client

目标端 RDS for MySQL 实例

读写权限

读写权限

读写权限

迁移流程

DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下:

结构对象:表、视图的迁移

全量数据迁移

结构对象:存储过程、函数、触发器、外键的迁移

增量数据迁移

如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。

迁移任务配置

下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。

RDS for MySQL 实例数据库创建

在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。

数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。

待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。

对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。

迁移帐号创建

迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。

如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。

如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。

其他准备工作

如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。

确认源库的 binlog 是否开启。

如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。

开启二进制日志,修改 log_bin=mysql_bin。

设置 binlog 模式为 row,修改 binlog_format=row。

配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。

如果版本为 5.6,修改 binlog_row_image=full。

修改完成后,重启 MySQL 进程。

确认源库的 binlog 格式为 row 模式。

使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。

当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。

当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。

如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。

迁移任务配置

当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。

进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。

本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。

在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中:

任务名称

默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。

源实例连接信息

实例类型:选择 有公网 IP 的自建数据库

数据库类型:选择 MySQL

主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式

端口:MySQL 实例监听端口

账号:MySQL 实例访问账号

密码:上面指定的 MySQL 访问账号对应的密码

目标 RDS for MySQL 实例连接信息。

实例类型:选择 RDS 实例

RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例

数据库账号:RDS for MySQL 实例的连接账号

数据库密码:上面指定的数据库账号对应的数据库密码

迁移对象及迁移类型配置。

迁移类型

DTS 支持 结构迁移、全量数据迁移、增量数据迁移。

如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。

如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。

迁移对象

迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。

默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。

当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤

预检查。

在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。

如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。

启动迁移任务。

当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。

增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。

至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

mysql云上迁移_自建mysql 迁移到云上-问答-阿里云开发者社区-阿里云相关推荐

  1. mysql hash分区 创建_如何建mysql hash数据库分区

    用户需要在 rule.xml 中定义 partitionLength[] 和 partitionCount[] 两个数组和 hashSlice 二元组. 在 DBLE 的启动阶段,点乘两个数组得到模数 ...

  2. 阿里云 mysql 导出数据库备份_导出整个mysql数据库备份

    mysql和mssql的备份和恢复数据的方法 mysql数据库的备份方法可以用 导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] ...

  3. mysql内连接简写_技术分享 | MySQL 的 join_buffer_size 在内连接上的应用

    本文详细介绍了 MySQL 参数 join_buffer_size 在 INNER JOIN 场景的使用,OUTER JOIN 不包含.在讨论这个 BUFFER 之前,我们先了解下 MySQL 的 I ...

  4. 向mysql数据库发送指令_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  5. mysql 常规命令操作_常见的MySQL命令大全

    一.连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1.例1:连接到本机上的MYSQL.首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot ...

  6. mysql 数据库命令大全_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  7. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析

    今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化. 建表 //建表 CREATETABLEIFNOTEXISTSstaffs( idINTPRIMARYKEYAUTO_INCREMENT, ...

  8. mysql 表结构监控_性能测试之mysql监控、优化

    共享表空间还有一个缺点就是不能自动收缩,自动收缩是什么意思呢,刚建表的时候,表里面数据很少,就1条数据,可能占用空间就几kb,到后来数据多了,占用了10个G的空间,然后发现有一些数据都是垃圾数据,删了 ...

  9. mysql BDB存储引擎_直接访问mysql的BDB存储引擎

    我们知道BDB是一种嵌入式的数据库,存取效率比mysql高,但是管理起来没有mysql方便,在分布式应用中同步也是一个问题. 恰好mysql是支持用BDB作为存储引擎的(5.1之后就不直接支持了,因为 ...

最新文章

  1. Android深度探索与驱动开发(一)
  2. 年度最佳代码“不管你们信不信,反正我信了”
  3. Linux学习:Linux基础命令集(2)
  4. IM即时通讯结合mui 环信
  5. 鲜花海报设计没有思路?看这里吧!
  6. [WCF]相关资料整理
  7. python地理数据处理库geopy
  8. 新站快速收录同时也提高内页的收录
  9. 一个拨号上网的批处理文件
  10. org.aspectj aspectjweaver 报错
  11. [不好分类]《凤凰项目》读后感
  12. java opencv dct 压缩_使用OpenCV计算DCT
  13. uniapp textarea编辑保留空格换行
  14. 2022劳务员-岗位技能(劳务员)考试试题及答案
  15. 在操作系统、芯片领域跌倒的中国程序员,如何崛起?
  16. CodeWarrior 使用教程
  17. 编程时拼音输入法的设置
  18. 网速测试大师的软件怎么回事,网速测试大师
  19. 大学计算机应用能力基础,大学计算机应用基础
  20. linux服务器udp抓包工具,Linux下抓包工具tcpdump使用介绍

热门文章

  1. 正版python怎么下载_怎么下载官网python并安装
  2. GCC帧指针的开启与关闭以及反汇编测试
  3. 深入理解 Docker 架构 | 图文
  4. 思科VPP 20.05 dpdk node源码分析
  5. C语言CURL实现HTTP POST、GET、PUT
  6. CUDA:在GPU上实现核函数的嵌套以及编译运行
  7. Php 安装 zend_loader,在Linux系统中为PHP5.x安装Zend Guard Loader
  8. html5+css3第一次作业_老娘我,饿死也不要陪孩子做手工作业,高考陪考真香!...
  9. springboot实现条形码_Springboot转发重定向实现方式解析
  10. MapJoin的原理及案例