/ 数据复制服务 drs/ 实时迁移/ / drs预检查项一览表
更新时间:2025-01-26 gmt 08:00

drs预检查项一览表-九游平台

drs迁移过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保迁移各个阶段的平顺,drs在任务正式启动前,会对任务源数据库、目标数据库中的参数、对象等信息进行自动化的扫描和检测,帮助您提高数据迁移的成功率,常见的预检查项清单如下所示。

概览

根据迁移任务的源数据库类型,查看预检查信息:

mysql->mysql

表1 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:

    select、show view、event。

  • 全量 增量迁移需要具备如下最小权限:

    select、show view、event、lock tables、replication slave、replication client。

  • 用户迁移时,当源数据库为非阿里云数据库时,账户需要有mysql.user的select权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的select权限。

详见。

目标数据库权限

  • 提供的目标数据库账号必须拥有如下权限:

    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权限。

详见。

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见

目标数据库版本

支持5.5、5.6、5.7、8.0版本

详见

迁移版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见。

参数类

gtid状态

源数据库gtid状态建议为开启状态,源数据库实例没有开启gtid的情况下不支持主备倒换,drs任务会因为位点不续接而中断导致无法恢复。

详见。

性能参数

源数据库建议开启skip-name-resolve,减少连接超时的可能性。

-

源数据库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日志格式必须为row格式。

详见。

binlog保留时长

在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天,设置为0,可能会导致迁移失败。

  • 源数据库为自建mysql时,通过设置expire_logs_days参数设置binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为rds for mysql时,设置binlog保留时间可参考设置rds for mysql本地binlog日志清理

详见。

server_id值设置

增量迁移时,必须设置mysql源数据库的server_id。

  • 如果源数据库版本小于或等于mysql5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于mysql5.7,server_id的取值范围在1-4294967296之间。

详见。

session变量设置

增量迁移时,如果设置session变量character_set_client为binary,可能导致乱码。

-

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

状态检查

目标数据库实例实例状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见。

字符序

目标库和源库的collation_server需要一致。

详见。

时区

目标库和源库的time_zone需要一致。

详见。

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见。

事务隔离级别

目标库和源库事务隔离级别需要一致。

详见。

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致

详见。

server_uuid参数

目标库和源库server_uuid参数不能相同。

详见。

innodb检查模式

目标库和源库innodb_strict_mode需要一致。

详见。

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

sql模式

目标库和源库sql_mode需要一致。

详见。

迁移对象类

选择对象检查

  • 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(trigger)和事件(event)的迁移。
  • 仅支持myisam和innodb表的迁移。
  • 不支持系统库的迁移以及事件状态的迁移。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见。

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

详见。

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见。

同名检查

除了mysql系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见。

表名规范检查

  • 源数据库中的库名、表名、视图名不能包含:'<>`/\"以及非ascii字符。
  • 源数据库中的库名不允许以ib_logfile开头,不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

加密表检查

当源库存在加密的表,需要确认目标库是否支持。如果目标库不支持,存在任务失败等风险。

详见。

mysql->ddm

表2 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:

    select、show view、event。

  • 全量 增量迁移需要具备如下最小权限:

    select、show view、event、lock tables、replication slave、replication client。

详见。

目标数据库权限

  • 目标中间件账户需要具备以下基本权限:create、drop、alter、 index、 insert、delete、 update、 select, 同时必须具备扩展权限:全表select权限。
  • 目标中间件账户必须具备对所迁移数据库的权限。

详见。

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见

目标数据库版本

ddm实例版本。

详见

参数类

gtid状态

源数据库gtid状态建议为开启状态,源数据库实例没有开启gtid的情况下不支持主备倒换,drs任务会因为位点不续接而中断导致无法恢复。

详见。

性能参数

源数据库建议开启skip-name-resolve,减少连接超时的可能性。

-

源数据库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日志格式必须为row格式。

详见。

binlog保留时长

在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天,设置为0,可能会导致迁移失败。

  • 源数据库为自建mysql时,通过设置expire_logs_days参数设置binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为rds for mysql时,设置binlog保留时间可参考设置rds for mysql本地binlog日志清理

详见。

server_id值设置

增量迁移时,必须设置mysql源数据库的server_id。

  • 如果源数据库版本小于或等于mysql5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于mysql5.7,server_id的取值范围在1-4294967296之间。

详见。

session变量设置

增量迁移时,如果设置session变量character_set_client为binary,可能导致乱码。

-

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

状态检查

目标数据库实例实例状态必须正常。

-

参数auto_increment校验

目标数据库存在表的auto_increment值至少不能小于源库表的auto_increment值。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见。

字符序

目标库和源库的collation_server需要一致。

详见。

