数据复制服务 DRS-将MongoDB同步到DDS:注意事项

时间:2024-09-26 16:05:01

注意事项

为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考预检查项。除了预检查项目之外,您还需要注意的事情参见表4

表4 注意事项

类型名称

使用和操作限制

源数据库限制

  • 增量同步时,源数据库的Oplog日志必须打开。
  • 在磁盘空间允许的情况下,建议源数据库Oplog保存时间越长越好,建议为3天。

使用限制

通用:

  • 为了保持数据一致性,在整个同步过程中,不允许对正在同步中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。
  • 同步过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
  • 在任务启动、任务全量同步阶段,不建议对源数据库做删除类型的DDL操作,例如删除数据库、集合、索引、文档、视图等,这样可能会引起任务同步失败。
  • 在整个同步过程中,不支持源数据库主备切换导致数据回滚的情况。
  • 不支持全量同步和增量同步阶段insert、update源库大于16MB的文档。

增量同步阶段:

  • 源数据库为副本集实例时,增量同步阶段支持如下操作
    • 支持文档(document)新增、删除、更新。
    • 支持集合(collection)新建、删除。
    • 支持索引(index)新建、删除。
    • 支持视图(view)新建,删除。
    • 支持convertToCapped、collMod、renameCollection命令。
  • 任务增量阶段,为保证同步的性能,会集合级的进行并发回放。特殊的情况只支持单线程写入,不支持并发回放:
    • 集合的索引中有unique key时。
    • 集合属性的capped为true时。

    这种情况可能会导致任务时延增高。

常见故障排查:

  • 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。

其他限制

  • 副本集:MongoDB数据库的副本集实例状态必须正常,要存在主节点。
  • 压缩参数block_compressor的取值,根据源库对应集合的stats().wiredTiger.creationString.block_compressor来决定,如果目标库已经存在对应的空集合,则不同步压缩参数;特殊的,对于不支持的压缩参数,按照目标库实例的net.compression.compressors参数决定。当目标库为DDS 4.2版本时,由于目标库不支持压缩参数的设置,DRS不同步压缩参数。
  • 如果源数据库的MongoDB服务不是单独部署的,而是和其他的服务部署在同一台机器,则必须要给源数据库的wiredTiger引擎加上cacheSizeGB的参数配置,建议值设为最小空闲内存的一半。
  • 选择集合同步时,增量同步过程中不建议对集合进行重命名操作。
  • 建议填写副本集所有的主节点和备节点信息,以防主备切换影响同步任务。如果填写的是主备多个节点的信息,注意所有的节点信息必须属于同一个副本集实例。
  • 为了提高同步的速度,在开始同步之前,建议在源数据库删掉不需要的索引,只保留必须的索引。在同步过程中不建议对源库创建索引,如果必须要创建索引,请使用后台的方式创建索引。
  • 为了防止回环,不支持在相同的源和目标库同时启动入云和出云任务。
    说明:

    同步任务支持源和目标为同一个数据库,为了避免回环,必须使用对象名映射功能进行重命名。

support.huaweicloud.com/realtimesyn-drs/drs_04_0478.html