- 最新动态
- 服务公告
-
产品介绍
- 图解数据复制服务
- 什么是数据复制服务
- 支持的数据库
- 产品优势
- 功能特性
- 规格说明
- 产品架构和功能原理
-
数据类型映射关系
- MySQL->PostgreSQL
- MySQL->GaussDB
- MySQL->Oracle
- MySQL->CSS/ES
- Oracle->MySQL
- Oracle->TaurusDB
- Oracle->GaussDB
- Oracle->DDM
- Oracle->GaussDB(DWS)
- Oracle->PostgreSQL
- TaurusDB->Oracle
- TaurusDB->CSS/ES
- GaussDB->MySQL
- GaussDB->GaussDB(DWS)
- GaussDB->Oracle
- DB2 for LUW->GaussDB
- DB2 for LUW->GaussDB(DWS)
- PostgreSQL->GaussDB
- PostgreSQL->GaussDB(DWS)
- TiDB->TaurusDB
- Microsoft SQL Server->GaussDB(DWS)
- Microsoft SQL Server->GaussDB
- Microsoft SQL Server->MySQL
- Microsoft SQL Server->TaurusDB
- Microsoft SQL Server->PostgreSQL
- 安全
- 权限管理
- 委托管理
- 委托管理(新)
- 约束与限制
- 访问数据复制服务
- 与其他服务关系
- 基本概念
- 计费说明
- 准备工作
- 快速入门
-
用户指南
- 实时迁移
- 备份迁移
-
实时同步
- 同步方案概览
- 数据同步拓扑介绍
-
入云
- 将MySQL同步到MySQL
- 将MySQL同步到PostgreSQL
- 将MySQL同步到GaussDB分布式版
- 将MySQL同步到GaussDB集中式版
- 将MySQL同步到GaussDB(DWS)
- 将MySQL同步到TaurusDB
- 将MySQL同步到MariaDB
- 将PostgreSQL同步到PostgreSQL
- 将PostgreSQL同步到GaussDB(DWS)
- 将PostgreSQL同步到GaussDB集中式版
- 将PostgreSQL同步到GaussDB分布式版
- 将Oracle同步到MySQL
- 将Oracle同步到TaurusDB
- 将Oracle同步到GaussDB集中式版
- 将Oracle同步到GaussDB分布式版
- 将Oracle同步到DDM
- 将Oracle同步到GaussDB(DWS)
- 将Oracle同步到PostgreSQL
- 将DDM同步到MySQL
- 将DDM同步到GaussDB(DWS)
- 将DDM同步到DDM
- 将DB2 for LUW同步到GaussDB集中式版
- 将DB2 for LUW同步到GaussDB分布式版
- 将DB2 for LUW同步到GaussDB(DWS)
- 将TiDB同步到TaurusDB
- 将Microsoft SQL Server同步到GaussDB(DWS)
- 将Microsoft SQL Server同步到GaussDB集中式版
- 将Microsoft SQL Server同步到GaussDB分布式版
- 将Microsoft SQL Server同步到Microsoft SQL Server
- 将Microsoft SQL Server同步到MySQL
- 将Microsoft SQL Server同步到TaurusDB
- 将Microsoft SQL Server同步到PostgreSQL
- 将MongoDB同步到DDS
- 将MariaDB同步到MariaDB
- 将MariaDB同步到MySQL
- 将MariaDB同步到TaurusDB
- 将TaurusDB同步到TaurusDB
- 将Cassandra同步到GeminiDB Cassandra
- 将Dynamo同步到GeminiDB Cassandra
- 将Dynamo同步到GeminiDB Dynamo
- 将AWS DocumentDB同步到DDS
- 将Redis 同步到GeminiDB Redis
- 将Redis集群同步到GeminiDB Redis
-
出云
- 将MySQL同步到MySQL
- 将MySQL同步到Kafka
- 将MySQL同步到CSS/ES
- 将MySQL同步到Oracle
- 将MySQL同步到MariaDB
- 将DDM同步到MySQL
- 将DDM同步到Oracle
- 将DDM同步到Kafka
- 将DDS同步到MongoDB
- 将DDS同步到Kafka
- 将PostgreSQL同步到PostgreSQL
- 将PostgreSQL同步到Kafka
- 将GaussDB分布式版同步到MySQL
- 将GaussDB分布式版同步到Oracle
- 将GaussDB分布式版同步到GaussDB(DWS)
- 将GaussDB分布式版同步到Kafka
- 将GaussDB分布式版同步到GaussDB分布式版
- 将GaussDB分布式版同步到GaussDB集中式版
- 将GaussDB分布式版同步到PostgreSQL
- 将GaussDB集中式版同步到MySQL
- 将GaussDB集中式版同步到Oracle
- 将GaussDB集中式版同步到GaussDB(DWS)
- 将GaussDB集中式版同步到Kafka
- 将GaussDB集中式版同步到GaussDB分布式版
- 将GaussDB集中式版同步到GaussDB集中式版
- 将GaussDB集中式版同步到PostgreSQL
- 将TaurusDB同步到MySQL
- 将TaurusDB同步到GaussDB(DWS)
- 将TaurusDB同步到Kafka
- 将TaurusDB同步到CSS/ES
- 将TaurusDB同步到Oracle
- 将MariaDB同步到MariaDB
- 将Microsoft SQL Server同步到Kafka
- 将GeminiDB Redis同步到Redis
- 将GeminiDB Redis同步到Redis集群
-
自建到自建
- 将MySQL同步到Kafka
- 将MySQL同步到CSS/ES
- 将MySQL同步到GaussDB集中式版
- 将MySQL同步到GaussDB分布式版
- 将Oracle同步到Kafka
- 将Oracle同步到GaussDB集中式版
- 将Oracle同步到GaussDB分布式版
- 将PostgreSQL同步到Kafka
- 将PostgreSQL同步到GaussDB集中式版
- 将PostgreSQL同步到GaussDB分布式版
- 将GaussDB集中式版同步到MySQL
- 将GaussDB集中式版同步到Oracle
- 将GaussDB集中式版同步到Kafka
- 将GaussDB集中式版同步到GaussDB分布式版
- 将GaussDB集中式版同步到GaussDB集中式版
- 将GaussDB集中式版同步到PostgreSQL
- 将GaussDB分布式版同步到MySQL
- 将GaussDB分布式版同步到Oracle
- 将GaussDB分布式版同步到Kafka
- 将GaussDB分布式版同步到GaussDB分布式版
- 将GaussDB分布式版同步到GaussDB集中式版
- 将GaussDB分布式版同步到PostgreSQL
- 将DB2 for LUW同步到GaussDB集中式版
- 将DB2 for LUW同步到GaussDB分布式版
- 将Microsoft SQL Server同步到Kafka
- 双向同步
- 任务管理
- 标签管理
- 连接诊断
- 查看异常数据
- 对接云审计服务
- 对接云监控服务
- 对接云日志服务
- 同步场景操作参考
- 附录
- 数据订阅
- 实时灾备
- 录制回放
- 校验任务
-
最佳实践
- 最佳实践汇总
- 实时迁移
- 备份迁移
- 实时同步
- 实时灾备
- 安全最佳实践
- 安全白皮书
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
- API v3(推荐)
-
API v3(不再推广)
-
公共接口管理
- 批量创建任务
- 批量测试连接
- 批量测试连接-集群模式
- 批量修改任务
- 批量数据库对象选择
- 批量预检查
- 批量查询预检查结果
- 批量设置任务限速
- 批量获取数据库参数
- 修改数据库参数
- 批量启动任务
- 批量续传/重试
- 批量暂停任务
- 批量结束任务或删除任务
- 批量修改源库/目标库密码
- 批量设置definer
- 创建对比任务
- 查询对比结果
- 查询租户任务列表
- 批量查询任务详情
- 批量查询任务状态
- 批量配置异常通知
- 查询可用的Node规格
- 查询数据级表对比任务列表
- 创建数据级表对比任务
- 取消对比任务
- 立即启动数据级表对比任务
- 查询行数对比总览
- 查询行数对比详情
- 查询内容对比总览
- 查询内容对比详情
- 查询内容对比差异
- 创建对象级对比任务
- 查询对象对比任务概览
- 查询对象对比任务详情
- 导出对比任务结果文件
- 下载对比任务结果文件
- 实时迁移管理
- 实时同步管理
- 实时灾备管理
-
公共接口管理
- API v5(公测中)
- 应用示例
- 权限策略和授权项
- 附录
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询
- 区域和可用区
- 什么是数据复制服务
- 数据复制服务是否支持关系型数据库的HA实例迁移
- 数据复制服务对源数据库有什么要求
- 数据复制服务对目标数据库有什么要求
- 数据复制服务是否采用了并发技术
- 数据复制服务是否采用了压缩技术
- DRS是否支持公有云和专属云间的数据库迁移
- 什么是配额
- DRS支持将DB2 for LUW迁移到PostgreSQL吗
- Microsoft SQL Server数据库能与本地数据库的数据实时同步吗
- 数据复制服务是否支持某个时间段的数据复制
- DRS支持断点续传吗
- 什么是单主/双主灾备
- 实时迁移、实时同步和实时灾备有什么区别
- MySQL迁移出现数据膨胀怎么办
- MySQL数据同步对源数据库和目标数据库有什么影响
- DRS需要源数据库停止业务吗
- 什么是SMN主题
- DRS任务的双AZ和单AZ有什么区别
- DRS是否支持只迁移表结构不迁移数据
- MySQL迁移、同步、灾备任务怎么迁移账号,是否支持修改密码
- 影响DRS任务速度的因素有哪些以及如何进行耗时预估
- DRS任务支持修改对象吗
- DRS是否支持同一实例不同库之间的同步
- 源或者目标数据库哪些操作,会影响DRS任务状态
- 数据订阅与MySQL到Kafka同步的区别
- 为什么DRS不支持部分他云只读实例的备库做源库
- DRS支持caching_sha2_password加密用户迁移吗
- 为什么迁移前后数据库磁盘空间使用量不一致
- DRS发送Kafka消息序列化方式是什么
- DRS可支持自建的MySQL数据库迁移吗?
- DRS会主动清空目标表数据吗?
- 入云,出云,自建有什么不同?
- DRS支持自建MySQL到自建MySQL的链路吗?
- DRS最小的传输粒度是什么?
- 在数据迁移过程中,对源库中目标库进行操作,会对DRS有什么影响?
- 网络及安全
- 权限管理
-
实时迁移
- 如何判断数据迁移任务可以停止
- MySQL迁移中Definer强制转化后如何维持原业务用户权限体系
- MySQL存储过程迁移上云后遇到调用权限的问题,如何解决
- 如何确保业务数据库的全部业务已经停止
- 迁移日志提示can not get agency token
- Oracle到MySQL迁移时,索引超长如何处理
- Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin
- RDS for MySQL不支持MyISAM引擎表,迁移时MyISAM如何处理
- 低版本迁移至MySQL 8.0,应该注意哪些问题
- MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因
- 如何关闭集合均衡器Balancer
- 如何批量导出、导入事件(event)和触发器(trigger)
- 源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表
- 分片集群MongoDB迁移前清除孤儿文档
- MySQL账号迁移后权限显示多了反斜杠“\”
- 备份迁移
-
实时同步
- DRS支持直接同步不同schema的表到同一个schema吗
- DRS实时同步支持使用Online DDL工具吗
- DRS是否支持双向实时同步
- 源库Oracle为RAC集群时,为什么建议使用SCAN IP连接
- 源库Oracle补全日志检查方法
- 同步到GaussDB(DWS)的使用建议
- Oracle到GaussDB字符集兼容性说明
- 字符集不兼容导致数据乱码或者同步失败
- DRS增量同步怎样填启动位点
- MySQL或MariaDB不同版本之间的语法差异
- GaussDB远程连接配置方法
- GaussDB为源链路增量同步连接及端口说明
- DRS主键或者唯一键不一致导致数据不一致需要怎样处理
- 已经启动的任务,在配置中没有选DDL,需要重新支持,该怎么办?
- DRS同步任务支持MySQL8到MySQL5.7吗?
- DRS已经开始的同步任务如何增删表?
- GaussDB到Kafka导入对象文件支持表名映射和topic映射操作说明
- 数据订阅
- 实时灾备
- 数据对比
-
通用操作
- DRS界面信息重叠是什么原因
- 目标库读写设置是实例级还是库级
- MySQL源库设置了global binlog_format = ROW没有立即生效
- binlog_row_image参数设置为FULL没有立即生效
- 设置的密码不符合目标库的密码复杂度要求时,如何修改密码强度
- 如何设置MongoDB数据库分片集群的分片键
- 扩大带宽是否会对DRS正在进行中的任务产生影响
- 为什么MariaDB和SysDB下的数据不迁移或同步
- 多对一的场景约束及操作建议
- 一对多的场景约束及操作建议
- 数据复制服务的操作日志在哪里查看
- 为什么DRS发送提示信息的语言和页面不符
- 为什么DRS任务自动结束了
- DRS导出任务列表
- 已结束的任务还能重新启动吗
- 重置任务和重新创建任务有什么区别
- DRS支持一键反向功能吗
- 已经创建的SMN主题为什么选择不了
- 任务创建成功后是否支持修改SMN主题
- DDM为源链路源库分片数量和信息怎么填写
- 源端MySQL发生主备倒换,DRS任务会丢数据吗
- DRS对象选择时的全部迁移、表级迁移、库级迁移有什么区别
- 源库或目标库修改密码后如何操作
- 设置SMN主题策略,允许DRS发送消息通知
- DRS任务表数量太多导致任务超时怎么办
- DRS任务创建后支持修改源或目标数据库吗
- Api V5公测状态,是可用的吗?
- DRS进行暂停,结束任务,续传任务操作,需要多少时间?
- 计费相关
- 时延相关
-
产品咨询
-
故障排除
-
预检查不通过项修复方法
- 磁盘空间检查
-
数据库参数检查
- 源数据库binlog日志是否开启
- 源数据库binlog格式检查
- 源数据库expire_logs_days参数检查
- 源数据库和目标数据库的字符集是否一致
- 源数据库参数server_id是否符合增量迁移要求
- 源数据库和目标数据库表名大小写敏感性检查
- 源数据库中是否存在非ASCII字符的对象名称
- time_zone的一致性检查
- collation_server的一致性检查
- SERVER_UUID的一致性检查
- 数据库参数SERVER_ID的一致性检查
- 源数据库是否存在不允许使用的sql_mode值
- 数据库参数sql_mode的一致性检查
- 目标库sql_mode中no_engine值检查
- 数据库参数innodb_strict_mode一致性检查
- 校验源数据库参数max_wal_senders
- 源库参数WAL_LEVEL校验
- 源库参数MAX_REPLICATION_SLOTS校验
- 源数据库是否处于备机状态
- 源数据库参数log_slave_updates检查
- 源库与目标库的BLOCK_SIZE参数值是否相同
- binlog_row_image参数是否为FULL
- 事务隔离级别一致性校验
- 货币金额格式是否一致
- 源数据库中是否存在非ASCII字符的触发器名
- 源数据库集合索引个数检查
- 源数据库集合TTL索引检查
- 源库和目标库参数log_bin_trust_function_creators一致性校验
- 源库的GTID功能检查
- 目标库的GTID功能检查
- 目标库参数log_bin_trust_function_creators校验
- 异构数据库兼容性风险须知
- 检查目标库的max_allowed_packet参数
- 源数据库是否具有日志解析权限
- 源数据库ExpireLogsDays参数检查
- 源数据库字符集是否支持
- 源数据库表名和字段名长度检查
- 选择对象预检查
- 源库是否具有补充日志级别权限
- 源库对象名长度检查
- 目标库参数session_replication_role检查
- 数据库兼容类型检查
- 目标库排序字符集检查
- 索引名是否支持
- 表结构一致性检查
- 存在约束不验证添加前数据
- 目标库附加列检查
- 主备库是否开启隐式主键检查
- 源库表复制属性检查
- 源库指定名称的复制槽是否存在
- 实例类型是否匹配迁移模式
- 物理复制库检查
- 目标库大小写敏感检查
- 源库表是否开启了CDC
- 源库CDC数据保留时间是否足够
- 源库服务器计算机名是否一致
- 源库库名长度校验
- 同步对象名称校验
- 源数据库是否存在被禁用的聚集索引
- 源数据库实例是否为空
- 源数据库恢复模式检查
- 源数据库选择对象预检查
- 源库表类型校验
- 源数据库SQL Server代理运行状态检查
- 数据库参数group_concat_max_len一致性检查
- 源库表结构是否一致
- 字符集兼容性检查
- 源库存在长时间未提交的XA事务检查
- 目标数据库对象一致性检查
- 目标库同名库表检查
- 目标库用户(schema)及表是否已存在
- 源库迁移的索引列数量检查
- 源库索引列长度检查
- 源库Oracle与目标库中间件表结构(包括列数,主键索引)是否对齐
- 目标库是否存在同步对象
- 源数据库存在加密的数据库对象
- 源数据库表字段类型检查
- 主键列复制属性的校验
- 同步对象中是否存在包含longtext或longblob类型字段的表
- 映射数据库对象检查
- 源库是否为TaurusDB备库
- 映射到目标库中的type名是否合法
- 源库和目标库的字符集是否一致
- 源库是否已开启复制功能
- 源库最大数据库序号是否小于目标库最大数据库序号
- 源库间隔分区表检查
- 源库用户属于Oracle
- 源库输入DN数量校验
- 目标库对象一致性检查
- 源端存在不支持的外键引用操作
- 所选表是否包含延迟约束
- 源迁移库无主键表检查
- 是否禁用了外键或者同步的表在目标库上是否有外键
- 源库集合复合哈希索引检查
- 源库集合复合哈希分片键检查
- 源端表结构是否存在换行
- 同步对象中是否存在包含bytea、text类型字段的表
- 源库表结构是否存在虚拟列
- 检查源库的max_allowed_packet参数
- 源库补全日志级别检查
- Kafka Topic是否已创建
- 源库编码方式检查
- 数据库参数block_encryption_mode一致性检查
- 目标库区域类型及排序规则检查
- 源数据库列名检查
- 目标数据库schema及表对象一致性检查
- 源库加密表检查
- 源库中表的复制属性检查
- 源库分区表检查
- 源库存在不支持的生成列检查
- 源数据库参数ENABLE_SLOT_LOG校验
- 源库实例状态检查
- 目标库实例状态检查
- 数据库用户权限检查
- 数据库版本检查
- 网络情况
- 数据库对象检查
- 数据库配置项检查
- 冲突检查
- SSL连接检查
- 对象依赖关系检查
- 源数据库信息检查
- 预检查超时
-
失败案例
- 案例总览
-
MongoDB->DDS实时迁移
- 全量迁移失败报错,关键词“Prematurely reached end of stream”
- 全量迁移失败报错,关键词“not authorized on *** to execute command {***}”
- 全量迁移失败报错,关键词“GC overhead limit exceeded”
- 全量迁移失败报错,关键词“The background process is unavailable. Maybe it has been killed manually or by the operating system. Please restart the task if possible or wait for restarting by itself within 5 minutes.”
- 全量迁移失败报错,关键词“Timed out after 60000 ms while waiting to connect”
- 全量或增量迁移失败报错,关键词“Timed out after 60000 ms while waiting to connect”
- 全量或增量迁移失败报错,关键词“Invalid BSON field name ***”
- 增量迁移失败报错,关键词“Timed out after 60000 ms while waiting for a server that matches com.mongodb.client.internal”
- 增量迁移失败报错,关键词“Command failed with error *** (***):***. The full response is {***}”
-
MySQL->MySQL实时迁移和同步
- 全量阶段失败报错,关键词“Table *** doesn't exist”
- 全量阶段失败报错,关键词“The background process is unavailable”
- 全量阶段失败报错,关键词“Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server”
- 全量阶段失败报错,关键词“Error writing file *** (errno: 28 - No space left on device)”
- 全量阶段失败报错,关键词“The MySQL server is running with the --super-read-only option so it cannot execute this statement”
- 全量阶段失败报错,关键词“The table *** is full”
- 全量阶段失败报错,关键词“Unknown column *** in 'field list'”
- 全量阶段失败报错,关键词“Lock wait timeout exceeded; try restarting transaction”
- 全量阶段失败报错,关键词“Java heap space”
- 全量阶段失败报错,关键词“Table *** already exists”
- 全量阶段失败报错,关键词“temp table: *** not exist”
- 全量阶段失败报错,关键词“failed to create new session”
- 全量阶段失败报错,关键词“load table: *** failed”
- 全量阶段失败报错,关键词“extract table structure failed!”
- 全量阶段失败报错,关键词“read table=*** failed”
- 全量阶段失败报错,关键词“CANNOT UPDATE USER WITH NULL PASSWORD”
- 全量阶段失败报错,关键词“Access denied for user *** to database ***”
- 全量阶段失败报错,关键词“The MySQL server is running with the --super-read-only option so it cannot execute this statement”
- 全量阶段失败报错,关键词“Temporary file write failure.”
- 全量阶段失败报错,关键词“Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys”
- 全量阶段失败报错,关键词“Unknown database ***”
- 全量阶段失败报错,关键词“Access denied; you need (at least one of) the SUPER privilege(s) for this operation”
- 全量阶段失败报错,关键词“retry structures failed events”“Table *** doesn't exist”
- 全量阶段失败报错,关键词“ shard table=*** failed”
- 全量阶段失败报错,关键词“error when split table shard occur!”
- 全量阶段失败报错,关键词“Column name 'AUTO_PK_ROW_ID' is reserved.”
- 全量阶段失败报错,关键词“transfer account failed, can not find password from src DB”
- 全量阶段失败报错,关键词“Failed to add the foreign key constraint '***' to system tables”
- 全量阶段失败报错,关键词“Too many keys specified; max 64 keys allowed”
- 全量阶段失败报错,关键字“Unknown collation: 'utf8mb4_0900_ai_ci'”
- 全量阶段失败报错,关键字“exist some xa transactions for long times, may lack some data for this Job!.”
- 全量阶段失败报错,关键字“Invalid GIS data provided to function st_geometryfromtext'”
- 全量或增量阶段失败报错,关键词“Access denied for user ***”
- 全量或增量阶段失败报错,关键词“binlog is not existed”
- 全量或增量阶段失败报错,关键词“database log download failed”
- 全量或增量阶段失败报错,关键词“Can not read response from server”
- 全量或增量阶段失败报错,关键词“Communications link failure”
- 全量或增量阶段失败报错,关键词“EOF Packet received, master disconnected”
- 全量或增量阶段失败报错,关键词“Extract db create sql failed”
- 全量或增量阶段失败报错,关键词“load database structure failed in source database”
- 全量或增量阶段失败报错,关键词“load table: *** failed”
- 全量或增量阶段失败报错,关键词“Reached end of input stream”
- 全量或增量阶段失败报错,关键词“Read timed out”
- 全量或增量阶段失败报错,关键词“The background process is unavailable”
- 全量或增量阶段失败报错,关键词“Duplicate entry *** for key 'PRIMARY'”
- 全量或增量阶段失败报错,关键词“cause by: Index: ***, Size: ***”
- 全量或增量阶段失败报错,关键词“The offset and file name between src and parser is inconsistency”
- 全量或增量阶段失败报错,关键词“core process is not healthy or crashed”
- 全量或增量阶段失败报错,关键词“table info of table `***` from metadata miss”
- 全量或增量阶段失败报错,关键词“binlog parse fail, data dictionary may be not complete!”
- 全量或增量阶段失败报错,关键词“table *** record field size for insert/delete dml”
- 全量或增量阶段失败报错,关键词“service *** failed, cause by: Unable to connect to DBMS: ***”
- 全量或增量阶段失败报错, 关键词“The binlog fetch connection may be interrupted”
- 全量或增量阶段失败报错,关键词“Received error packet: errno - 1047, solstate - HY000 errmsg = Unknown command”
- 增量阶段失败报错,关键词“not equals to target db column count”
- 增量阶段失败报错,关键词“The MySQL server is running with the --super-read-only option”
- 增量阶段失败报错,关键词“you need (at least one of) the SUPER privilege(s) for this operation”
- 增量阶段失败报错,关键词“Can't DROP ***; check that column/key exists”
- 增量阶段失败报错,关键词“Can't find file: *** (errno: 2 - No such file or directory)”
- 增量阶段失败报错,关键词“Data truncation: Data too long for column”
- 增量阶段失败报错,关键词“Failed to read file header from”
- 增量阶段失败报错,关键词“Lock wait timeout exceeded”
- 增量阶段失败报错,关键词“Must seek before attempting to read next event”
- 增量阶段失败报错,关键词“Table *** already exists”
- 增量阶段失败报错,关键词“Table *** doesn't exist”
- 增量阶段失败报错,关键词“Table *** not found in database”
- 增量阶段失败报错,关键词“source has more columns than target”
- 增量阶段失败报错,关键词“Unknown storage engine”
- 增量阶段失败报错,关键词“Unknown table”
- 增量阶段失败报错,关键词“You have an error in your SQL syntax”
- 增量阶段失败报错,关键词“not illegal for mariaDb gtid position”
- 增量阶段失败报错,关键词“without PK execute failed”
- 增量阶段失败报错,关键词“Deadlock found when trying to get lock”
- 增量阶段失败报错,关键词“current serverUUID not equals to this session”
- 增量阶段失败报错,关键词“Slave has more GTIDs than the master has, using the master's SERVER_UUID.”
- 增量阶段失败报错,关键词“Operation not allowed when innodb_force_recovery > 0”
- 增量阶段失败报错,关键词“filter data in config condition filter error”
- MySQL->TaurusDB实时迁移和同步
- MySQL->CSS/ES实时同步
-
PostgreSQL->PostgreSQL实时同步
- 任务启动失败报错,关键词“Initialize logical replication stream failed, the source database may have a long transaction: ****.”
- 全量同步失败报错,关键词“function *** does not exist”
- 全量同步失败报错,关键词“relation *** does not exist”
- 全量同步失败报错,关键词“GC overhead limit exceeded”
- 全量同步失败报错,关键词“Java heap space”
- 全量同步失败报错,关键词“column *** of relation *** does not exist”
- 全量同步失败报错,关键词“column *** does not exist”
- 全量同步失败报错,关键词“type 'hstore' does not exist”
- 全量同步失败报错,关键词“type 'geometry' does not exist”
- 全量同步失败报错,关键词“Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections”
- 全量同步失败报错,关键词“invalid locale name”
- 全量同步失败报错,关键词“password must not equal user name”
- 全量同步失败报错,关键词“permission denied for schema ***”
- 全量或增量阶段失败报错,关键词“service *** failed, cause by: Unable to connect to DBMS: ***”
- 全量或增量阶段失败报错,关键词“Initialize logical replication stream failed, the source database may have a long transaction”
- 全量或增量阶段失败报错,关键词“memory required is *** MB, maintenance_work_mem is *** MB”
- 全量或增量阶段失败报错,关键词“temporary file size exceeds temp_file_limit”
- 增量同步失败报错,关键词“Table *** not found in target database”
- 增量同步失败报错,关键词“remaining connection slots are reserved”
- 增量同步失败报错,关键词“PL/pgSQL function *** line *** at SQL statement”
- 增量同步失败报错,关键词“The replication slot does not exist and the task is not started for the first time.”
-
Oracle为源实时同步
- 全量同步失败报错,关键词“has date/datetime: *** which is outside of dest allowed range”
- 全量或增量阶段失败报错,关键词“Got minus one from a read call”
- 增量同步失败报错,关键词“Source supplemental log level is PK/UI. Missing column data at delete+insert on ***”
- 增量同步失败报错,关键词“timeout when get next file log, maybe has been deleted, please check it.”
- 增量同步失败报错,关键词“Failed to construct kafka producer. ”
- 增量同步失败报错,关键词“Topic *** not present in metadata after 300000 ms”
- GaussDB为源实时同步
- MySQL为源实时灾备
- 备份迁移
- 录制回放
- 数据对比
-
预检查不通过项修复方法
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
本地MySQL迁移到RDS for MySQL
数据复制服务(Data Replication Service,简称DRS)支持将本地MySQL数据库的数据迁移至云数据库 RDS for MySQL实例。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。
本章节主要介绍了通过DRS将本地MySQL数据库实时迁移至本云云数据库 RDS for MySQL的任务配置流程。支持以下网络类型:
- VPN(Virtual Private Network,虚拟专用网络)网络
- 公网网络
网络示意图


