功能操作说明

1.参数含义

当设置 MongoDB 数据同步任务时,以下是每个参数的详细含义:

  1. workName:

    • 含义:任务名称
    • 说明:用于标识数据同步任务的名称,如果未提供,则默认生成为 "workNameDefault"。
  2. sourceDsUrl:

    • 含义:源端 MongoDB 连接 URL
    • 说明:指定源端 MongoDB 数据库的连接 URL,可以为单节点、复制集或分片。
  3. targetDsUrl:

    • 含义:目标端 MongoDB 连接 URL
    • 说明:指定目标端 MongoDB 数据库的连接 URL,可以为单节点、复制集或分片。
  4. syncMode:

    • 含义:同步模式
    • 说明:指定数据同步的模式,可以是以下几种选项:
      • "all": 全量模式,同步所有表,不同步同步期间对源表进行的操作。
      • "allAndRealTime": 全量加实时模式,先进行全量同步,然后开始实时同步。
      • "allAndIncrement": 全量加增量模式,进行全量同步后,仅同步同步期间对源表进行的操作。
      • "realTime": 实时模式,根据配置的开始和结束时间进行实时同步。
  5. realTimeType:

    • 含义:实时任务类型
    • 说明:选择实时任务使用的类型,可以是 "oplog" 或 "changestream"。
    • 详细说明:
      • "oplog": 使用 MongoDB 的 oplog 进行实时同步,适用于源端为复制集,支持 DDL 操作,速度较快。
      • "changestream": 使用 MongoDB 的 changestream 进行实时同步,适用于源端为复制集或 mongos,不支持 DDL 操作,速度一般。
  6. fullType:

    • 含义:全量任务类型
    • 说明:选择全量任务使用的类型,可以是 "sync" 或 "reactive"。
    • 详细说明:
      • "sync": 使用稳定的传输方式进行全量同步。
      • "reactive": 使用更快的传输方式进行全量同步。
  7. dbTableWhite:

    • 含义:需要同步的表
    • 说明:使用正则表达式指定需要同步的表,例如同步 mongodb 库下的所有表:mongodb\..+,默认为同步全部表。
  8. ddlFilterSet:

    • 含义:需要同步的 DDL 操作
    • 说明:指定需要同步的 DDL 操作,多个操作之间用英文逗号隔开,默认为 *,代表同步所有 DDL 操作。
  9. sourceThreadNum:

    • 含义:源端任务线程数(全量模式)
    • 说明:指定全量同步情况下读取源端任务的线程数。
  10. targetThreadNum:

    • 含义:目标端任务线程数(全量模式)
    • 说明:指定全量同步情况下写入目标端任务的线程数。
  11. createIndexThreadNum:

    • 含义:建立索引的并发线程数(全量模式)
    • 说明:指定全量同步情况下建立索引的并发线程数。
  12. batchSize:

    • 含义:每批次数据大小
    • 说明:指定每次传输的数据批次大小,默认为 128。
  13. bucketNum:

    • 含义:缓存桶个数
    • 说明:指定内存中的缓存桶个数,默认为 20。
  14. bucketSize:

    • 含义:每个缓存桶缓存批次数量
    • 说明:指定每个缓存桶缓存的数据批次数量,默认为 20。
  15. startOplogTime:

    • 含义:实时同步的开始时间
    • 说明:在实时同步模式下,指定读取 oplog 的开始时间,默认为程序启动时刻的 10 位时间戳。
  16. endOplogTime:

    • 含义:实时同步的结束时间
    • 说明:在实时同步模式下,指定读取 oplog 的结束时间,默认为 0,表示没有结束时间。
  17. delayTime:

    • 含义:实时同步的延迟时间
    • 说明:在实时同步模式下,指定读取 oplog 的延迟时间,默认为 0,表示没有延迟时间。
  18. nsBucketThreadNum:

    • 含义:解析桶的线程数(实时同步)
    • 说明:在实时同步中解析桶的线程数,默认为系统计算值。
  19. writeThreadNum:

    • 含义:写数据的线程数(实时同步)
    • 说明:在实时同步中写数据的线程数,默认为系统计算值。
  20. ddlWait:

    • 含义:每个 DDL 操作最大耗时
    • 说明:设置同步中每个 DDL 操作的最大耗时,单位为秒。
  21. clusterInfoSet:

    • 含义:全量同步时的预处理操作
    • 说明:设置全量同步时的预处理操作,用逗号隔开,可组合多个操作,例如 "0,1,2,3,4,5,6,7",默认为空。每个操作的含义如下:
      • 0: 是否删除目标端已经存在的表
      • 1: 打印输出集群全部用户信息
      • 2: 同步库表结构
      • 3: 同步库表索引信息
      • 4: 全部库开启库分片
      • 5: 同步库表 shard key
      • 6: 同步 config.setting 表
      • 7: 库

