DRS预检查项一览表
DRS同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,DRS在任务正式启动前,会对任务源数据库、目标数据库中的参数、对象等信息进行自动化的扫描和检测,帮助您提高数据同步的成功率。
概览
根据同步任务的源数据库类型,查看预检查信息:
- 源数据库为MySQL的同步链路预检查一览表:
- 源数据库为PostgreSQL的同步链路预检查一览表:
- 源数据库为Oracle的同步链路预检查一览表:
- 源数据库为DDM的同步链路预检查一览表:
- 源数据库为Microsoft SQL Server的同步链路预检查一览表:
- 源数据库为MariaDB的同步链路预检查一览表:
- 源库为GaussDB的同步链路预检查一览表
MySQL->MySQL
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | |
| 目标数据库权限 | ||
| 版本类 | 源数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | 
| 目标数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | |
| 同步版本检查 | 仅支持目标数据库版本等于或高于源数据库版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。 | |
| 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | ||
| 最大允许传输包的大小 | DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | |
| DRS在同步数据量大或同步大字段情况下,目标数据库的max_allowed_packet参数值过小导致目标库数据无法写入造成全量同步失败。 | ||
| sql_mode取值检查 | 同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。 | |
| 增量同步类 | 索引列长度检查 | 源数据库索引列长度必须符合要求。 | 
| Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | |
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| Binlog保留时长 | 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。 
 | |
| server_id值设置 | 增量同步时,必须设置MySQL源数据库的server_id。 
 | |
| 表字段检查 | 同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。 | |
| 附加列检查 | 单增量同步任务中如果目标数据库不存在新增附加列,会导致任务失败。 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例实例状态必须正常。 | |
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 字符序 | 目标库和源库的collation_server需要一致。 | |
| 时钟 | 目标库和源库的时钟需要一致。 | |
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| InnoDB检查模式 | 目标库和源库innodb_strict_mode需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| SQL模式 | 目标库和源库sql_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 关联对象检查 | 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。 | |
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 同名检查 | 除了MySQL系统数据库之外,当目标库和源库同名时,目标数据库中若存在与源库同名的表,则表结构必须与源库保持一致。 | |
| 库表名规范检查 | 
 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
MySQL->PostgreSQL
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | |
| 目标数据库权限 | RDS for PostgreSQL实例的账号默认已具有权限。 | |
| 版本类 | 源数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | 
| 目标数据库版本 | 支持9.5、9.6、10、11、12、13、14、15、16版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 最大允许传输包的大小 | DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| server_id值设置 | 增量同步时,必须设置MySQL源数据库的server_id。 
 | |
| 表字段检查 | 
 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例实例状态必须正常。 | |
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 表结构检查 | 目标库和源库的表结构需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 有主键表正确性检查 | 不建议在数据库中使用非精确数值类型做主键,该特性影响 DRS 增量场景下对 UPDATE、DELETE语句的同步,导致任务失败。 | |
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 同名检查 | 除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。 | |
| 库表名规范检查 | 源数据库中的库名和表名不能包含:'<`>/\"以及非ASCII字符。 | |
| 对象名长度检查 | 目标数据库对象名最大支持63个字符。 | |
| 源数据库检查 | 预检查阶段进行同步对象检查时,源数据库连接正常。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
MySQL->GaussDB集中式版
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 | 
| 目标数据库权限 | 
 | |
| 版本类 | 源数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | 
| 目标数据库版本 | 支持1.0.0及以上版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 最大允许传输包的大小 | DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| Binlog保留时长 | 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。 
 | |
| server_id值设置 | 增量同步时,必须设置MySQL源数据库的server_id。 
 | |
| 表字段检查 | 不支持的数据类型有:xml、包含bit类型的json、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon。 | |
| 数据库兼容类型检查 | 目标数据库创建时指定兼容模式,并与源数据库保持兼容。 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例的状态必须正常。 | |
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 表结构检查 | 目标库和源库的表结构需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 同名检查 | 除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。 | |
| 库表名规范检查 | 
 | |
| 对象名长度检查 | 目标数据库对象名最大支持63个字符。 | |
| 源数据库检查 | 选择的同步对象在源数据库中必须存在。 | |
| 目标数据库检查 | 任务配置的映射数据库必须在目标库已经存在。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
MySQL->GaussDB(DWS)
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 | 
| 目标数据库权限 | 目标数据库账号必须具有每张表的如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。 | |
| 版本类 | 源数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | 
| 目标数据库版本 | 支持8.1.3、8.2.0版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 最大允许传输包的大小 | DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| Binlog保留时长 | 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。 
 | |
| server_id值设置 | 增量同步时,必须设置MySQL源数据库的server_id。 
 | |
| 表字段检查 | 不支持的数据类型有:xml、包含bit类型的json、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon。 | |
| 同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。 | ||
| 数据库兼容类型检查 | 目标数据库创建时指定兼容模式,并与源数据库保持兼容。 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例的状态必须正常。 | |
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 表结构检查 | 目标库和源库的表结构需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 同名检查 | 除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。 | |
| 库表名规范检查 | 
 | |
