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,端口,用户名和密码连接成功。 |