表预切分 chunk

  1. bind_ip:
    • 含义:开启 monitor 监控时的本机 IP 地址
    • 说明:在开启监控时,配置监控所绑定的本机 IP 地址。

通过配置这些参数,您可以根据您的需求,定制 MongoDB 数据同步任务的行为和特性。

2.参数使用范围

| 参数                   | 实时任务 | 全量任务 | 全量加增量任务 | 全量加实时任务 |
|----------------------|--------|--------|-------------|--------------|
| workName             | ✔️     | ✔️     | ✔️          | ✔️           |
| sourceDsUrl          | ✔️     | ✔️     | ✔️          | ✔️           |
| targetDsUrl          | ✔️     | ✔️     | ✔️          | ✔️           |
| syncMode             | ✔️     | ✔️     | ✔️          | ✔️           |
| realTimeType         | ✔️     |        | ✔️          | ✔️           |
| fullType             |        | ✔️     | ✔️          | ✔️           |
| dbTableWhite         | ✔️     | ✔️     | ✔️          | ✔️           |
| ddlFilterSet         | ✔️     |        | ✔️          | ✔️           |
| batchSize            | ✔️     | ✔️     | ✔️          | ✔️           |
| bucketNum            | ✔️     | ✔️     | ✔️          | ✔️           |
| bucketSize           | ✔️     | ✔️     | ✔️          | ✔️           |
| startOplogTime       | ✔️     |        |             |              |
| endOplogTime         | ✔️     |        | ✔️          | ✔️           |
| delayTime            | ✔️     |        |             |              |
| nsBucketThreadNum    | ✔️     |        |             |              |
| writeThreadNum       | ✔️     |        |             |              |
| ddlWait              | ✔️     | ✔️     | ✔️          | ✔️           |
| clusterInfoSet       | ✔️     | ✔️     | ✔️          | ✔️           |
| bind_ip              | ✔️     | ✔️     | ✔️          | ✔️           |

3.数据校验

#校验数据脚本
# 0:多线程进行校验:配置后1-8的校验方式,可以并发的进行处理
# 1:预估库表count校验,count库表数量可能不准确
# 2:精确库表count校验,count库表数量准确
# 3:库表dbHash校验(会锁库,谨慎操作), 利用mongodb自带统计工具,对库表的每一行数据进行计算,最终得到表hash值
# 4:库表随机取100条数据进行校验,源端随机抽取100条数据,校验100条数据是否存在于目标端
# 5:库表每种数据类型取100条进行校验数据, _id每种数据类型均抽取100条(_id排序前50条,后五十条),校验100条数据是否存在于目标端
# 6:检查库表缺失索引信息
# 7:检查库表缺失索引信息且补充建立缺失索引
# 8:库dbHash校验(会锁库,谨慎操作)
# 9:输出详细校验日志信息。不填写9时,日志仅记录异常校验信息
# 可以组合使用 例如 123456 123457 1237。若不填写,默认使用组合16
checkData=12456

results matching ""

    No results matching ""