使用技巧(需要人为配合)
如果您使用的是全量迁移模式(离线迁移),确保源和目标数据库无业务写入,保证迁移前后数据一致。
如果您使用的是全量+增量迁移模式(在线迁移),支持在源数据库有业务数据写入的情况下进行迁移,推荐提前2-3天启动任务,并配合如下使用技巧和对应场景的操作要求,以确保顺利迁移。
基于以下原因,建议您结合定时启动功能,选择业务低峰期开始运行迁移任务,相对静态的数据,迁移时复杂度将会降低。
全量迁移会对源数据库有一定的访问压力。
迁移无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。
正在迁移的数据被其他事务长时间锁死,可能导致读数据超时。
建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
操作要求
由于一些无法预知或人为因素及环境突变导致迁移失败的情况,数据库复制服务提供以下常见的操作限制,供您在迁移过程中参考。
类型名称
操作限制(需要人为配合)
注意事项
不支持高版本到低版本的迁移。
不支持系统库的迁移,用户名和角色需要在目标库手动创建。
目标数据库的迁移账号必须是有写权限。对于目标数据库是集群的实例,迁移账号还要有对config数据的读权限。
对于在源数据库已经存在TTL索引的集合,或者在增量迁移期间在源库数据创建了TTL索引的集合,由于源数据库和目标库数据库时区,时钟的不一致,不能保证迁移完成之后数据的一致性。
不支持_id字段没有索引的集合。
出云迁移的目标数据库如果是副本集,则建议目标数据库填写所有的主节点和备节点信息,以防主备切换影响迁移任务。如果是填写主备节点,注意填写的节点信息必须属于同一个副本集实例。
出云迁移的目标数据库如果是集群,则建议填写多个mongos信息,以防单个mongos节点故障影响迁移任务,并且多个mongos信息还可以实现负载均衡。如果填写多个mongos信息,注意所有所填的信息必须属于同一个集群实例。
为了提高迁移的速度,在开始迁移之前,建议在源数据库删掉不需要的索引,只保留必须的索引。
操作须知
迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
在整个迁移过程中,为了保持数据一致性,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。
在整个迁移过程中,不支持源数据库主备切换导致数据回滚的情况。