时区

目标库和源库的time_zone需要一致。

详见。

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见。

事务隔离级别

目标库和源库事务隔离级别需要一致。

详见。

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致

详见。

server_uuid参数

目标库和源库server_uuid参数不能相同。

详见。

innodb检查模式

目标库和源库innodb_strict_mode需要一致。

详见。

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

sql模式

目标库和源库sql_mode需要一致。

详见。

表结构

  • 用户需要在目标库根据源端逻辑库的表结构,自行在目标库创建对应的表结构及索引。未在目标库创建的对象,视为用户不选择这个对象进行迁移。
  • 用户在目标库创建的表结构, 必须与源库的表结构完全一致。

-

迁移对象类

选择对象检查

  • 目前只支持迁移源库的数据,不支持迁移源库表结构及其他数据库对象。
  • 仅支持myisam和innodb表的迁移。
  • 不支持系统库的迁移以及事件状态的迁移。
  • 源数据库为mysql 8.0版本时,不支持迁移带有函数索引的表。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见。

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

详见。

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见。

表名规范检查

  • 源数据库中的库名、表名不能包含:'<>`/\"以及非ascii字符。
  • 源数据库中的库名不允许以ib_logfile开头,不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

加密表检查

当源库存在加密的表,需要确认目标库是否支持。如果目标库不支持,存在任务失败等风险。

详见。

mysql->taurusdb

表3 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:

    select、show view、event。

  • 全量 增量迁移需要具备如下最小权限:

    select、show view、event、lock tables、replication slave、replication client。

  • 用户迁移时,当源数据库为非阿里云数据库时,账户需要有mysql.user的select权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的select权限。

详见。

目标数据库权限

  • 提供的目标数据库账号必须拥有如下权限:

    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权限。

详见。

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见

目标数据库版本

支持taurusdb 8.0版本

详见

迁移版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见。

参数类

gtid状态

源数据库gtid状态建议为开启状态,源数据库实例没有开启gtid的情况下不支持主备倒换,drs任务会因为位点不续接而中断导致无法恢复。

详见。

性能参数

源数据库建议开启skip-name-resolve,减少连接超时的可能性。

-

源数据库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日志格式必须为row格式。

详见。

binlog保留时长

在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天,设置为0,可能会导致迁移失败。

  • 源数据库为自建mysql时,通过设置expire_logs_days参数设置binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为rds for mysql时,设置binlog保留时间可参考设置rds for mysql本地binlog日志清理

详见。

server_id值设置

增量迁移时,必须设置mysql源数据库的server_id。

  • 如果源数据库版本小于或等于mysql5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于mysql5.7,server_id的取值范围在1-4294967296之间。

详见。

session变量设置

增量迁移时,如果设置session变量character_set_client为binary,可能导致乱码。

-

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

状态检查

目标数据库实例实例状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见。

字符序

目标库和源库的collation_server需要一致。

详见。

时区

目标库和源库的time_zone需要一致。

详见。

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见。

事务隔离级别

目标库和源库事务隔离级别需要一致。

详见。

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致

详见。

server_uuid参数

目标库和源库server_uuid参数不能相同。

详见。

innodb检查模式

目标库和源库innodb_strict_mode需要一致。

详见。

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

sql模式

目标库和源库sql_mode需要一致。

详见。

迁移对象类

选择对象检查

  • 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(trigger)和事件(event)的迁移。
  • 仅支持myisam和innodb表的迁移。
  • 不支持系统库的迁移以及事件状态的迁移。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见。

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

详见。

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见。

同名检查

除了mysql系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见。

表名规范检查

  • 源数据库中的库名、表名、视图名不能包含:'<>`/\"以及非ascii字符。
  • 源数据库中的库名不允许以ib_logfile开头,不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

加密表检查

当源库存在加密的表,需要确认目标库是否支持。如果目标库不支持,存在任务失败等风险。

详见。

mysql分库分表->ddm

表4 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:

    select、show view、event。

  • 全量 增量迁移需要具备如下最小权限:

    select、show view、event、lock tables、replication slave、replication client。

详见。

目标数据库权限

  • 目标中间件账户需要具备以下基本权限:create、drop、alter、 index、 insert、delete、 update、 select, 同时必须具备扩展权限:全表select权限。
  • 目标中间件账户必须具备对所迁移数据库的权限。

详见。

版本类

源数据库版本

ddm实例版本。

详见

目标数据库版本

ddm实例版本。

详见

参数类

gtid状态

源数据库gtid状态建议为开启状态,源数据库实例没有开启gtid的情况下不支持主备倒换,drs任务会因为位点不续接而中断导致无法恢复。

详见。

性能参数

源数据库建议开启skip-name-resolve,减少连接超时的可能性。

