使用数据传输DTS可以实现两个RDS实例间的数据迁移。对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例。目前对于RDS不同存储引擎,只支持同构迁移(例如RDS For MySQL迁移到RDS For MySQL),不支持异构迁移(例如RDS For MySQL迁移到RDS For SQLServer)。

本小节简单介绍使用DTS进行两个RDS实例之间的数据迁移的任务配置流程。

迁移权限要求

当使用DTS进行两个RDS实例间的数据迁移时,不同迁移类型,对源跟目标数据库的迁移帐号权限要求如下表:

迁移类型 结构迁移 全量迁移 增量迁移
源RDS实例 读写权限 读写权限 读写权限
目的MySQL 读写权限 读写权限 读写权限

迁移任务配置

下面详细介绍下用户如何使用DTS实现两个RDS MySQL实例间的数据迁移。源RDS跟目标RDS实例可以不同也可以相同,即用户可以使用DTS实现一个RDS实例内部的数据迁移。

RDS实例数据库创建

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

  1. 数据库名称不符合:RDS定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长64个字符)。
  2. 待迁移数据库,在本地PostgreSQL跟目标RDS For PostgreSQL实例中存储名称不同。

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

迁移帐号创建

迁移任务配置时,需要提供源RDS实例及目的RDS实例的迁移账号。迁移账号的相关权限详见上面的 迁移权限要求 一节。如果尚未创建迁移账号,那么可以参考 RDS实例账号创建需要先在源及目的RDS实例中创建迁移帐号,并将要迁移的库表的读写权限授权给上面创建的帐号。在RDS控制台中创建帐号,并将迁移库的读写权限授权给这个帐号。

迁移任务配置

当上面的所有前置条件都配置完成后,就可以开始正式的数据迁移了。下面详细介绍迁移任务配置流程。

    1. 进入数据传输DTS控制台,点击右上角的创建迁移任务,开始迁移任务配置。
    2. 源及目的实例连接信息配置。

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

      • 任务名称

        DTS为每个任务自动生成一个任务名称,任务名称没有唯一性要求。您可以根据需要修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。

      • 源实例信息

        • 实例类型:选择 RDS实例
        • RDS实例ID: 配置迁移的源RDS实例的实例ID。DTS支持经典网络、VPC网络的RDS实例
        • 数据库名称: 如果RDS实例的存储引擎为PostgreSQL或PPAS, 那么需要配置数据库名称。这个数据库名称为连接RDS实例使用的默认数据库
        • 数据库账号:连接RDS实例的账号
        • 数据库密码:上面数据账号对应的密码
      • 目标实例信息

        • 实例类型:选择 RDS实例
        • RDS实例ID: 配置迁移的目标RDS实例的实例ID。 DTS支持经典网络、VPC网络的RDS实例
        • 数据库名称:如果RDS实例的存储引擎为PostgreSQL或PPAS, 那么需要配置数据库名称。这个数据库名称为连接RDS实例使用的默认数据库
        • 数据库账号:连接RDS实例的账号
        • 数据库密码:上面数据账号对应的密码

        当配置完连接信息后,点击右下角 授权白名单并进入下一步 进行白名单授权。这个步骤DTS会将DTS服务器的IP地址添加到目标RDS实例的白名单中,避免因为RDS实例设置了白名单,导致DTS服务器连接不上RDS实例导致迁移失败。

    3. 选择迁移对象及迁移类型。

      • 迁移类型

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

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

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

      • 迁移对象

        这个步骤选择要迁移的对象。迁移对象的选择粒度细化为:库、表、列三个粒度。默认情况下,对象迁移到目标RDS实例后,对象名跟源RDS实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用DTS提供的对象名映射功能,详细使用方式可以参考库表列映射

    4. 预检查。

      在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。
      如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。

    5. 迁移任务。

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

      如果选择了增量迁移,那么进入增量迁移阶段后,源库的更新写入都会被DTS同步到目标RDS实例。迁移任务不会自动结束。如果用户只是为了迁移,那么建议在增量迁移无延迟的状态时,源库停写几分钟,等待增量迁移再次进入无延迟状态后,停止掉迁移任务,直接将业务切换到目标RDS实例上即可。

      至此,完成两个RDS实例的数据迁移任务配置。

实际过程:

