从POLARDB MySQL同步至AnalyticDB for MySQL_数据同步_PolarDB MySQL数据库_云数据库PolarDB
![阿里云服务器优惠](https://www.aliyunfuwuqi.com/wp-content/themes/cloud/aliyun/youhui.jpg)
从POLARDB MySQL同步至AnalyticDB for MySQL
分析型数据库MySQL版(AnalyticDB for MySQL),是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,可以对千亿级数据进行毫秒级的即时多维分析透视和业务探索。通过数据传输服务DTS(Data Transmission Service),您可以将POLARDB MySQL同步到AnalyticDB for MySQL,帮助您快速构建企业内部BI、交互查询、实时报表等系统。
前提条件
- 已创建目标AnalyticDB MySQL实例,详情请参见创建AnalyticDB MySQL(2.0)或创建AnalyticDB MySQL(3.0)。
说明 不支持将华北 1(青岛)、美国东部 1(弗吉尼亚)、英国(伦敦)地域的AnalyticDB MySQL(2.0)实例作为同步的目标实例;不支持将美国西部 1(硅谷)地域的AnalyticDB MySQL(3.0)实例作为同步的目标实例。
- 确保目标AnalyticDB MySQL具备充足的存储空间。
- POLARDB MySQL已开启Binlog,详情请参见如何开启Binlog。
- 如果同步的目标为AnalyticDB for MySQL(2.0),那么源RDS for MySQL待同步的对象不能包含AnalyticDB for MySQL(2.0)保留的库名和列名,否则将造成数据同步失败或DDL操作同步失败。
注意事项
- DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
- 请勿在数据同步时,对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。
- 由于AnalyticDB MySQL(3.0)本身的使用限制,当AnalyticDB MySQL(3.0)实例中的节点磁盘空间使用量超过80%,该实例将被锁定。请提前根据待同步的对象预估所需空间,确保目标实例具备充足的存储空间。
术语/概念对应关系
POLARDB MySQL | AnalyticDB for MySQL |
---|---|
数据库 | |
表 |
支持同步的SQL操作
目标数据库版本 | 支持的SQL操作 |
---|---|
AnalyticDB MySQL 2.0 |
|
AnalyticDB MySQL 3.0 |
说明 如果在数据同步的过程中变更了源表的字段类型,同步作业将报错并中断。您可以提交工单处理或参照文末的方法来手动修复,详情请参见修复因变更字段类型导致的同步失败。
|
数据库账号的权限要求
数据库 | 所需权限 |
---|---|
POLARDB MySQL | 待同步对象的读权限。 |
AnalyticDB for MySQL(2.0) | 无需填写数据库账号信息,DTS会自动创建账号并授权。 |
AnalyticDB for MySQL(3.0) | 读写权限。 |
数据库账号的创建和授权方法,请参见创建POLARDB MySQL数据库账号或创建AnalyticDB for MySQL数据库账号。
数据类型映射关系
详情请参见结构初始化涉及的数据类型映射关系。
操作步骤
修复因变更字段类型导致的同步失败
本案例中,同步失败的表在AnalyticDB MySQL中的名称为customer。
- 在AnalyticDB MySQL 3.0中创建一个新表(customer_new),表结构与customer表保持一致。
- 通过INSERT INTO SELECT命令,将customer表的数据复制并插入到新创建的customer_new表中,确保两张表的数据保持一致。
- 重命名或删除同步失败的表,然后将customer_new表的名称修改为customer。
- 在DTS控制台,重启数据同步作业。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论