| 对象名长度检查 | 目标数据库对象名最大支持63个字符。 | |
| 源数据库检查 | 选择的同步对象在源数据库中必须存在。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
MySQL->TaurusDB
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | 需要具备如下权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 | 
| 目标数据库权限 | ||
| 版本类 | 源数据库版本 | 支持5.5、5.6、5.7、8.0版本。 | 
| 目标数据库版本 | 支持8.0版本。 | |
| 同步版本检查 | 仅支持目标数据库版本等于或高于源数据库版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。 | |
| 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | ||
| 最大允许传输包的大小 | DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | |
| DRS在同步数据量大或同步大字段情况下,目标数据库的max_allowed_packet参数值过小导致目标库数据无法写入造成全量同步失败。 | ||
| sql_mode取值检查 | 同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。 | |
| 增量同步类 | 索引列长度检查 | 源数据库索引列长度必须符合要求。 | 
| Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | |
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| Binlog保留时长 | 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。 
 | |
| server_id值设置 | 增量同步时,必须设置MySQL源数据库的server_id。 
 | |
| 表字段检查 | 同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。 | |
| 附加列检查 | 对目标库中缺少附加列的库表添加对应列。 | |
| 目标数据库检查 | 状态检查 | 目标数据库实例的状态必须正常。 | 
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 字符序 | 目标库和源库的collation_server需要一致。 | |
| 时钟 | 目标库和源库的时钟需要一致。 | |
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| InnoDB检查模式 | 目标库和源库innodb_strict_mode需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| SQL模式 | 目标库和源库sql_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 关联对象检查 | 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。 | |
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 同名检查 | 除了MySQL系统数据库之外,当目标库和源库同名时,目标数据库中如果存在与源库同名的表,则表结构必须与源库保持一致。 | |
| 库表名规范检查 | 
 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
PostgreSQL->PostgreSQL
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | |
| 目标数据库权限 | 
 | |
| 版本类 | 源数据库版本 | 支持9.4、9.5、9.6、10、11、12、13、14、15、16版本。 | 
| 目标数据库版本 | 支持9.5、9.6、10、11、12、13、14、15、16版本。 | |
| 同步版本检查 | 仅支持目标数据库版本等于或高于源数据库版本。 | |
| 参数类 | 性能参数 | 目标数据库的BLOCK_SIZE参数值必须大于或等于源数据库的BLOCK_SIZE参数值。 | 
| 源数据库和目标数据库的参数PASSWORD_ENCRYPTION需要一致。 | ||
| 源数据库max_replication_slots参数值必须大于当前已使用的复制槽数量。 | ||
| 源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。 | ||
| 源数据库中无主键表的replica identity属性必须为full。 | ||
| 源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。 | ||
| 源数据库的wal_level必须配置为logical。 | ||
| 增量同步类 | 表字段检查 | 
 | 
| 无日志表检查 | 库级同步时,不支持同步无日志表(UNLOGGED TABLE)的DML。 | |
| 参数检查 | 如果做增量同步,且同步对象中包含外键、触发器或事件触发器,则目标数据库的session_replication_role参数必须设置为replica,同步结束后,此参数需改为origin。 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例的状态必须正常。 | |
| 区域类型及排序规则检查 | 待同步数据库的lc_ctype或lc_collate在目标数据库不支持。 | |
| 货币金额格式检查 | 源数据库和目标数据库的货币金额格式需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 所选表不能包含延迟约束的表。 | ||
| 同步对象依赖和关联的对象需要一起同步。 | ||
| 库表列名规范检查 | 
 | |
| 源数据库检查 | 预检查阶段进行同步对象检查时,源数据库连接正常。 | |
| 
 | ||
| 任务启动前请确保源数据库中不存在长时间未提交的事务。 | ||
| 源数据库的SSL状态正常。 | ||
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
Oracle->MySQL
Oracle->TaurusDB
Oracle->GaussDB集中式版
Oracle->GaussDB分布式版
Oracle->DDM
Oracle->PostgreSQL
DDM->MySQL
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | 
 | 
| 目标数据库权限 | 需要具备如下权限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE。 RDS for MySQL实例的root账户默认已具备上述权限。 | |
| 参数类 | GTID状态 | 源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源物理分片数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源物理分片数据库的Binlog格式必须为行格式。 | |
| server_id值设置 | 增量同步时,必须设置源物理分片数据库的server_id。 
 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 库表名规范检查 | 源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
DDM->GaussDB(DWS)
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | 
 | 
| 目标数据库权限 | 提供的目标数据库账号必须具有每张表的如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。 | |
| 参数类 | GTID状态 | 源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源物理分片数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源物理分片数据库的Binlog格式必须为行格式。 | |
| server_id值设置 | 增量同步时,必须设置源物理分片数据库的server_id。 
 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 库表名规范检查 | 源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
