- 最新动态
- 服务公告
-
产品介绍
- 图解数据复制服务
- 什么是数据复制服务
- 支持的数据库
- 产品优势
- 功能特性
- 规格说明
- 产品架构和功能原理
-
数据类型映射关系
- 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为源实时灾备
- 备份迁移
- 录制回放
- 数据对比
-
预检查不通过项修复方法
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
数据加工
数据复制服务支持对同步的对象进行加工,即可以为选择的对象添加规则。各链路支持的加工规则不一样,目前仅部分链路支持数据加工,支持数据加工链路参考表1,具体操作方法可参考对应的内容。
同步方向 |
数据流向 |
数据过滤 |
附加列 |
列加工 |
---|---|---|---|---|
入云 |
MySQL->MySQL |
支持 |
支持 |
支持 |
入云 |
MySQL->GaussDB分布式版 |
支持 |
支持 |
支持 |
入云 |
MySQL->GaussDB集中式版 |
支持 |
支持 |
支持 |
入云 |
MySQL->GaussDB(DWS) |
支持 |
支持 |
暂不支持 |
入云 |
MySQL->TaurusDB |
支持 |
支持 |
支持 |
入云 |
MySQL->MariaDB |
支持 |
支持 |
支持 |
入云 |
DDM->MySQL |
暂不支持 |
暂不支持 |
支持 |
入云 |
DDM->GaussDB(DWS) |
暂不支持 |
支持 |
暂不支持 |
入云 |
Oracle->GaussDB(DWS) |
支持 |
支持 |
暂不支持 |
入云 |
Oracle->MySQL |
支持 |
暂不支持 |
暂不支持 |
入云 |
Oracle->TaurusDB |
支持 |
暂不支持 |
暂不支持 |
入云 |
Oracle->GaussDB集中式版 |
支持 |
暂不支持 |
支持 |
入云 |
Oracle->GaussDB分布式版 |
支持 |
暂不支持 |
支持 |
入云 |
DB2 for LUW->GaussDB集中式版 |
支持 |
暂不支持 |
暂不支持 |
入云 |
DB2 for LUW->GaussDB分布式版 |
支持 |
暂不支持 |
暂不支持 |
入云 |
MariaDB->MariaDB |
支持 |
暂不支持 |
暂不支持 |
入云 |
MariaDB->MySQL |
支持 |
支持 |
支持 |
入云 |
MariaDB->TaurusDB |
支持 |
支持 |
支持 |
出云 |
MySQL->MySQL |
支持 |
支持 |
支持 |
出云 |
MySQL->kafka |
暂不支持 |
暂不支持 |
支持 |
出云 |
MySQL->CSS/ES |
支持 |
暂不支持 |
支持 |
出云 |
MySQL->Oracle |
支持 |
暂不支持 |
暂不支持 |
出云 |
MySQL->MariaDB |
支持 |
支持 |
支持 |
出云 |
DDM->MySQL |
暂不支持 |
暂不支持 |
支持 |
出云 |
GaussDB集中式版->MySQL |
支持 |
暂不支持 |
暂不支持 |
出云 |
GaussDB集中式版->Oracle |
支持 |
暂不支持 |
支持 |
出云 |
GaussDB集中式版->Kafka |
暂不支持 |
暂不支持 |
支持 |
出云 |
GaussDB集中式版->GaussDB(DWS) |
支持 |
暂不支持 |
暂不支持 |
出云 |
GaussDB集中式版->GaussDB分布式版 |
支持 |
暂不支持 |
支持 |
出云 |
GaussDB集中式版->GaussDB集中式版 |
支持 |
暂不支持 |
支持 |
出云 |
GaussDB分布式版->MySQL |
支持 |
暂不支持 |
暂不支持 |
出云 |
GaussDB分布式版->Oracle |
支持 |
暂不支持 |
支持 |
出云 |
GaussDB分布式版->GaussDB(DWS) |
支持 |
暂不支持 |
暂不支持 |
出云 |
GaussDB分布式版->Kafka |
暂不支持 |
暂不支持 |
支持 |
出云 |
GaussDB分布式版->GaussDB分布式版 |
支持 |
暂不支持 |
支持 |
出云 |
GaussDB分布式版->GaussDB集中式版 |
支持 |
暂不支持 |
支持 |
出云 |
TaurusDB->MySQL |
支持 |
支持 |
暂不支持 |
出云 |
TaurusDB->GaussDB(DWS) |
暂不支持 |
支持 |
暂不支持 |
出云 |
TaurusDB->CSS/ES |
支持 |
暂不支持 |
支持 |
出云 |
MariaDB->MariaDB |
支持 |
暂不支持 |
暂不支持 |
自建-自建 |
MySQL->Kafka |
暂不支持 |
暂不支持 |
支持 |
自建-自建 |
MySQL->CSS/ES |
支持 |
暂不支持 |
支持 |
自建-自建 |
MySQL->GaussDB分布式版 |
支持 |
支持 |
支持 |
自建-自建 |
MySQL->GaussDB集中式版 |
支持 |
支持 |
支持 |
自建-自建 |
Oracle->GaussDB集中式版 |
支持 |
暂不支持 |
支持 |
自建-自建 |
Oracle->GaussDB分布式版 |
支持 |
暂不支持 |
支持 |
自建-自建 |
GaussDB集中式版->Kafka |
暂不支持 |
暂不支持 |
支持 |
自建-自建 |
GaussDB分布式版->Kafka |
暂不支持 |
暂不支持 |
支持 |
自建-自建 |
DB2 for LUW->GaussDB集中式版 |
支持 |
暂不支持 |
暂不支持 |
自建-自建 |
DB2 for LUW->GaussDB分布式版 |
支持 |
暂不支持 |
暂不支持 |
添加附加列
- 在实时同步任务的“数据加工”页面选择“附加列”,对于需要加工的表对象,单击“操作”列的添加。
图1 附加列
- 在弹出的“添加”对话框中,填选列名、操作类型、字段类型等信息,选择的操作类型不同,需要填写的信息也不同。完成后单击“确定”。
图2 操作类型
说明:
- 多对一映射场景下,需要使用数据加工的附加列操作来避免数据冲突。
- 支持的操作类型有以下几种
- “默认值”:使用输入的默认值填充新加的列。
- “以create_time为列”和“以update_time为列”操作会分别使用数据产生时间和修改时间填充新加的列。
- “表达式”:选择使用concat(_current_database, '@',_current_table) 表达式填充新加的列,暂不支持手动输入表达式。
- “以serverName@database@table为列”:使用@符号分别拼接serverName、源库的库名、表名填充新加的列,其中serverName为手动输入。
- “填充值”:选择填充值为新加的列,比如同步时间戳。
- 支持“批量设置”,将第一个可编辑表的附加列信息应用到此任务中所有可编辑的表。
- MySQL->TaurusDB同步,单表的列数超过500时, 对该表添加附加列可能会超过列数上限,会导致任务失败。
- 如果使用serverName@database@table作为附加列,后续在进行数据对比时,目标端将默认使用该附加列作为行比对、内容比对的隐含过滤条件。
- 有附加列的表,增量阶段不支持对表做drop table然后create table的DDL操作。
- 多对一映射场景,再编辑时,若新增的表之前已同步过、做过多对一映射并且设置过附加列,需要对该表重新设置附加列,否则默认保持上一次同步时的附加列设置。
- 检查无误后,单击“下一步”,进入下一步操作。
数据过滤
- 更新前不符合过滤条件,更新后符合。继续同步,在目标库执行相同的更新操作,如果匹配不到数据,则会忽略,会导致数据不一致。
- 更新前符合过滤条件,更新后不符合。继续同步,在目标库执行相同的更新操作。
- 在“数据加工”页面选择“数据过滤”。
图3 数据过滤
- 在“对象选择”区域选择需要加工的表对象。
- 在过滤条件区域,填写过滤条件(只需填写SQL语句的WHERE之后部分,例如id=1)后,单击“校验规则”。
说明:
- 每张表仅支持添加一个校验规则。
- 数据过滤每次最多支持512张表,如超过512张表,请分多次进行规则校验。
- 过滤表达式不支持使用某种数据库引擎特有的package、函数、变量、常量等写法,须使用通用SQL标准。请直接输入SQL语句中WHERE之后的部分(不包含WHERE和分号,例如:sid > 3 and sname like "G %"),最多支持输入512个字符。
- 过滤条件填写的SQL语句中,关键字需要用反引号,datetime类型(包含日期和时间)和字符串类型需要用单引号,例如:`update` > '2022-07-13 00:00:00' and age >10、`update` ='abc' 。
- 使用timestamp类型做过滤条件时,字符类型的时间应填写为UTC时区的时间值,例如MySQL中对timestamp类型固定按UTC时区存储,需要使用UTC时区的时间值进行比较才能达到预期效果。
- 过滤条件不支持使用隐式转换规则,请填写正确的数据类型条件。例如Oracle的c列是字符类型varchar2,过滤条件应该设置为 c > '10',而不是c > 10。
- 不支持对LOB字段设置过滤条件,如CLOB、BLOB、BYTEA等大字段类型。
- 不支持库名、表名带有换行符的对象设置过滤规则。
- 不支持for update等行级锁的语法做过滤条件。
- 不支持对列名做函数操作,如果使用函数操作可能导致数据不一致。
- 建议不要对非精确类型字段设置过滤条件,如FLOAT、DECIMAL、DOUBLE等。
- 建议不要对带有特殊字符的字段设置过滤条件。
- 建议不要对过滤条件涉及的列做DDL操作,可能导致任务异常。
- 不建议使用非幂等表达式或函数作为数据加工条件,如SYSTIMESTAMP,SYSDATE等,因其每次调用返回的结果可能会有差异,导致达不到预期。
- 任务再编辑时,已经同步的表不支持修改过滤规则。
- Oracle为源同步链路进行数据过滤时,定长字符类型NCHAR、CHAR需要使用完整固定长度字符进行匹配。
- 校验通过后,单击“生成过滤规则”,即可在过滤规则表格中看到该规则。
- 检查无误后,单击“下一步”,进入下一步操作。
数据过滤高级设置
如果需要使用关联表查询,可以使用数据加工的高级设置功能。
- 在实时同步任务的“数据加工”页面选择“数据过滤”。
- 在“对象选择”区域选择需要加工的表对象。
- 在过滤条件区域,填写联表查询过滤条件,例如:id1 in (select id from db1.tab1 where id >=3 and id <10),单击“校验规则”。
说明:
- 每张表仅支持添加一个校验规则。
- 数据过滤每次最多支持512张表,如超过512张表,请分多次进行规则校验。
- 过滤表达式不支持使用某种数据库引擎特有的package、函数、变量、常量等写法,须使用通用SQL标准。请直接输入SQL语句中WHERE之后的部分(不包含WHERE和分号,例如:sid > 3 and sname like "G %"),最多支持输入512个字符。
- 过滤条件不支持使用隐式转换规则,请填写正确的数据类型条件。例如Oracle的c列是字符类型varchar2,过滤条件应该设置为 c > '10',而不是c > 10。
- 不支持对LOB字段设置过滤条件,如CLOB、BLOB、BYTEA等大字段类型。
- 不支持库名、表名带有换行符的对象设置过滤规则。
- 不支持for update等行级锁的语法做过滤条件。
- 不支持被关联表数据变动的场景,被关联表数据变动可能导致同步数据不一致。
- 建议不要对非精确类型字段设置过滤条件,如FLOAT、DECIMAL、DOUBLE等。
- 建议不要对带有特殊字符的字段设置过滤条件。
- 不建议使用非幂等表达式或函数作为数据加工条件,如SYSTIMESTAMP,SYSDATE等,因其每次调用返回的结果可能会有差异,导致达不到预期。
- Oracle为源同步链路进行数据过滤时,定长字符类型NCHAR、CHAR需要使用完整固定长度字符进行匹配。
- 校验通过后,单击“生成加工规则”,即可在加工规则表格中看到该规则。
- 在“高级设置”中设置关联表的“配置条件”和“配置规则”,辅助您进行数据过滤。
图4 高级设置
- 检查无误后,单击“下一步”,进入下一步操作。
列加工
- 在实时同步任务的“数据加工”页面选择“列加工”。
- 选择列加工方式。
说明:
目前仅MySQL->GaussDB、Oracle->GaussDB支持选择导入文件方式进行列加工,其他链路默认通过对象选择方式进行列加工。
- 对象选择方式:
- 在“对象选择”区域选择需要加工的对象。
图5 列加工
- 单击右侧已选对象的“编辑”。
- 在“编辑列”中,勾选需要映射的列,填写映射后的“新列名”。
图6 编辑列
说明:
- 列加工提供列级的查询、映射和过滤能力。
- 编辑列名后,目标数据库的列名为修改后的名称。
- 列映射名不能和原列名或已存在的映射名相同。
- 不支持库名、表名带有换行符的列进行映射。
- 任务再编辑时,已经同步的表不支持修改列信息。
- 只有勾选的列才会被同步,后续新增的列不在列加工范围内。
- 不支持对分区表的分区字段进行列映射和列过滤。
- 进行列过滤、列映射、附加列的表,增量阶段不支持对表中已过滤或映射的列进行DDL操作。
- 进行列过滤、列映射、附加列的表,增量阶段不支持对表做drop table然后create table的DDL操作。
- 当源数据库是MySQL或者TaurusDB时,不支持对存在函数索引的列进行列过滤、列映射。
- 当源数据库是MySQL或者TaurusDB时,配置列映射和列加工后,如果目标库的表结构中存在配置了列映射和列加工的列信息,DRS会删除掉这些列。如果这些列上存在业务数据,请谨慎使用列加工和列映射功能。
- 填写完成后单击“确定”。
- 在“对象选择”区域选择需要加工的对象。
- 文件导入方式:
- 在实时同步任务的“数据加工”页面选择“列加工 > 导入对象文件”。
- 单击“下载模板”。
图7 列加工
- 在下载的Excel模板中,按照模板要求,填写需要导入的对象信息。
- 单击“添加文件”,在对话框中选择编辑完成的模板。
- 单击“上传文件”。
- 对象选择方式:
- 检查无误后,单击“下一步”,进入下一步操作。
查看数据过滤
- 在“实时同步管理”页面任务列表中,选择需要查看数据加工的任务,单击任务名称。
- 选择“数据加工”页签,查看数据过滤记录。单击右上角的
,可刷新数据。
查看列加工
- 在“实时同步管理”页面任务列表中,选择需要查看的任务,单击任务名称。
- 选择“同步映射”页签,单击右上角选择列映射,查看列映射记录。单击右上角的
,可刷新数据。
图8 查看列映射