阿里云 RDS实例间的数据迁移的更多相关文章

  1. 【故障公告】阿里云 RDS 实例 CPU 100% 故障引发全站无法正常访问

    非常抱歉,今天凌晨 3:20~8:30 左右,我们使用的阿里云 RDS 实例 SQL Server 2016 标准版突然出现 CPU 100% 故障,造成全站无法正常访问,由此给您带来巨大的麻烦,请您 ...

  2. 重磅干货免费下载!阿里云RDS团队论文被数据库顶会SIGMOD 2018收录

    ACM SIGMOD数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD)发起.在数据库领域具有最高学术地位的国际性学术会议. SIGMOD和另外两大数据库会议VLDB.IC ...

  3. 阿里云RDS实例内不同数据库之间的数据迁移

    适用场景 本文适用于使用DTS实现相同实例下库名不同的数据库之间的数据迁移.本文以使用DTS将同一RDS实例下的amptest库迁移到jiangliu_amptest库为例来说明如何使用DTS实现相同 ...

  4. 阿里云rds实例恢复到本地

    摘要: 前提: 1,阿里云数据库备份实例,恢复数据的时候需要将数据恢复到本地数据库,是不能直接恢复到RDS上的. 2,需要在本地服务器上下载一个数据库,尽量和RDS数据库版本保持一致.(我现在用的是5 ...

  5. Zabbix 5.0:通过LLD方式自动化监控阿里云RDS

    Blog:博客园 个人 之前做了RDS监控,由于 RDS 实例梳理增多,手动添加的方式已经不够效率,故改为LLD(Low-level discovery)方式做监控. 什么是LLD LLD(Low-l ...

  6. 抱歉!15:44-16:39阿里云RDS故障造成全站不能正常访问

    非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解! 故障是在15:44开始出现的,应用日志中出现大 ...

  7. 【故障公告】阿里云 RDS 数据库突发 CPU 近 100% 引发全站故障

    今天晚上9点我们收到阿里云的告警通知: [阿里云监控]华东1(杭州)-云数据库RDS版<cnblogsdb> [instanceId=xxx] 于21:00 发生告警, 前往诊断 CPU使 ...

  8. 阿里云RDS数据库改造迁移方案

    1. 改造原因 (1) 由于历史原因, 本应该是同一个库的表分布在两个数据库中,需要对这两个库进行合并. (2) 已有的数据库性能无法满足业务的增长需要, 查询卡,慢问题突出. (3) 当前自建Mys ...

  9. 【故障公告】升级阿里云 RDS SQL Server 实例故障经过

    昨天晚上,我们使用的阿里云 RDS SQL Server 2008 R2 实例突然出现持续 CPU 100% 问题,后来我们通过重启实例恢复了正常(详见故障公告).但是在恢复正常后发现了新问题,这台 ...

随机推荐

  1. DFA Minimization

    有点晚了我就不调试了..不过说是这么说我还是过了编译的.. #include<bits/stdc++.h> using namespace std; namespace DFA{ cons ...

  2. Python之面向对象:封装

    1.封装的概念 将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装.外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏. 在使用面向对象的封装特性时 ...

  3. HTML+CSS之iframe

    碎碎:这两天在实践中,用到了 iframe,之前对其不甚了解,了解之中遇到好多奇葩问题,今天记录下这两天遇到的相关的内容. 嵌入的 iframe 页面的边框 嵌入的 iframe 页面的背景 嵌入的 ...

  4. H5 基本标签使用 浅析 (含video标签、input表单等)

    1. 音频标签<audio> <audio src = “./music/Alone.mp3” controls autoplay loop = “3” ></audio ...

  5. 游戏(bzoj 1854)

    Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性 ...

  6. 《挑战程序设计竞赛》P196 铺砖问题

    题意:给定n*m格子,每个格子被染成了黑色或者白色,现在要用1*2的砖块覆盖这些格子,块与块不得重叠,且覆盖所有的白色格子,但不覆盖任意一个黑色格子,求一共有多少种覆盖方法. 思路:书上给的思路太巧妙 ...

  7. 团体天梯赛 L3-001. 凑零钱

    L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...

  8. 【原创】datalist repeater 控件的行鼠标单击 以及 滑过特效

    原文发布时间为:2009-05-06 -- 来源于本人的百度文章 [由搬家工具导入] 调用方法如:<tr id="<%# Container.ItemIndex+1 %>& ...

  9. 【Visual Studio】解决错误 fatal error C1010: unexpected end of file while looking for precompiled head(转)

    原文转自 http://blog.csdn.net/liuqiyao_01/article/details/38867145 在编译VS时候,出现fatal error C1010: unexpect ...

  10. c语言中的rewind函数,Win CE 不支持,可用fseek函数替换

    FILE *read = fopen(cXmlFile,"rb"); if (read) { fseek(read, 0L, SEEK_END); int len = ftell( ...