DRS预检查项一览表 MongoDB>DDS 表 预检查一览表 分类 预检查项 检查项详情 权限类 源数据库权限 全量迁移需要具备如下最小权限: − 副本集:连接源数据库的用户需要有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版本副本集时,不支持复合哈希索引。 迁移对象类 复合哈希分片键检查 源库为4.4版本集群时,不支持复合哈希索引,不支持复合哈希分片键。 源库为4.4版本副本集时,不支持复合哈希索引。 迁移对象类 索引检查 源库若存在没有索引(id)的集合,可能导致迁移失败。 迁移对象类 TTL索引检查 TTL索引会因为源数据库和目标库数据的时区,时钟不一致导致迁移后数据不一致。 迁移对象类 索引个数检查 索引的个数会影响整个迁移的时间,检查源数据库是否存在索引个数大于10的集合,若存在会影响迁移速度。