迁移流程

迁移建议(重要)
- 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题,如何最小化对数据库的影响请参考如下建议。
- 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能影响。
迁移准备
- 权限准备:
当使用 DRS 将本地数据库的数据迁移到本云云数据库 RDS for MySQL 实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表1所示:
表1 迁移账号权限 迁移类型
全量迁移
全量+增量迁移
源数据库
SELECT、SHOW VIEW、EVENT。
SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
目标数据库
SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。
当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。
用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。
- 源数据库的权限设置:
需要确保源数据库MySQL的账号具备表1的权限,若权限不足,需要在源数据库端创建高权限的账号。
- 目标数据库的权限设置:
本云云数据库 RDS for MySQL使用初始账号即可。
- 源数据库的权限设置:
- 网络准备:
- 源数据库的网络设置:
本地MySQL数据库实时迁移至本云云数据库 RDS for MySQL的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MySQL数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。
- 目标数据库的网络设置:
- 若通过VPN访问,请先开通华为VPN服务,确保源数据库MySQL和目标端本云云数据库 RDS for MySQL的网络互通。
- 若通过公网网络访问,本云云数据库 RDS for MySQL实例不需要进行任何设置。
- 源数据库的网络设置:
- 安全规则准备:
- 源数据库的安全规则设置:
- 若通过公网网络进行迁移,源数据库MySQL需要将DRS迁移实例的弹性公网IP添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取DRS迁移实例的弹性公网IP,具体方法如下:
DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。
图4 迁移实例EIP - 若通过VPN网络进行迁移,源数据库MySQL需要将DRS迁移实例的私有IP添加到其网络白名单内,使源数据库与本云的网络互通。DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的私有IP。
以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。
- 若通过公网网络进行迁移,源数据库MySQL需要将DRS迁移实例的弹性公网IP添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取DRS迁移实例的弹性公网IP,具体方法如下:
- 目标数据库安全组规则设置:
目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。
- 源数据库的安全规则设置:
- 其他事项准备。
DRS支持部分与业务和性能强相关的参数迁移,具体参数列表请参见参数列表。若涉及其他参数需要根据用户具体的业务进行手动设置。
迁移步骤
以下操作以公网网络迁移的方式为例,指导您通过DRS将本地MySQL数据库实时迁移至本云云数据库 RDS for MySQL。
- 创建迁移任务。
- 登录管理控制台,在服务列表中选择“数据库 > 数据复制服务”,进入数据复制服务信息页面。
- 在“实时迁移管理”页面,单击右上角“创建迁移任务”,进入迁移任务信息页面。
- 在“迁移实例”页面,填选任务信息和迁移实例信息。
图5 迁移实例信息
表2 任务和描述 参数
描述
区域
当前所在区域,可进行切换。为了降低访问时延、提高访问速度,请就近选择靠近您业务的区域。
项目
当前区域对应的项目,可进行切换。
任务名称
任务名称在4-50位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他的特殊字符。
描述
描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。
表3 迁移实例信息 参数
描述
数据流动方向
选择“入云”。
源数据库引擎
选择“MySQL”。
目标数据库引擎
选择“MySQL”。
网络类型
选择“公网网络”。建议您开启SSL安全连接,SSL约降低20-30%的迁移性能,但保证了数据的安全性。
目标数据库实例
选择您所创建的目标RDS for MySQL实例。
目标库读写设置
此处以“只读”设置为示例。
迁移模式
此处以“全量+增量”模式为示例。
- 全量:该模式为数据库一次性迁移,适用于可中断业务的数据库迁移场景,全量迁移将非系统数据库的全部数据库对象和数据一次性迁移至目标端数据库,包括:表、视图、存储过程等。
说明:
如果用户只进行全量迁移时,建议停止对源数据库的操作,否则迁移过程中源数据库产生的新数据不会同步到目标数据库。
- 全量+增量:该模式为数据库持续性迁移,适用于对业务中断敏感的场景,通过全量迁移过程中完成的目标端数据库的初始化后,增量迁移阶段通过解析日志等技术,将源端和目标端数据库保持数据持续一致。
说明:
选择“全量+增量”迁移模式,增量迁移可以在全量迁移完成的基础上实现数据的持续同步,无需中断业务,实现迁移过程中源业务和数据库继续对外提供访问。
- 全量:该模式为数据库一次性迁移,适用于可中断业务的数据库迁移场景,全量迁移将非系统数据库的全部数据库对象和数据一次性迁移至目标端数据库,包括:表、视图、存储过程等。
- 在“源库及目标库”信息页面,迁移实例创建成功后,填选源库信息和目标库信息,单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”。
图6 源和目标库信息
表4 源库信息 参数
描述
IP地址或域名
配置源数据库MySQL实例的访问地址或域名。
端口
配置源数据库MySQL实例的服务端口,可输入范围为1~65535间的整数。
数据库用户名
访问源数据库MySQL的用户名。
数据库密码
访问源数据库MySQL的用户名所对应的密码。
SSL安全连接
在选择公网网络进行迁移任务时,为了提升数据在网络传输过程中的安全性,建议您开启SSL安全连接,对迁移链路进行加密,如果开启,需要您上传CA证书。
表5 目标库信息 参数
描述
数据库实例名称
默认为创建迁移任务时选择的已创建的RDS for MySQL实例,不可进行修改。
数据库用户名
访问目标端RDS for MySQL实例的用户名。
数据库密码
访问目标端RDS for MySQL实例的用户名所对应的密码。
所有Definer迁移到该用户下
- 是
迁移后,所有源数据库对象的Definer都会迁移至该用户下,其他用户需要授权后才具有数据库对象权限,如何授权请参考《数据复制服务常见问题》中的MySQL迁移中Definer强制转化后如何维持原业务用户权限体系章节。
- 否
迁移后,将保持源数据库对象Definer定义不变,选择此选项,需要配合下一步用户权限迁移功能,将源数据库的用户全部迁移,这样才能保持源数据库的权限体系完全不变。
- 是
- 在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。
图7 迁移对象
表6 迁移模式和迁移对象-公网 参数
描述
流速模式
流速模式支持限速和不限速,默认为不限速。
- 限速:自定义的最大迁移速度,迁移过程中的迁移速度将不会超过该速度。
当流速模式选择了“限速”时,你需要通过流速设置来定时控制迁移速度。流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为全天,您也可以根据业务需求自定义定时限速。自定义的定时限速支持最多设置3个定时任务,每个定时任务之间不能存在交叉的时间段,未设定在限速时间段的时间默认为不限速。
流速的大小需要根据业务场景来设置,不能超过9999Mb/s。
- 不限速:对迁移速度不进行限制,通常会最大化使用源数据库的出口带宽。该流速模式同时会对源数据库造成读消耗,消耗取决于源数据库的出口带宽。比如源数据库的出口带宽为100Mb/s,假设高速模式使用了80%带宽,则迁移对源数据库将造成80Mb/s的读操作IO消耗。
说明:
- 限速模式只对全量迁移阶段生效,增量迁移阶段不生效。
- 您也可以在创建任务后修改流速模式。操作方法为:在“实时迁移管理”页面的迁移列表中,选择需要修改流速模式的任务,单击操作列的“更多>限速”,或“限速”。
是否过滤DROP DATABASE
迁移过程中,源数据库端执行的DDL操作在一定程度上会影响数据的同步能力,为了降低同步数据的风险,数据复制服务提供了过滤DDL操作的功能。
目前支持默认过滤删除数据库的操作。
- 是,表示实时同步过程中不会同步用户在源数据库端执行的删除数据库的操作。
- 否,则表示实时同步过程中将相关操作同步到目标库。
说明:
该功能只支持过滤DDL的删除数据库操作,不支持过滤存储过程。
迁移用户
数据库的迁移过程中,迁移用户需要进行单独处理。
常见的迁移用户一般分为三类:可完整迁移的用户、需要降权的用户和不可迁移的用户。您可以根据业务需求选择“迁移”或者“不迁移”,选择“迁移”后,可根据需要选择迁移用户。
- 迁移
当您选择迁移用户时,请参见《数据复制服务用户指南》中“迁移用户”章节进行数据库用户、权限及密码的处理。
迁移对象
迁移对象选择的粒度可以为数据库的全对象,对象迁移到目标数据库实例后,对象名将会保持与源数据库实例对象名一致且无法修改。
您可以根据业务需求,选择全部对象迁移或者自定义迁移对象。
- 全部迁移:将源数据库中的所有对象全部迁移至目标数据库。
- 自定义对象:将自定义选择的对象迁移至目标数据库。
说明:
若选择部分数据库进行迁移时,由于存储过程、视图等对象可能与其他数据库的表存在依赖关系,若所依赖的表未迁移,则会导致迁移失败。建议您在迁移之前进行确认,或选择全部数据库进行迁移。
- 限速:自定义的最大迁移速度,迁移过程中的迁移速度将不会超过该速度。
- 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。
- 预检查完成后,且所有检查项结果均成功时,单击“下一步”。
- 进入“参数对比”页面,进行参数对比。
参数对比功能从常规参数和性能参数两个维度,展示了源数据库和目标数据库的参数值是否一致。您可以根据业务需求,决定是否选用该功能。该操作不影响数据的迁移,主要目的是为了确保迁移成功后业务应用的使用不受影响。
- 若您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继续执行后续操作。
- 若您选择进行参数对比,请参照如下的步骤操作。
一般情况下,对于常规参数,如果源库和目标库存在不一致的情况,建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的值。
图8 修改常规参数对于性能参数,您可以根据业务场景,自定义源数据库和目标库的参数值,二者结果可以一致也可以不一致。
- 若您需要将对比结果一致的性能参数修改为不一致,需要在“目标库值调整为”一列手动输入结果,单击左上角“一键修改”按钮,即可将源数据库和目标数据库对应的性能参数值改为不一致。
- 若您想将对比结果不一致的参数改为一致结果,请参考如下流程进行修改:
- 对齐源库和目标库的参数值。
当源库和目标库对应的参数值出现不一致时,选择需要修改的参数,单击“一键对齐”按钮,系统将帮您自动填充目标数据库的参数值,使其和源库对应的参数值保持一致。
图9 一键对齐参数说明:
对齐参数值的操作,您也可以通过手动输入结果。
- 修改参数值。
源库和目标库的不一致参数值对齐后,单击“一键修改”按钮,系统将按照您当前设置的目标库参数值进行修改。修改完成后,目标库的参数值和对比结果会自动进行更新。
图10 修改性能参数部分参数修改后无法在目标数据库立即生效,需要重启才能生效,此时的对比结果显示为“待重启,不一致”。建议您在迁移任务启动之前重启目标数据库,或者迁移结束后选择一个计划时间重启。如果您选择迁移结束后重启目标数据库,请合理设置重启计划时间,避免参数生效太晚影响业务的正常使用。
在进行参数对比功能时,您可以参见《数据复制服务用户指南》中“参数对比列表”进行参数设置。
- 参数对比操作完成后,单击“下一步”。
- 对齐源库和目标库的参数值。
- 在“任务确认”页面,设置迁移任务的启动时间、任务异常通知设置、SMN主题、时延阈值、任务异常自动结束时间,并确认迁移任务信息无误后,单击“启动任务”,提交迁移任务。
图11 任务启动设置
表7 任务启动设置 参数
描述
启动时间
迁移任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”,优选“稍后启动”。
说明:
预计迁移任务启动后,会对源数据库和目标数据库的性能产生影响,建议您将任务启动时间设定在业务低峰期,同时预留2-3天校对数据。
任务异常通知设置
该项为可选参数,开启之后,选择对应的SMN主题。当迁移任务状态异常时,系统将发送通知。
SMN主题
“任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。
SMN主题申请和订阅可参考《消息通知服务用户指南》。
时延阈值
在增量迁移阶段,源数据库和目标数据库之间的实时同步有时会存在一个时间差,称为时延,单位为秒。
时延阈值设置是指时延超过一定的值后(时延阈值范围为0—3600s),DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。
说明:
- 首次进入增量迁移阶段,会有较多数据等待同步,存在较大的时延,属于正常情况,不在此功能的监控范围之内。
- 设置时延阈值之前,需要设置任务异常通知。
- 当时延阈值设置为0时,不会发送通知给收件人。
任务异常自动结束时间(天)
设置任务异常自动结束天数,输入值必须在14-100之间,默认值14。
说明:
异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免产生不必要的费用。
- 迁移任务提交后,您可以返回“实时迁移管理”页面,查看迁移任务状态。
- 任务管理。
迁移任务启动后,会经历全量迁移和增量迁移两个阶段,对于不同阶段的迁移任务,您可以进行任务管理。
- 全量迁移
- 查看迁移进度:全量迁移中的任务,您可单击任务名称,在“迁移进度”页签下,查看全量迁移进度,您可以查看结构、数据、索引迁移的进度,也查看具体迁移对象的迁移进度。当全量迁移进度显示为100%,表示全量迁移已经完成。
- 查看迁移明细:迁移明细中,您可以查看具体迁移对象的迁移进度,当“对象数目”和“已迁移对象”相等时,表示该对象已经迁移完成,可通过“查看详情”查看每个对象的迁移进度。仅白名单用户该支持功能,您可以通过提交工单的方式进行申请使用。
- 增量迁移
- 查看时延监控:全量迁移完成后,开始进行增量迁移。对于增量迁移中的任务,您可单击任务名称,在“迁移进度”页签下,查看增量迁移同步时延,当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。您也可以使用“迁移对比”页签查看一致性。
图12 查看时延监控
- 查看迁移对比:为了尽可能减少业务的影响和业务中断时间,增量迁移中的任务,您可单击任务名称,在“迁移对比”页签下,建议按照如下流程进行迁移对比,以便确定合适的业务割接时机。
图13 迁移对比流程
具体的迁移对比操作及注意事项请参考《数据复制服务用户指南》中“对比迁移项”章节。
- 查看时延监控:全量迁移完成后,开始进行增量迁移。对于增量迁移中的任务,您可单击任务名称,在“迁移进度”页签下,查看增量迁移同步时延,当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。您也可以使用“迁移对比”页签查看一致性。
- 全量迁移
- 割接建议。
建议您选择一个业务低峰期,开始正式系统割接流程。割接前,请您确认至少在业务低峰期有过一次完整的数据对比。可以结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
- 先中断业务(如果业务负载非常轻,也可以尝试不中断业务)。
- 在源数据库端执行如下语句,并观察在1-5分钟内若无任何新会话执行SQL ,则可认为业务已经完全停止。
show processlist
说明:
上述语句查询到的进程列表中,包括DRS迁移实例的连接,您需要确认除DRS迁移实例的连接外无任何新会话执行SQL,即可认为业务已经完全停止。
- 通过DRS迁移任务监控页面进行观察同步时延,保持实时同步时延为0,并稳定保持一段时间;同时,您可以使用数据级对比功能,进行割接前的最后一次数据级对比,耗时可参考之前的对比记录。
- 如果时间允许,则选择全部对比。
- 如果时间不允许,则推荐对比活跃表,关键业务表,第二步对比多次存在差异的表等。
- 确定系统割接时机,业务系统指向本云数据库,业务对外恢复使用,迁移完成。
- 迁移结束。
- 结束迁移任务:业务系统和数据库切换至本云后,为了防止源数据库的操作继续同步到目标数据库,造成数据覆盖问题,此时您可选择结束迁移任务,该操作仅删除了迁移实例,迁移任务仍显示在任务列表中,您可以进行查看或删除。结束迁移任务后,DRS将不再计费。
- 删除迁移任务:对于已结束的迁移任务,您可选择删除任务。该操作将一并删除迁移任务,删除迁移任务后,该任务将不会出现在任务列表中。