更新时间:2022-05-25 GMT+08:00
分享

DDS->MongoDB

使用技巧(需要人为配合)

  • 如果您使用的是全量迁移模式(离线迁移),确保源和目标数据库无业务写入,保证迁移前后数据一致。
  • 如果您使用的是全量+增量迁移模式(在线迁移),支持在源数据库有业务数据写入的情况下进行迁移,推荐提前2-3天启动任务,并配合如下使用技巧和对应场景的操作要求,以确保顺利迁移。
    • 基于以下原因,建议您结合定时启动功能,选择业务低峰期开始运行迁移任务,相对静态的数据,迁移时复杂度将会降低。
      • 全量迁移会对源数据库有一定的访问压力。
      • 迁移无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。
      • 正在迁移的数据被其他事务长时间锁死,可能导致读数据超时。
      • DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。
      • 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。
    • 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。

操作要求

由于一些无法预知或人为因素及环境突变导致迁移失败的情况,数据复制服务提供以下常见的操作限制,供您在迁移过程中参考。

表1 操作要求

类型名称

操作限制(需要人为配合)

注意事项

  • 不支持高版本到低版本的迁移。
  • 不支持系统库的迁移,用户名和角色需要在目标库手动创建。
  • 目标数据库的迁移账号必须是有写权限。对于目标数据库是集群的实例,迁移账号还要有对config数据的读权限。
  • 对于在源数据库已经存在TTL索引的集合,或者在增量迁移期间在源库数据创建了TTL索引的集合,由于源数据库和目标库数据库时区,时钟的不一致,不能保证迁移完成之后数据的一致性。
  • 不支持_id字段没有索引的集合。
  • 不支持BinData()的第一个参数为2。
  • 出云迁移的目标数据库如果是副本集,则建议目标数据库填写所有的主节点和备节点信息,以防主备切换影响迁移任务。如果是填写主备节点,注意填写的节点信息必须属于同一个副本集实例。
  • 出云迁移的目标数据库如果是集群,则建议填写多个mongos信息,以防单个mongos节点故障影响迁移任务,并且多个mongos信息还可以实现负载均衡。如果填写多个mongos信息,注意所有所填的信息必须属于同一个集群实例。
  • 为了提高迁移的速度,在开始迁移之前,建议在源数据库删掉不需要的索引,只保留必须的索引。

操作须知

  • 迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
  • 在整个迁移过程中,为了保持数据一致性,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。
  • 在整个迁移过程中,不支持源数据库主备切换导致数据回滚的情况。
  • 不支持全量迁移和增量迁移阶段insert、update源库大于16MB的文档。
  • 为了防止回环,不支持同时启动入云和出云任务。
分享:

    相关文档

    相关产品

close