-

源数据库log_slave_updates参数需设置为开启状态,否则会导致迁移失败。

详见。

源数据库的binlog_row_image参数需设置为full,否则会导致迁移失败。

详见。

增量迁移类

binlog开启

增量迁移时,源数据库的binlog日志必须打开,且binlog日志格式必须为row格式。

详见。

binlog保留时长

在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天,设置为0,可能会导致迁移失败。

  • 源数据库为自建mysql时,通过设置expire_logs_days参数设置binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为rds for mysql时,设置binlog保留时间可参考设置rds for mysql本地binlog日志清理

详见。

server_id值设置

增量迁移时,必须设置mysql源数据库的server_id。

  • 如果源数据库版本小于或等于mysql5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于mysql5.7,server_id的取值范围在1-4294967296之间。

详见。

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

状态检查

目标数据库实例实例状态必须正常。

-

参数auto_increment校验

目标数据库存在表的auto_increment值至少不能小于源库表的auto_increment值。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见。

字符序

目标库和源库的collation_server需要一致。

详见。

表结构

  • 用户需要在目标库根据源端逻辑库的表结构,自行在目标库创建对应的表结构及索引。未在目标库创建的对象,视为用户不选择这个对象进行迁移。
  • 用户在目标库创建的表结构, 必须与源库的表结构完全一致。

-

迁移对象类

选择对象检查

  • 目前只支持迁移源库的数据,不支持迁移源库表结构及其他数据库对象。
  • 仅支持myisam和innodb表的迁移。
  • 不支持系统库的迁移以及事件状态的迁移。
  • 源数据库为mysql 8.0版本时,不支持迁移带有函数索引的表。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见。

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

详见。

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见。

目标库对象检查

目标库若已存在数据,drs在增量迁移过程中源库相同主键的数据将覆盖目标库已存在的数据,因此在迁移前需要用户自行判断数据是否需要清除,建议用户在迁移前自行清空目标库。

-

表名规范检查

  • 源数据库中的库名、表名不能包含:'<>`/\"以及非ascii字符。
  • 源数据库中的库名不允许以ib_logfile开头,不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

mongodb->dds

表5 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 集群:连接源数据库的用户需要有admin库的readanydatabase权限,有config库的read权限。
    • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。
  • 全量 增量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 集群:连接源数据库mongos节点的用户需要有admin库的readanydatabase权限,有config库的read权限,连接源数据库分片节点的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。

详见。

目标数据库权限

连接目标数据库的用户需要有admin库的dbadminanydatabase权限,有目标数据库的readwrite权限。

对于目标数据库是集群的实例,迁移账号还要有admin库的clustermanager权限。

详见。

版本类

源数据库版本

支持3.2、3.4、3.6、4.0、4.2、4.4版本

详见

目标数据库版本

支持3.4、4.0、4.2、4.4版本

详见

迁移版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见。

增量迁移类

oplog开启

增量迁移时,源数据库的oplog日志必须打开。

-

oplog保留时长

在磁盘空间允许的情况下,建议源数据库oplog保存时间越长越好,建议为3天。

-

balancer关闭

如果迁移任务是源数据集群的增量,则源数据必须关闭balancer。

详见。

孤儿文档检查

如果是源数据为集群的全量 增量迁移任务,则源数据库必须关闭balancer并清理孤儿文档。

详见。

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

集群到集群的全量迁移,如果源数据库的集群没有开启分片,则需要保证目标数据库主shard节点的磁盘空间大于源数据库数据大小。

状态检查

目标数据库实例实例状态必须正常。

-

chunk数目检查

检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。

详见

一致性检查

固定集合检查

检查源库和目标库数据库固定集合是否一致,若不一致,则导致迁移失败。

详见。

迁移对象类

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

-

角色依赖检查

在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。

详见。

账号依赖检查

在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。

详见。

同名检查

目标数据库不能存在与源数据库同名的数据库下的同名非空集合。

详见。

目标数据库不能存在和源数据库同名数据库下的同名视图。

详见。

名称检查

源数据库的库名不能包含/\."$和空格,集合名和视图名中不能包含$字符或以system.开头。

-

复合哈希索引检查

  • 源库为4.4版本集群时,不支持复合哈希索引,不支持复合哈希分片键。
  • 源库为4.4版本副本集时,不支持复合哈希索引。

详见。

复合哈希分片键检查

详见。

索引检查

源库若存在没有索引(_id)的集合,可能导致迁移失败。

详见。

ttl索引检查

ttl索引会因为源数据库和目标库数据的时区,时钟不一致导致迁移后数据不一致。

详见

索引个数检查

