源库为MySQL的同步方案概览
根据如下同步方案,查看同步任务的注意事项及限制:
说明 DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到如下目标数据库:
MySQL(RDS MySQL、自建MySQL)
PolarDB MySQL版
云原生数据仓库AnalyticDB MySQL 2.0
云原生数据仓库AnalyticDB MySQL 3.0
云原生数据仓库AnalyticDB PostgreSQL
Elasticsearch
Tablestore
PolarDB-X 2.0
Oracle
PostgreSQL
MySQL间的同步
如果同步的目标数据库类型为MySQL,如RDS MySQL、自建MySQL,具体注意事项及限制如下:
MySQL间单向同步
类型 | 说明 |
源库限制 | |
其他限制 | 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。 若您将列名仅大小写不同的字段写入到目标MySQL数据库的同一个表中,可能会因为MySQL数据库列名大小写不敏感,导致同步结果不符合预期。 在数据同步完成后,建议使用analyze table <表名> 命令检查数据是否已写入目标表。例如,在MySQL触发HA切换机制后,可能会导致数据只写到了内存,从而造成数据丢失。
|
其他注意事项 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL间双向同步
类型 | 说明 |
源和目标库限制 | |
其他限制 | 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。 双向同步任务时,DTS会在源和目标库中建立数据库dts,以避免数据循环同步,任务运行期间,请勿修改该库。dts库可能会影响MySQL正常的主备同步,建议检查备库中是否存在dts库及相关表。若不存在,您需按照主库中dts的库表结构手动在备库中创建。 如双向同步任务的源实例或目标实例位于海外地域,则仅支持同地域的双向同步,不支持跨地域的双向同步。例如,支持日本地域间的双向同步,不支持日本地域与法兰克福地域间的双向同步。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到目标数据库。 双向同步实例包含正向和反向同步任务,在配置或重置双向同步实例时,若其中一个任务的目标对象是另一个任务待同步的对象: 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。 若您将列名仅大小写不同的字段写入到目标MySQL数据库的同一个表中,可能会因为MySQL数据库列名大小写不敏感,导致同步结果不符合预期。 在数据同步完成后,建议使用analyze table <表名> 命令检查数据是否已写入目标表。例如,在MySQL触发HA切换机制后,可能会导致数据只写到了内存,从而造成数据丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。 若源自建MySQL同时为双向同步任务和其他任务的源库,您需要在源库/etc/my.cnf 中增加一行log_slave_updates=1 ,然后重启数据库。否则会导致反向任务的数据变更不会被记录到源自建MySQL的Binlog,从而导致其他任务数据不一致。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至PolarDB MySQL版
MySQL单向同步至PolarDB MySQL版
类型 | 说明 |
源库限制 | |
其他限制 | 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 暂不支持调整全量迁移速率。 不支持将datetime类型的数据转为varchar。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL双向同步至PolarDB MySQL版
类型 | 说明 |
源和目标库限制 | |
其他限制 | 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。 双向同步任务时,DTS会在目标库中建立数据库dts,以避免数据循环同步,任务运行期间,请勿修改该库。 如双向同步任务的源实例或目标实例位于海外地域,则仅支持同地域的双向同步,不支持跨地域的双向同步。例如,支持日本地域间的双向同步,不支持日本地域与法兰克福地域间的双向同步。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到目标数据库。 双向同步实例包含正向和反向同步任务,在配置或重置双向同步实例时,若其中一个任务的目标对象是另一个任务待同步的对象: 暂不支持调整全量迁移速率。 不支持将datetime类型的数据转为varchar。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至云原生数据仓库AnalyticDB MySQL 2.0
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。 Binlog日志: 同步期间,请勿执行修改主键和添加注释的DDL操作(如ALTER TABLE table_name COMMENT='表的注释'; ),否则数据同步过程中会导致执行该DDL失败。
|
其他限制 | 暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。 如果同步的目标为云原生数据仓库AnalyticDB MySQL版(2.0),那么源实例待同步的对象不能包含云原生数据仓库AnalyticDB MySQL版(2.0)保留的库名和列名,否则将造成数据同步失败或DDL操作同步失败。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 对于表级别的数据同步,如果除DTS以外的数据没有写入目标库云原生数据仓库AnalyticDB MySQL版,您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至云原生数据仓库AnalyticDB MySQL 3.0
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。 Binlog日志: 同步期间,请勿执行修改主键和添加注释的DDL操作(如ALTER TABLE table_name COMMENT='表的注释'; ),否则数据同步过程中会导致执行该DDL失败。
|
其他限制 | 暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。 由于云原生数据仓库AnalyticDB MySQL版(3.0)本身的使用限制,当云原生数据仓库AnalyticDB MySQL版(3.0)集群中的节点磁盘空间使用量超过80%,会导致DTS任务异常,产生延迟。请提前根据待同步的对象预估所需空间,确保目标集群具备充足的存储空间。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 对于表级别的数据同步,如果除DTS以外的数据没有写入目标库云原生数据仓库AnalyticDB MySQL版(3.0),您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至云原生数据仓库AnalyticDB PostgreSQL
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。 Binlog日志: 同步期间,请勿执行修改主键和添加注释的DDL操作(如ALTER TABLE table_name COMMENT='表的注释'; ),否则数据同步过程中会导致执行该DDL失败。
|
其他限制 | 同步对象要求: 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 目标表暂不支持AO表。 若使用列映射时为非全表同步或者源与目标表结构不一致,则目标端比源端缺少的列的数据将会丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至阿里云流式数据服务DataHub
类型 | 说明 |
源库限制 | |
其他限制 | 不支持全量数据初始化,即DTS不会将源RDS实例中同步对象的存量数据同步至目标DataHub实例。 目标DataHub中单个String字段的长度最大支持2 MB。 若源端待同步的表中有record_id字段,建议使用字段映射功能设置该字段在目标实例中的名称,否则实例将会报错。设置方式,请参见库表列名映射。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至Elasticsearch
类型 | 说明 |
源库限制 | |
其他限制 | 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 如果源库中待同步的表需要执行增加列的操作,您只需先在Elasticsearch实例中修改对应表的mapping,然后在源MySQL数据库中执行相应的DDL操作,最后暂停并启动DTS同步实例。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若MySQL实例同步至Elasticsearch实例的数据包含空字符,则会转换成LONG类型的数据写入Elasticsearch实例,从而导致任务失败。 若MySQL实例同步至Elasticsearch实例的数据包含位置信息,且经纬度反向存储,数据写入Elasticsearch实例时会报错。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至MaxCompute
类型 | 说明 |
源库限制 | |
其他限制 | 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 由于MaxCompute不支持主键约束,当DTS在同步数据时因网络等原因触发重传,可能会导致MaxCompute中出现重复记录。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至ClickHouse集群
类型 | 说明 |
源库限制 | |
注意事项 | 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 待同步数据库、表和列的名称符合云数据库ClickHouse的命名规范,相关规范,请参见对象命名规范限制。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至Tablestore
类型 | 说明 |
源库限制 | |
其他限制 | 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 待同步的表或列名称符合Tablestore实例的命名规范:
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至阿里云消息队列Kafka版、自建Kafka集群
类型 | 说明 |
源库的环境要求 | |
注意事项 | 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 在同步期间,若目标Kafka发生了扩容或缩容,您需要重启实例。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至PolarDB-X 2.0
类型 | 说明 |
源库的环境要求 | |
注意事项 | 暂不支持结构初始化,在配置同步作业前,您需要在目标实例中创建对应的库和表。 同步对象要求: 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至Oracle
类型 | 说明 |
源库限制 | |
其他限制 | |
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|
MySQL同步至PostgreSQL
类型 | 说明 |
源库限制 | |
其他限制 | 同步对象要求: 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。 您可以使用数据管理DMS(Data Management)来执行在线DDL变更,请参见不锁表结构变更。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
|
特殊情况 | 当源库为自建MySQL时: 在同步时,如果源库进行主备切换,将会导致同步任务失败。 由于DTS的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行DML操作可能导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个DML操作来更新延迟信息。
说明 如果同步对象选择为整库,您还可以创建心跳表,心跳表每秒定期更新或者写入数据。 DTS会在源库定时执行CREATE DATABASE IF NOT EXISTS `test`命令以推进Binlog位点。
当源库为RDS MySQL时: 不支持不记录事务日志的RDS MySQL只读实例(如RDS MySQL 5.6版本)作为源实例。
|