DDM->DDM
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | 
 | 
| 目标数据库权限 | 需要具备如下基本权限:CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT, 同时必须具备扩展权限:全表SELECT权限。目标中间件账户必须具备对所同步数据库的权限。 | |
| 参数类 | GTID状态 | 源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源物理分片数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源物理分片数据库的Binlog格式必须为行格式。 | |
| server_id值设置 | 增量同步时,必须设置源物理分片数据库的server_id。 
 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 库表名规范检查 | 源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
MongoDB->DDS
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。 | 
| 目标数据库权限 | 连接目标数据库的用户需要有admin库的dbAdminAnyDatabase权限,有目标数据库的readWrite权限。 | |
| 版本类 | 源数据库版本 | 
 | 
| 目标数据库版本 | DDS(3.4、4.0、4.2、4.4版本) | |
| 同步版本检查 | 仅支持目标数据库版本等于或高于源数据库版本。 | |
| 目标数据库检查 | 磁盘空间检查 | 目标数据库实例必须有足够的磁盘空间。 | 
| 状态检查 | 目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。 | |
| chunk数目检查 | 检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 对象依赖关系检查 | 在进行用户迁移时,如果所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。 | |
| 关联对象检查 | 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用集合、视图引用视图。 | |
| 库表名规范检查 | 
 | |
| 源数据库检查 | 预检查阶段进行同步对象检查时,源数据库连接正常。 | |
| 对于在源数据库已经存在TTL索引的集合,或者在增量同步期间在源库数据创建了TTL索引的集合,由于源数据库和目标库数据库时区,时钟的不一致,不能保证同步完成之后数据的一致性。 | ||
| 源数据库实例不允许为空。 | ||
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
TaurusDB->TaurusDB
| 分类 | 预检查项 | 检查项详情 | 
|---|---|---|
| 权限类 | 源数据库权限 | SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 | 
| 目标数据库权限 | SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES,TaurusDB实例的root账户默认已具备上述权限。 当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 | |
| 版本类 | 源数据库版本 | 支持8.0版本。 | 
| 目标数据库版本 | 支持8.0版本。 | |
| 同步版本检查 | 仅支持目标数据库版本等于或高于源数据库版本。 | |
| 参数类 | GTID状态 | 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 | 
| 性能参数 | 源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。 | |
| 源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。 | ||
| 最大允许传输包的大小 | DRS同步时会有大量数据写入目标库,目标库max_allowed_packet参数过小会导致无法写入,建议将目标库max_allowed_packet参数值设置为大于100MB。 | |
| DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。 | ||
| sql_mode取值检查 | 同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。 | |
| 增量同步类 | Binlog开启 | 增量同步时,源数据库的Binlog日志必须打开。 | 
| Binlog格式 | 源数据库的Binlog格式必须为行格式。 | |
| Binlog保留时长 | 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。 | |
| server_id值设置 | 增量同步时,必须设置源数据库的server_id,server_id的取值范围在1-4294967296之间。 | |
| 表字段检查 | 同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。 | |
| 索引列长度检查 | 源数据库索引列长度必须符合要求。 | |
| 目标数据库检查 | 状态检查 | 目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。 | 
| 一致性检查 | 字符集 | 目标库和源库的字符集需要一致。 | 
| 字符序 | 目标库和源库的collation_server需要一致。 | |
| 时钟 | 目标库和源库的时钟需要一致。 | |
| 时区 | 目标库和源库的time_zone需要一致。 | |
| 大小写敏感 | 目标库和源库的lower_case_table_names参数设置需要一致。 | |
| group_concat函数计算结果字符的最大长度 | 目标库和源库的group_concat_max_len参数需要一致。 | |
| InnoDB检查模式 | 目标库和源库innodb_strict_mode需要一致。 | |
| SQL模式 | 目标库和源库sql_mode需要一致。 | |
| 数据块加密参数 | 目标库和源库block_encryption_mode需要一致。 | |
| 同步对象类 | 选择对象检查 | 
 | 
| 
 | ||
| 无主键表检查 | 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 | |
| 关联对象检查 | 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。 | |
| 外键引用操作检查 | 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 | |
| 加密表检查 | 源数据库是否存在加密表。 | |
| 同名检查 | 除了系统数据库之外,当目标数据库和源数据库同名时,目标数据库中如果存在与源数据库同名的表,则表结构必须与源库保持一致。 | |
| 库表名规范检查 | 
 | |
| 源数据库检查 | 预检查阶段进行同步对象检查时,源数据库连接正常。 | |
| SSL连接检查 | SSL安全连接检查 | 选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。 | 
| 网络情况 | 网络检查 | 目标数据库的IP,端口,用户名和密码连接成功。 | 
| 源数据库的IP,端口,用户名和密码连接成功。 | 
 
    