本文介绍了一键迁移RDS MySQL至PolarDB-X 2.0标准版的方案简介、前提条件、使用限制、收费规则等。
迁移方案概述
将RDS MySQL一键迁移至PolarDB-X 2.0标准版,整个过程中将自动为您创建目标端PolarDB-X 2.0标准版并同步数据。迁移后的PolarDB-X 2.0标准版包含源RDS实例的账号信息、数据库、IP白名单和必要的参数。
RDS MySQL一键迁移至PolarDB-X 2.0标准版,都是通过逻辑迁移(DTS数据同步)方式实现。
逻辑迁移(DTS数据同步)方式:通过数据传输服务DTS,创建数据同步任务,将源RDS MySQL实例的库表结构和全量数据同步至创建的PolarDB-X 2.0标准版中,然后保持增量数据同步。
支持迁移的RDS MySQL版本和存储类型如下:
RDS MySQL版本 | 基础版 | 高可用版 | 集群版 | 三节点企业版 |
5.6 | 无 | 本地盘 | 无 | 本地盘 |
5.7 | 云盘 | 本地盘、云盘 | 云盘 | 本地盘 |
8.0 | 云盘 | 本地盘、云盘 | 云盘 | 本地盘 |
迁移方案优势
一键迁移功能具有如下优势:
可保留数据库原连接地址,无需应用程序修改任何连接配置即可切换至PolarDB-X 2.0标准版。
迁移完全免费。
迁移过程数据0丢失。
支持增量迁移,停机时间小于10分钟。
支持在线热迁移,迁移过程仅闪断一次(即当业务从RDS MySQL切换至PolarDB-X 2.0标准版时)。
支持回滚,迁移失败可以在10分钟内恢复。
前提条件
仅表存储引擎类型为InnoDB或X-Engine的源RDS MySQL实例支持一键迁移功能。
因为是通过逻辑迁移(DTS数据同步)方式进行一键迁移,如果源RDS MySQL创建了触发器,请先删除RDS MySQL的触发器,再单击继续迁移,或者单击取消迁移后手动去DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步或迁移作业。
如果RDS MySQL处于高安全模式(数据库代理模式),需要创建有高权限账号(请参见创建账号),或者切换到高性能模式(参见【产品/功能变更】RDS网络链路升级说明),才能进行一键迁移。
使用限制
仅支持将RDS MySQL一键迁移至相同版本或更高版本的PolarDB-X 2.0标准版,不支持降版本迁移。
带地址切换中,当前不支持IPv6地址的带地址切换。
逻辑迁移(DTS数据同步)方式的使用限制如下:
暂不支持跨地域迁移。
迁移期间不允许对源RDS MySQL实例执行参数设置的操作。
仅支持迁移库、表、视图、存储过程、函数这五类结构。
对源库有如下限制:
类型
说明
源库限制
待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。
Binlog日志:
需开启Binlog,开启方法请参见设置实例参数,并且
binlog_row_image
为full。否则,在预检查阶段就会提示报错,且无法成功启动数据同步任务。如为增量同步任务,DTS要求源数据库的本地Binlog日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的本地Binlog日志至少保留7天以上(您可在全量同步完成后将Binlog保存时间设置为24小时以上),否则DTS可能因无法获取Binlog而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Binlog日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。如源为RDS MySQL,具体操作请参见管理本地日志(Binlog)。
SQL语句限制:
操作类型
SQL语句
DML
INSERT、UPDATE、DELETE
DDL
ALTER TABLE、ALTER VIEW
CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW
DROP INDEX、DROP TABLE
RENAME TABLE
TRUNCATE TABLE
其他限制:
类型
说明
其他限制
执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。
全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。
在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
DTS默认同步到目标数据库时会取消外键约束,因此源数据库的级联、删除等操作不会同步到目标数据库。
注意事项
源RDS MySQL和目标PolarDB-X 2.0标准版对应连接地址的SSL开启状态需保持一致:
收费规则
一键迁移过程中,整个迁移过程不收取额外费用,不收取DTS迁移和同步任务的费用,仅收取目标PolarDB-X 2.0标准版实例的费用。
备份策略说明
PolarDB-X 2.0标准版的常规备份周期、备份开始时间与RDS MySQL的常规备份周期、备份开始时间保持一致。
迁移完成后,您可以在控制台上根据实际情况进行备份。
带地址切换
一键迁移RDS MySQL至PolarDB-X 2.0标准版时支持带地址切换,系统会自动交换RDS MySQL和PolarDB-X 2.0标准版上的连接地址,您无需在应用程序端修改任何配置即可自动连接到PolarDB-X 2.0标准版。选择该切换方式后,RDS MySQL连接地址对应的PolarDB-X 2.0标准版连接地址如下图所示。
使用带地址切换功能时,需注意以下几点:
带地址切换只会切换RDS MySQL和PolarDB-X 2.0标准版的域名,Vswitch、Vip等配置不会切换。
仅当源RDS MySQL和目标PolarDB-X 2.0标准版同时存在的连接地址才支持相互切换,默认情况下仅私网主地址支持带地址切换。
当前不支持IPv6的地址带地址切换。
带地址切换不会切换端口,请确保RDS MySQL和PolarDB-X 2.0标准版的连接端口一致(RDS MySQL和PolarDB-X 2.0标准版默认使用的端口号均为3306),如需修改端口,请参见查看和管理实例连接地址和端口。
切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。
切换域名后,如果您需要使用DMS登录PolarDB-X 2.0标准版数据库,必须使用新版本的DMS并且使用PolarDB-X 2.0标准版实例ID来进行登录,使用连接串地址无法登录。