索引的个数会影响整个迁移的时间,检查源数据库是否存在索引个数大于10的集合,若存在会影响迁移速度。

详见。

mongodb->geminidb mongo

表6 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 集群:连接源数据库的用户需要有admin库的readanydatabase权限,有config库的read权限。
    • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。
  • 全量 增量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 集群:连接源数据库mongos节点的用户需要有admin库的readanydatabase权限,有config库的read权限,连接源数据库分片节点的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。

详见。

目标数据库权限

连接目标数据库的用户需要有admin库的dbadminanydatabase权限,有目标数据库的readwrite权限。

对于目标数据库是集群的实例,迁移账号还要有admin库的clustermanager权限。

详见。

版本类

源数据库版本

支持3.2、3.4、4.0、4.2版本

详见

目标数据库版本

支持3.4、4.0版本

详见

迁移版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见。

增量迁移类

oplog开启

增量迁移时,源数据库的oplog日志必须打开。

-

oplog保留时长

在磁盘空间允许的情况下,建议源数据库oplog保存时间越长越好,建议为3天。

-

balancer关闭

如果迁移任务是源数据集群的增量,则源数据必须关闭balancer。

详见。

孤儿文档检查

如果是源数据为集群的全量 增量迁移任务,则源数据库必须关闭balancer并清理孤儿文档。

详见。

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

集群到集群的全量迁移,如果源数据库的集群没有开启分片,则需要保证目标数据库主shard节点的磁盘空间大于源数据库数据大小。

状态检查

目标数据库实例实例状态必须正常。

-

chunk数目检查

检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。

详见

一致性检查

固定集合检查

检查源库和目标库数据库固定集合是否一致,若不一致,则导致迁移失败。

详见。

迁移对象类

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

-

角色依赖检查

在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。

详见。

账号依赖检查

在进行用户迁移时,若所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。

详见。

同名检查

目标数据库不能存在与源数据库同名的数据库下的同名非空集合。

详见。

目标数据库不能存在和源数据库同名数据库下的同名视图。

详见。

名称检查

源数据库的库名不能包含/\."$和空格,集合名和视图名中不能包含$字符或以system.开头。

-

索引检查

源库若存在没有索引(_id)的集合,可能导致迁移失败。

详见。

ttl索引检查

ttl索引会因为源数据库和目标库数据的时区,时钟不一致导致迁移后数据不一致。

详见

索引个数检查

索引的个数会影响整个迁移的时间,检查源数据库是否存在索引个数大于10的集合,若存在会影响迁移速度。

详见。

dds->mongodb

表7 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限。
    • 集群:连接源数据库的用户需要有admin库的readanydatabase权限,有config库的read权限。
  • 全量 增量迁移需要具备如下最小权限:
    • 副本集:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 单节点:连接源数据库的用户需要有admin库的readanydatabase权限,有local库的read权限。
    • 集群:连接源数据库mongos节点的用户需要有admin库的readanydatabase权限,有config库的read权限,连接源数据库分片节点的用户需要有admin库的readanydatabase权限,有local库的read权限。

详见。

目标数据库权限

连接目标数据库的用户需要有admin库的dbadminanydatabase权限,有目标数据库的readwrite权限。

对于目标数据库是集群的实例,迁移账号还要有admin库的clustermanager权限。

详见。

版本类

源数据库版本

支持3.2、3.4、3.6、4.0、4.2、4.4版本

详见

目标数据库版本

支持3.2、3.6、3.4、4.0、4.2、4.4版本

详见

迁移版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见。

增量迁移类

oplog开启

增量迁移时,源数据库的oplog日志必须打开。

-

oplog保留时长

在磁盘空间允许的情况下,建议源数据库oplog保存时间越长越好,建议为3天。

-

balancer关闭

如果迁移任务是源数据集群的增量,则源数据必须关闭balancer。

详见。

孤儿文档检查

如果是源数据为集群的全量 增量迁移任务,则源数据库必须关闭balancer并清理孤儿文档。

详见。

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见。

状态检查

目标数据库实例实例状态必须正常。

-

chunk数目检查

检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。

详见

一致性检查

固定集合检查

检查源库和目标库数据库固定集合是否一致,若不一致,则导致迁移失败。

详见。

迁移对象类

关联对象检查

相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。

-

同名检查

目标数据库不能存在与源数据库同名的数据库下的同名非空集合。

详见。

目标数据库不能存在和源数据库同名数据库下的同名视图。

详见。

名称检查

源数据库的库名不能包含/\."$和空格,集合名和视图名中不能包含$字符或以system.开头。

-

索引个数检查

索引的个数会影响整个迁移的时间,检查源数据库是否存在索引个数大于10的集合,若存在会影响迁移速度。

详见。

相关文档

网站地图