diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aeb318e --- /dev/null +++ b/.gitignore @@ -0,0 +1,134 @@ +### Eclipse template +*.pydevproject +.metadata +.gradle +/bin/ +/tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath + +# Eclipse Core +.project + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Java annotation processor (APT) +.factorypath + +# PDT-specific +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion + +*.iml + +## Directory-based project format: +.idea/ +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ +.idea/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties + + +### Java template +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + +/project/project/ +/project/target/ +/project/activator-* +/RUNNING_PID +.DS_Store +/target/ +/tmlogs/ +/txlogs/ +/viewConf/ +src/main/resources/server.xml +src/main/resources/schema.xml +src/main/resources/rule.xml +src/main/resources/zkconf/server.xml +src/main/resources/zkconf/schema.xml +src/main/resources/zkconf/rule.xml +conf/dnindex.properties +version.txt +copyResources.bat +dependency-reduced-pom.xml +checkstyle-result.out + +# gitbook +_book/ +node_modules/ + +# vscode +.vscode/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..57ce3d6 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,65 @@ +dist: trusty +env: + global: + - GH_REF: github.com/actiontech/dtle-docs-cn + - GH_USER: actiontech-bot + - GH_MAIL: github@actionsky.com + + +# 指定环境语言 +language: node_js +# 指定sudo权限 +sudo: required +# 指定node版本 +node_js: v14.2.0 +# 指定缓存模块,缓存可以加速编译 +cache: + directories: + - node_modules + +# 邮件通知 +notifications: + email: + recipients: + - yangzhongjiao@actionsky.com + on_success: never # default: change + on_failure: always # default: always + +# 构建的分支 +branches: + only: + - master + +# 调整时区 +before_install: + - export TZ='Asia/Shanghai' + - sudo apt-get install -y calibre fonts-arphic-gbsn00lp + +# 安装环境 +install: + - npm install -g gitbook-cli + - npm install gitbook-plugin-yahei + - gitbook install + +# gitbook生成静态文件 +script: + - gitbook build + - cd ./_book + - git init + - git config user.name "${GH_USER}" + - git config user.email "${GH_MAIL}" + - git add . + - git commit -m "Update GitBook By TravisCI With Build $TRAVIS_BUILD_NUMBER" + - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages + - cd .. + # pdf + - xvfb-run gitbook pdf ./ ./dtle-manual.pdf + - mkdir pdf + - cp dtle-manual.pdf ./pdf/ + - cd ./pdf + - git init + - git config user.name "${GH_USER}" + - git config user.email "${GH_MAIL}" + - git add . + - git commit -m "Update GitBook By TravisCI With Build PDF $TRAVIS_BUILD_NUMBER" + - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:pdf diff --git a/0/0_overview.html b/0/0_overview.html new file mode 100644 index 0000000..0020251 --- /dev/null +++ b/0/0_overview.html @@ -0,0 +1,956 @@ + + + + + + + 0.概述 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+ + + + + + + + +
+
+ +
+
+ +
+ +

概述

+

dtle (Data-Transformation-le) 是上海爱可生信息技术股份有限公司 开发并开源的 CDC 工具. 其功能特点是:

+
    +
  • 多种数据传输模式
      +
    • 支持链路压缩
    • +
    • 支持同构传输和异构传输
    • +
    • 支持跨网络边际的传输
    • +
    +
  • +
  • 多种数据处理模式
      +
    • 支持库/表/行级别 数据过滤
    • +
    +
  • +
  • 多种数据通道模式
      +
    • 支持多对多的数据传输
    • +
    • 支持回环传输
    • +
    +
  • +
  • 多种源/目标端
      +
    • 支持MySQL - ActionDB的数据传输
        +
      • 支持MySQL - MySQL的数据传输
      • +
      +
    • +
    • 支持MySQL - Kafka的数据传输
    • +
    • 支持Oracle - MySQL的数据传输
    • +
    +
  • +
  • 集群模式
      +
    • 提供可靠的元数据存储
    • +
    • 可进行自动任务分配
    • +
    • 支持自动故障转移
    • +
    +
  • +
+ + +
+ +
+
+
+ +

results matching ""

+
    + +
    +
    + +

    No results matching ""

    + +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.0_mysql_replication.graffle b/1/1.0_mysql_replication.graffle new file mode 100644 index 0000000..050be46 Binary files /dev/null and b/1/1.0_mysql_replication.graffle differ diff --git a/1/1.0_mysql_replication.html b/1/1.0_mysql_replication.html new file mode 100644 index 0000000..441e457 --- /dev/null +++ b/1/1.0_mysql_replication.html @@ -0,0 +1,943 @@ + + + + + + + 1.0.MySQL的单向复制/聚合/分散 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + +
    + +
    + + + + + + + + +
    +
    + +
    +
    + +
    + +

    1.0 兼容MySQL的单向复制/聚合/分散

    +

    如下图, dtle 支持 兼容MySQL的 单向数据复制的常见场景如下:

    +
      +
    • 按数据源/数据目标的映射关系划分
        +
      • 支持1:1的复制
      • +
      • 支持n:1的数据汇聚, 将多个数据源的数据 聚合到 同一个数据目标
      • +
      • 支持1:n的数据拆分, 将一个数据源的数据 拆分到 多个数据目标
      • +
      +
    • +
    • 按网络类型划分
        +
      • 支持网络内的数据传输
      • +
      • 支持跨网络边际的数据传输 (可使用 链路压缩/链路限流 等功能)
      • +
      +
    • +
    • 按集群规模划分
        +
      • 可配置 单一dtle实例 处理 单一数据通道
      • +
      • 可配置 dtle集群 处理 多个数据通道
      • +
      +
    • +
    +

    + + +
    + +
    +
    +
    + +

    results matching ""

    +
      + +
      +
      + +

      No results matching ""

      + +
      +
      +
      + +
      +
      + +
      + + + + + + + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.0_mysql_replication.png b/1/1.0_mysql_replication.png new file mode 100644 index 0000000..24e0393 Binary files /dev/null and b/1/1.0_mysql_replication.png differ diff --git a/1/1.1_bidirectional_replication.graffle b/1/1.1_bidirectional_replication.graffle new file mode 100644 index 0000000..6106461 Binary files /dev/null and b/1/1.1_bidirectional_replication.graffle differ diff --git a/1/1.1_bidirectional_replication.html b/1/1.1_bidirectional_replication.html new file mode 100644 index 0000000..3b32ca0 --- /dev/null +++ b/1/1.1_bidirectional_replication.html @@ -0,0 +1,937 @@ + + + + + + + 1.1.跨数据中心的双向复制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + + + +
      + +
      + +
      + + + + + + + + +
      +
      + +
      +
      + +
      + +

      1.1 跨数据中心的双向复制

      +

      如下图, dtle支持MySQL间的双向复制, 其普遍场景是用于跨数据中心的数据双向同步.

      +

      +

      其中:

      +
        +
      • dtle 会对数据的回环状况进行判断, 不会重复传输同一事务.
      • +
      • dtle 在传输过程中维持数据的事务性, 对于数据源的事务产生的数据, 在数据目标端是以相同的事务方式进行回放. 对于双写的场景, 目标端不会受到不完整的事务的影响.
      • +
      • dtle 在数据链路上, 可使用压缩/限速等功能, 更适合于跨数据中心的场景.
      • +
      + + +
      + +
      +
      +
      + +

      results matching ""

      +
        + +
        +
        + +

        No results matching ""

        + +
        +
        +
        + +
        +
        + +
        + + + + + + + + + + + + + + +
        + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.1_bidirectional_replication.png b/1/1.1_bidirectional_replication.png new file mode 100644 index 0000000..8f15c7f Binary files /dev/null and b/1/1.1_bidirectional_replication.png differ diff --git a/1/1.2_sync_between_cloud.html b/1/1.2_sync_between_cloud.html new file mode 100644 index 0000000..905f22f --- /dev/null +++ b/1/1.2_sync_between_cloud.html @@ -0,0 +1,939 @@ + + + + + + + 1.2.公有云间的数据同步 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + + + + + + + +
        + +
        + +
        + + + + + + + + +
        +
        + +
        +
        + +
        + +

        1.2 公有云间的数据同步

        +

        dtle 可用于公有云间的数据同步, 可支持的部署方式同 1.01.1 两节介绍的方式. 其中的不同之处在于:

        +
          +
        • dtle 可部署于公有云的云主机服务上
        • +
        • dtle 对公有云上RDS服务给予的权限进行了适配, 不需高权限即可实现数据复制
        • +
        • dtle 对公有云的 MySQL 非官方版 进行了适配 (如阿里云RDS会增加隐式主键列, 导致 binlog中的数据与表结构不符)
        • +
        +

        目前支持的公有云同步通道:

        +
          +
        • 阿里云 -> 京东云
        • +
        + + +
        + +
        +
        +
        + +

        results matching ""

        +
          + +
          +
          + +

          No results matching ""

          + +
          +
          +
          + +
          +
          + +
          + + + + + + + + + + + + + + +
          + + +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.3_mysql_kafka.graffle/data.plist b/1/1.3_mysql_kafka.graffle/data.plist new file mode 100644 index 0000000..b17cd64 Binary files /dev/null and b/1/1.3_mysql_kafka.graffle/data.plist differ diff --git a/1/1.3_mysql_kafka.graffle/image2.png b/1/1.3_mysql_kafka.graffle/image2.png new file mode 100644 index 0000000..21a6462 Binary files /dev/null and b/1/1.3_mysql_kafka.graffle/image2.png differ diff --git a/1/1.3_mysql_kafka.html b/1/1.3_mysql_kafka.html new file mode 100644 index 0000000..ef92a9e --- /dev/null +++ b/1/1.3_mysql_kafka.html @@ -0,0 +1,935 @@ + + + + + + + 1.3.MySQL到Kafka的数据变更通知 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          + + + + + + + + +
          + +
          + +
          + + + + + + + + +
          +
          + +
          +
          + +
          + +

          1.3 MySQL到Kafka的数据变更通知

          +

          如下图, dtle支持MySQL到Kafka的数据变更通知, 其普遍场景是:

          +
            +
          • 当数据变更时, 通知 缓存件 进行缓存刷新
          • +
          • 当数据变更时, 通知 数据后处理件 进行数据扫描
          • +
          +

          + + +
          + +
          +
          +
          + +

          results matching ""

          +
            + +
            +
            + +

            No results matching ""

            + +
            +
            +
            + +
            +
            + +
            + + + + + + + + + + + + + + +
            + + +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.3_mysql_kafka.png b/1/1.3_mysql_kafka.png new file mode 100644 index 0000000..9f80436 Binary files /dev/null and b/1/1.3_mysql_kafka.png differ diff --git a/1/1.4_oracle_mysql.html b/1/1.4_oracle_mysql.html new file mode 100644 index 0000000..2f0961c --- /dev/null +++ b/1/1.4_oracle_mysql.html @@ -0,0 +1,929 @@ + + + + + + + 1.4.Oracle到MySQL的数据同步 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            +
            + + + + + + + + +
            + +
            + +
            + + + + + + + + +
            +
            + +
            +
            + +
            + +

            1.4 Oracle到MySQL的数据同步

            +

            如下图, dtle支持Oracle到MySQL的数据同步通知, 其场景是:

            +
              +
            • 当Oracle执行DDL时, 同步库/表结构到MySQL
            • +
            • 当Oracle执行DML时,同步字段变更到MySQL
            • +
            +

            + + +
            + +
            +
            +
            + +

            results matching ""

            +
              + +
              +
              + +

              No results matching ""

              + +
              +
              +
              + +
              +
              + +
              + + + + + + + + + + +
              + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1/1.4_oracle_mysql.png b/1/1.4_oracle_mysql.png new file mode 100644 index 0000000..b9f3836 Binary files /dev/null and b/1/1.4_oracle_mysql.png differ diff --git a/2/2.0.1_interface.html b/2/2.0.1_interface.html new file mode 100644 index 0000000..dda0c9e --- /dev/null +++ b/2/2.0.1_interface.html @@ -0,0 +1,961 @@ + + + + + + + 2.0.1.HTTP API、nomad 命令行工具 和 Web界面 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + + + +
              + +
              + +
              + + + + + + + + +
              +
              + +
              +
              + +
              + +

              HTTP API、nomad 命令行工具 和 Web界面

              +

              HTTP API

              +

              curl命令实际上是调用nomad agent端的HTTP接口,将本地的job.json提交到nomad agent端。

              +
              curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job.json -s | jq
              +

              dtle rpm安装包提供了json和hcl格式的job样例。

              +

              jq

              +

              jq是一款格式化、提取json内容的工具。一般需使用Linux包管理器安装。

              +

              典型用法

              +
              # 格式化json内容:
              +some_command_print_json | jq
              +
              +# 提取字段(Status):
              +some_command_print_json | jq '.Status'
              +

              具体参考 https://stedolan.github.io/jq/tutorial/

              +

              nomad 命令行工具

              +

              此外还可以使用nomad命令行工具。nomad将命令行工具和agent端放在了同一个可执行文件中。

              +

              使用 nomad 命令行工具运行job, 使用hcl格式:

              +
              nomad job run -address="http://192.168.1.1:4646" job1.hcl
              +# 或
              +export NOMAD_ADDR="http://192.168.1.1:4646"
              +nomad job run job1.hcl
              +

              该用法本质上是对HTTP API的封装。

              +

              nomad Web 界面

              +

              浏览器访问 http://127.0.0.1:4646, 为 nomad Web 界面。可查看Jobs、Servers和Clients。

              +

              在Jobs界面,点击Run Job,可运行HCL或JSON格式的job。

              +

              consul

              +
                +
              • nomad 本体使用consul进行多节点注册和发现
              • +
              • dtle nomad 插件使用consul进行任务元数据储存
              • +
              +

              浏览器访问 http://127.0.0.1:4646,为 consul Web 界面。可查看KV中的Job进度(Gtid)。

              +

              +
              curl -XGET "127.0.0.1:8500/v1/kv/dtle/aa/Gtid?raw
              +
              + +
              + +
              +
              +
              + +

              results matching ""

              +
                + +
                +
                + +

                No results matching ""

                + +
                +
                +
                + +
                +
                + +
                + + + + + + + + + + + + + + +
                + + +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.0_mysql_replication_1_1.html b/2/2.0_mysql_replication_1_1.html new file mode 100644 index 0000000..4272401 --- /dev/null +++ b/2/2.0_mysql_replication_1_1.html @@ -0,0 +1,1034 @@ + + + + + + + 2.0.MySQL的单向复制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                +
                + + + + + + + + +
                + +
                + +
                + + + + + + + + +
                +
                + +
                +
                + +
                + +

                MySQL 的单向复制

                +

                以下步骤以docker容器的方式快速演示如何搭建MySQL的单向复制环境.

                +

                创建网络

                +
                docker network create dtle-net
                +

                创建源端/目标端 MySQL

                +
                docker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                +
                +docker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2
                +

                检查是否联通:

                +
                > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                +< *************************** 1. row ***************************
                +@@version: 5.7.23-log
                +
                +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "select @@version\G"
                +< *************************** 1. row ***************************
                +@@version: 5.7.23-log
                +

                创建 dtle

                +
                docker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest
                +docker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle
                +# 如需要使用dtle 2.x HTTP API兼容层,则需要额外映射8190端口:-p 8190:8190
                +

                检查是否正常:

                +
                > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                +< [
                +    {
                +      "Address": "127.0.0.1",
                +      "Datacenter": "dc1",
                +      "Drivers": {
                +        "dtle": {
                +          "Attributes": {
                +            "driver.dtle": "true",
                +            "driver.dtle.version": "..."
                +          },
                +          "Detected": true,
                +          "Healthy": true,
                +        }
                +      },
                +      "ID": "65ff2f9a-a9fa-997c-cce0-9bc0b4f3396c",
                +      "Name": "nomad0",
                +      "Status": "ready",
                +    }
                +  ]
                +# (部分项目省略)
                +

                准备作业定义文件

                +

                准备文件job.json, 内容如下:

                +
                {
                +  "Job": {
                +    "ID": "dtle-demo",
                +    "Datacenters": ["dc1"],
                +    "TaskGroups": [{
                +        "Name": "src",
                +        "Tasks": [{
                +          "Name": "src",
                +          "Driver": "dtle",
                +          "Config": {
                +            "Gtid": "",
                +            "ReplicateDoDb": [{
                +              "TableSchema": "demo",
                +              "Tables": [{
                +                "TableName": "demo_tbl"
                +              }]
                +            }],
                +            "SrcConnectionConfig": {
                +              "Host": "mysql-src",
                +              "Port": 3306,
                +              "User": "root",
                +              "Password": "pass"
                +            },
                +            "DestConnectionConfig": {
                +              "Host": "mysql-dst",
                +              "Port": 3306,
                +              "User": "root",
                +              "Password": "pass"
                +            }
                +          }
                +        }]
                +      }, {
                +        "Name": "dest",
                +        "Tasks": [{
                +          "Name": "dest",
                +          "Driver": "dtle",
                +          "Config": {
                +            "DestType": "mysql"
                +          }
                +        }]
                +    }]
                +  }
                +}
                +

                其中定义了:

                +
                  +
                • 源端/目标端的连接字符串
                • +
                • 要复制的表为demo.demo_tbl
                • +
                • GTID点位为空, 表示此复制是 全量+增量 的复制. 如只测试增量复制, 可指定合法的GTID
                • +
                +

                准备测试数据

                +

                可在源端准备提前建表demo.demo_tbl, 并插入数据, 以体验全量复制过程. +也可不提前建表.

                +

                创建复制任务

                +
                > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job.json -s | jq
                +< {
                +  "EvalCreateIndex": 50,
                +  "EvalID": "a5e9c353-5eb9-243e-983d-bc096a93ddca",
                +  "Index": 50,
                +  "JobModifyIndex": 49,
                +  "KnownLeader": false,
                +  "LastContact": 0,
                +  "Warnings": ""
                +}
                +

                查看作业状态

                +
                > curl -XGET "http://127.0.0.1:4646/v1/job/dtle-demo" -s | jq '.Status'
                +< "running"
                +

                测试

                +

                此时可在源端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致

                + + +
                + +
                +
                +
                + +

                results matching ""

                +
                  + +
                  +
                  + +

                  No results matching ""

                  + +
                  +
                  +
                  + +
                  +
                  + +
                  + + + + + + + + + + +
                  + + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.1_mysql_replication_n_1.html b/2/2.1_mysql_replication_n_1.html new file mode 100644 index 0000000..6f2c17d --- /dev/null +++ b/2/2.1_mysql_replication_n_1.html @@ -0,0 +1,1116 @@ + + + + + + + 2.1.MySQL的聚合复制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + + + + + + + + +
                  + +
                  + +
                  + + + + + + + + +
                  +
                  + +
                  +
                  + +
                  + +

                  MySQL 的汇聚复制

                  +

                  以下步骤以docker容器的方式快速演示如何搭建MySQL的汇聚复制环境.

                  +

                  创建网络

                  +
                  docker network create dtle-net
                  +

                  创建源端(2个)和目标端(1个) MySQL

                  +
                  docker run --name mysql-src1 -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                  +
                  +docker run --name mysql-src2 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2
                  +
                  +docker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33063:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=3
                  +

                  检查是否联通:

                  +
                  > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                  +< *************************** 1. row ***************************
                  +@@version: 5.7.23-log
                  +
                  +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "select @@version\G"
                  +< *************************** 1. row ***************************
                  +@@version: 5.7.23-log
                  +
                  +> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "select @@version\G"
                  +< *************************** 1. row ***************************
                  +@@version: 5.7.23-log
                  +

                  在源端MySQL中创建表结构, 获取GTID点位, 并插入数据

                  +
                  > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                  +< ...
                  +
                  +> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "show master status\G" | grep "Executed_Gtid_Set"
                  +< Executed_Gtid_Set: f6def853-cbaa-11e8-8aeb-0242ac120003:1-7
                  +
                  +> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "insert into demo.demo_tbl values(1),(2),(3)"
                  +< ...
                  +
                  +---
                  +
                  +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                  +< ...
                  +
                  +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "show master status\G" | grep "Executed_Gtid_Set"
                  +< Executed_Gtid_Set: f74aacb5-cbaa-11e8-bdd1-0242ac120004:1-7
                  +
                  +
                  +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "insert into demo.demo_tbl values(4),(5),(6)"
                  +< ...
                  +

                  在目标端MySQL中创建表结构

                  +
                  > mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                  +< ...
                  +

                  创建 dtle

                  +
                  docker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest
                  +docker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle
                  +

                  检查是否正常:

                  +
                  > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                  +< [{...}]
                  +

                  准备作业定义文件

                  +

                  src1到dst的复制定义文件

                  +

                  准备src1_dst.json, 内容如下:

                  +
                  {
                  +  "Job": {
                  +    "ID": "dtle-demo-src1-dst",
                  +    "Datacenters": ["dc1"],
                  +    "TaskGroups": [{
                  +        "Name": "src",
                  +        "Tasks": [{
                  +          "Name": "src",
                  +          "Driver": "dtle",
                  +          "Config": {
                  +            "Gtid": "f6def853-cbaa-11e8-8aeb-0242ac120003:1-7",
                  +            "ReplicateDoDb": [{
                  +              "TableSchema": "demo",
                  +              "Tables": [{
                  +                "TableName": "demo_tbl"
                  +              }]
                  +            }],
                  +            "SrcConnectionConfig": {
                  +              "Host": "mysql-src1",
                  +              "Port": 3306,
                  +              "User": "root",
                  +              "Password": "pass"
                  +            },
                  +            "DestConnectionConfig": {
                  +              "Host": "mysql-dst",
                  +              "Port": 3306,
                  +              "User": "root",
                  +              "Password": "pass"
                  +            }
                  +          }
                  +        }]
                  +      }, {
                  +        "Name": "dest",
                  +        "Tasks": [{
                  +          "Name": "dest",
                  +          "Driver": "dtle",
                  +          "Config": {
                  +            "DestType": "mysql"
                  +          }
                  +        }]
                  +    }]
                  +  }
                  +}
                  +

                  其中定义了:

                  +
                    +
                  • 源端/目标端的连接字符串
                  • +
                  • 要复制的表为demo.demo_tbl
                  • +
                  • GTID点位为 准备数据阶段 插入数据之前的src1上的GTID点位
                  • +
                  +

                  src2到dst的复制定义文件

                  +

                  准备src2_dst.json, 内容如下:

                  +
                  {
                  +  "Job": {
                  +    "ID": "dtle-demo-src2-dst",
                  +    "Datacenters": ["dc1"],
                  +    "TaskGroups": [{
                  +        "Name": "src",
                  +        "Tasks": [{
                  +          "Name": "src",
                  +          "Driver": "dtle",
                  +          "Config": {
                  +            "Gtid": "f74aacb5-cbaa-11e8-bdd1-0242ac120004:1-7",
                  +            "ReplicateDoDb": [{
                  +              "TableSchema": "demo",
                  +              "Tables": [{
                  +                "TableName": "demo_tbl"
                  +              }]
                  +            }],
                  +            "SrcConnectionConfig": {
                  +              "Host": "mysql-src2",
                  +              "Port": 3306,
                  +              "User": "root",
                  +              "Password": "pass"
                  +            },
                  +            "DestConnectionConfig": {
                  +              "Host": "mysql-dst",
                  +              "Port": 3306,
                  +              "User": "root",
                  +              "Password": "pass"
                  +            }
                  +          }
                  +        }]
                  +      }, {
                  +        "Name": "dest",
                  +        "Tasks": [{
                  +          "Name": "dest",
                  +          "Driver": "dtle",
                  +          "Config": {
                  +            "DestType": "mysql"
                  +          }
                  +        }]
                  +    }]
                  +  }
                  +}
                  +

                  其中与src1_dst.json不同的是:

                  +
                    +
                  • 源端的连接字符串
                  • +
                  • GTID点位为 准备数据阶段 插入数据之前的src2上的GTID点位
                  • +
                  +

                  创建复制任务

                  +
                  > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @src1_dst.json -s | jq
                  +< {...}
                  +
                  +> curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @src2_dst.json -s | jq
                  +< {...}
                  +

                  查看作业ID和状态:

                  +
                  > curl -XGET "127.0.0.1:4646/v1/jobs" -s | jq '.[] | .ID, .Status'
                  +< "dtle-demo-src1-dst"
                  +"running"
                  +"dtle-demo-src2-dst"
                  +"running"
                  +

                  测试

                  +

                  在src1和src2中分别插入数据, 查看dst中的数据, 验证全量和增量的数据均存在

                  +
                  > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "insert into demo.demo_tbl values(11)"
                  +< ...
                  +
                  +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "insert into demo.demo_tbl values(12)"
                  +< ...
                  +
                  +> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "select * from demo.demo_tbl"
                  +< 
                  ++----+
                  +| a  |
                  ++----+
                  +|  1 |
                  +|  2 |
                  +|  3 |
                  +|  4 |
                  +|  5 |
                  +|  6 |
                  +| 11 |
                  +| 12 |
                  ++----+
                  +
                  + +
                  + +
                  +
                  +
                  + +

                  results matching ""

                  +
                    + +
                    +
                    + +

                    No results matching ""

                    + +
                    +
                    +
                    + +
                    +
                    + +
                    + + + + + + + + + + + + + + +
                    + + +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.2_mysql_replication_1_n.html b/2/2.2_mysql_replication_1_n.html new file mode 100644 index 0000000..4a1b942 --- /dev/null +++ b/2/2.2_mysql_replication_1_n.html @@ -0,0 +1,1123 @@ + + + + + + + 2.2.MySQL的数据分散 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    + + + + + + + + +
                    + +
                    + +
                    + + + + + + + + +
                    +
                    + +
                    +
                    + +
                    + +

                    MySQL 的数据分散

                    +

                    以下步骤以docker容器的方式快速演示如何搭建MySQL的数据分散环境. 数据分散复制, 将源表中的数据中, 主键<5的行复制到目标库1, 主键>=5的行复制到目标库2.

                    +

                    创建网络

                    +
                    docker network create dtle-net
                    +

                    创建源端(1个)和目标端(2个) MySQL

                    +
                    docker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                    +
                    +docker run --name mysql-dst1 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2
                    +
                    +docker run --name mysql-dst2 -e MYSQL_ROOT_PASSWORD=pass -p 33063:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=3
                    +

                    检查是否联通:

                    +
                    > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                    +< *************************** 1. row ***************************
                    +@@version: 5.7.23-log
                    +
                    +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "select @@version\G"
                    +< *************************** 1. row ***************************
                    +@@version: 5.7.23-log
                    +
                    +> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "select @@version\G"
                    +< *************************** 1. row ***************************
                    +@@version: 5.7.23-log
                    +

                    在源端MySQL中创建表结构, 获取GTID点位, 并插入数据

                    +
                    > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                    +< ...
                    +
                    +> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "show master status\G" | grep "Executed_Gtid_Set"
                    +< Executed_Gtid_Set: 167dd42f-d076-11e8-8104-0242ac120003:1-7
                    +
                    +> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "insert into demo.demo_tbl values(1),(2),(3)"
                    +< ...
                    +

                    在目标端MySQL中创建表结构

                    +
                    > mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                    +< ...
                    +
                    +> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                    +< ...
                    +

                    创建 dtle

                    +
                    docker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest
                    +docker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle
                    +

                    检查是否正常:

                    +
                    > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                    +< [{...}]
                    +

                    准备作业定义文件

                    +

                    src到dst1的复制定义文件

                    +

                    准备src_dst1.json, 内容如下:

                    +
                    {
                    +  "Job": {
                    +    "ID": "dtle-demo-src-dst1",
                    +    "Datacenters": ["dc1"],
                    +    "TaskGroups": [{
                    +        "Name": "src",
                    +        "Tasks": [{
                    +          "Name": "src",
                    +          "Driver": "dtle",
                    +          "Config": {
                    +            "Gtid": "",
                    +            "ReplicateDoDb": [{
                    +              "TableSchema": "demo",
                    +              "Tables": [{
                    +                "TableName": "demo_tbl",
                    +                "Where":"a<5"
                    +              }]
                    +            }],
                    +            "SrcConnectionConfig": {
                    +              "Host": "mysql-src",
                    +              "Port": 3306,
                    +              "User": "root",
                    +              "Password": "pass"
                    +            },
                    +            "DestConnectionConfig": {
                    +              "Host": "mysql-dst1",
                    +              "Port": 3306,
                    +              "User": "root",
                    +              "Password": "pass"
                    +            }
                    +          }
                    +        }]
                    +      }, {
                    +        "Name": "dest",
                    +        "Tasks": [{
                    +          "Name": "dest",
                    +          "Driver": "dtle",
                    +          "Config": {
                    +            "DestType": "mysql"
                    +          }
                    +        }]
                    +    }]
                    +  }
                    +}
                    +

                    其中定义了:

                    +
                      +
                    • 源端/目标端的连接字符串
                    • +
                    • 要复制的表为demo.demo_tbl
                    • +
                    • demo_tbl的复制数据条件为a<5
                    • +
                    +

                    src到dst2的复制定义文件

                    +

                    准备src_dst2.json, 内容如下:

                    +
                    {
                    +  "Job": {
                    +    "ID": "dtle-demo-src-dst2",
                    +    "Datacenters": ["dc1"],
                    +    "TaskGroups": [{
                    +        "Name": "src",
                    +        "Tasks": [{
                    +          "Name": "src",
                    +          "Driver": "dtle",
                    +          "Config": {
                    +            "Gtid": "",
                    +            "ReplicateDoDb": [{
                    +              "TableSchema": "demo",
                    +              "Tables": [{
                    +                "TableName": "demo_tbl",
                    +                "Where":"a>=5"
                    +              }]
                    +            }],
                    +            "SrcConnectionConfig": {
                    +              "Host": "mysql-src",
                    +              "Port": 3306,
                    +              "User": "root",
                    +              "Password": "pass"
                    +            },
                    +            "DestConnectionConfig": {
                    +              "Host": "mysql-dst2",
                    +              "Port": 3306,
                    +              "User": "root",
                    +              "Password": "pass"
                    +            }
                    +          }
                    +        }]
                    +      }, {
                    +        "Name": "dest",
                    +        "Tasks": [{
                    +          "Name": "dest",
                    +          "Driver": "dtle",
                    +          "Config": {
                    +            "DestType": "mysql"
                    +          }
                    +        }]
                    +    }]
                    +  }
                    +}
                    +

                    其中定义了:

                    +
                      +
                    • 源端/目标端的连接字符串
                    • +
                    • 要复制的表为demo.demo_tbl
                    • +
                    • demo_tbl的复制数据条件为a>=5
                    • +
                    +

                    其中与src1_dst.json不同的是:

                    +
                      +
                    • 源端的连接字符串
                    • +
                    • demo_tbl的复制数据条件
                    • +
                    +

                    创建复制任务

                    +
                    > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @src_dst1.json -s | jq
                    +< {...}
                    +
                    +> curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @src_dst2.json -s | jq
                    +< {...}
                    +

                    查看作业ID和状态:

                    +
                    > curl -XGET "127.0.0.1:4646/v1/jobs" -s | jq '.[] | .ID, .Status'
                    +< "dtle-demo-src-dst1"
                    +"running"
                    +"dtle-demo-src-dst2"
                    +"running"
                    +

                    测试

                    +

                    在src中插入数据, 查看dst1/dst2中的数据, 验证全量和增量的数据均存在

                    +
                    > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "insert into demo.demo_tbl values(0),(10)"
                    +< ...
                    +
                    +
                    +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "select * from demo.demo_tbl"
                    +< 
                    ++----+
                    +| a  |
                    ++----+
                    +|  0 |
                    +|  1 |
                    +|  2 |
                    +|  3 |
                    +|  4 |
                    ++----+
                    +
                    +> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e "select * from demo.demo_tbl"
                    +< 
                    ++----+
                    +| a  |
                    ++----+
                    +|  5 |
                    +|  6 |
                    +|  7 |
                    +|  8 |
                    +|  9 |
                    +| 10 |
                    ++----+
                    +
                    + +
                    + +
                    +
                    +
                    + +

                    results matching ""

                    +
                      + +
                      +
                      + +

                      No results matching ""

                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + + + + + + + + + + + + +
                      + + +
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.3_dc_to_dc_bidirectional.html b/2/2.3_dc_to_dc_bidirectional.html new file mode 100644 index 0000000..09d451e --- /dev/null +++ b/2/2.3_dc_to_dc_bidirectional.html @@ -0,0 +1,1179 @@ + + + + + + + 2.3.MySQL的跨数据中心的双向复制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      + + + + + + + + +
                      + +
                      + +
                      + + + + + + + + +
                      +
                      + +
                      +
                      + +
                      + +

                      MySQL的跨数据中心的双向复制

                      +

                      以下步骤以docker容器的方式快速演示如何搭建MySQL的跨数据中心的双向复制.

                      +

                      创建两个网络

                      +
                      docker network create dtle-net-dc1
                      +docker network create dtle-net-dc2
                      +

                      在两个网络中分别创建MySQL

                      +
                      docker run --name mysql-dc1 -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net-dc1 -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                      +
                      +docker run --name mysql-dc2 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net-dc2 -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2
                      +

                      检查MySQL是否启动成功:

                      +
                      > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                      +< *************************** 1. row ***************************
                      +@@version: 5.7.23-log
                      +
                      +> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "select @@version\G"
                      +< *************************** 1. row ***************************
                      +@@version: 5.7.23-log
                      +

                      在两个网络中分别创建dtle

                      +
                      docker run --name dtle-consul -p 8500:8500 --network=dtle-net-dc1 -d consul:latest
                      +docker run --name dtle-dc1 -p 4646:4646 --network=dtle-net-dc1 -d actiontech/dtle
                      +
                      +# dtle-dc2 will work as a client only. No need to start consul-dc2.
                      +docker run --name dtle-dc2 -p 5646:4646 --network=dtle-net-dc2 -d actiontech/dtle
                      +

                      将两个dtle通过公网连通

                      +
                      docker network create dtle-net-public
                      +docker network connect dtle-net-public dtle-dc1
                      +docker network connect dtle-net-public dtle-consul
                      +docker network connect dtle-net-public dtle-dc2
                      +

                      修改dtle的配置

                      +

                      修改容器dtle-dc1内的配置并重启

                      +

                      修改容器dtle-dc1内的配置并重启:

                      +
                      docker exec -u root -it dtle-dc1 vi /dtle/etc/dtle/nomad.hcl
                      +...
                      +docker exec -u root -it dtle-dc1 rm -rf /dtle/var/lib/nomad
                      +docker restart dtle-dc1
                      +

                      配置/dtle/etc/dtle/nomad.hcl修改的内容如下:

                      +
                      name = "nomad1" # rename for each node
                      +
                      +# ... (省略未更改项目)
                      +
                      +bind_addr = "172.22.0.2"
                      +advertise {
                      +  http = "172.22.0.2"
                      +  rpc  = "172.22.0.2"
                      +  serf = "172.22.0.2"
                      +}
                      +
                      +plugin "dtle" {
                      +  config {
                      +    nats_bind = "172.22.0.2:8193"
                      +    nats_advertise = "172.22.0.2:8193"
                      +    nomad_addr = "172.22.0.2:4646"
                      +    # ...
                      +  }
                      +}
                      +

                      其中:

                      +
                        +
                      • 由于dtle-dc1容器存在两个网络 (与MySQL通信的内网dtle-net-dc1, 和与dtle-dc2通信的公网dtle-net-public), 需要指定bind_addradvertise.rpc为本机的dtle-net-public的网络地址, 此处为172.22.0.2
                      • +
                      +

                      修改容器dtle-dc2内的配置并重启

                      +

                      修改容器dtle-dc2内的配置并重启:

                      +
                      docker exec -u root -it dtle-dc2 vi /dtle/etc/dtle/nomad.hcl
                      +...
                      +docker exec -u root -it dtle-dc2 rm -rf /dtle/var/lib/nomad
                      +docker restart dtle-dc2
                      +

                      配置/dtle/etc/dtle/nomad.hcl修改的内容如下:

                      +
                      name = "nomad2" # rename for each node
                      +
                      +# ... (省略未更改项目)
                      +
                      +bind_addr = "172.22.0.3"
                      +advertise {
                      +  http = "172.22.0.3"
                      +  rpc  = "172.22.0.3"
                      +  serf = "172.22.0.3"
                      +}
                      +
                      +server {
                      +  # 重要!
                      +  # 只有 dtle-dc1 作为server. dtle-dc2 仅作为 client.
                      +  enabled          = false
                      +}
                      +
                      +plugin "dtle" {
                      +  config {
                      +    nats_bind = "172.22.0.3:8193"
                      +    nats_advertise = "172.22.0.3:8193"
                      +    nomad_addr = "172.22.0.3:4646"
                      +    # ...
                      +  }
                      +}
                      +

                      其中:

                      +
                        +
                      • 由于dtle-dc2容器存在两个网络 (与MySQL通信的内网dtle-net-dc2, 和与dtle-dc1通信的公网dtle-net-public), 需要指定bind_addradvertise.rpc为本机的dtle-net-public的网络地址, 此处为172.22.0.3
                      • +
                      +

                      检查是否正常

                      +
                      > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                      +

                      或查看Web UI,确定我们构建了一个 1 server 2 client 的nomad部署。

                      +

                      配置dc1到dc2的复制

                      +

                      获取mysql-dc1的GTID:

                      +
                      > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "show master status\G" | grep "Executed_Gtid_Set"
                      +< Executed_Gtid_Set: 41f102d4-d29f-11e8-8de7-0242ac130002:1-5
                      +

                      准备文件job-dc1-dc2.json, 内容如下:

                      +
                      {
                      +  "Job": {
                      +    "ID":"dtle-demo-dc1-2-dc2",
                      +    "Datacenters": ["dc1"],
                      +    "TaskGroups": [{
                      +        "Name": "src",
                      +        "Tasks": [{
                      +          "Name": "src",
                      +          "Driver": "dtle",
                      +          "Constraints": [{
                      +            "LTarget": "${node.unique.name}",
                      +            "RTarget": "nomad1",
                      +            "Operand": "="
                      +          }],
                      +          "Config": {
                      +            "Gtid":"41f102d4-d29f-11e8-8de7-0242ac130002:1-5",
                      +            "ReplicateDoDb": [{
                      +              "TableSchema": "demo",
                      +              "Tables": [{
                      +                "TableName": "demo_tbl"
                      +              }]
                      +            }],
                      +            "SrcConnectionConfig": {
                      +              "Host":"mysql-dc1",
                      +              "Port": 3306,
                      +              "User": "root",
                      +              "Password": "pass"
                      +            },
                      +            "DestConnectionConfig": {
                      +              "Host":"mysql-dc2",
                      +              "Port": 3306,
                      +              "User": "root",
                      +              "Password": "pass"
                      +            }
                      +          }
                      +        }]
                      +      }, {
                      +        "Name": "dest",
                      +        "Tasks": [{
                      +          "Name": "dest",
                      +          "Driver": "dtle",
                      +          "Constraints": [{
                      +            "LTarget": "${node.unique.name}",
                      +            "RTarget": "nomad2",
                      +            "Operand": "="
                      +          }],
                      +          "Config": {
                      +            "DestType": "mysql"
                      +          }
                      +        }]
                      +    }]
                      +  }
                      +}
                      +

                      其中定义了:

                      +
                        +
                      • 源端/目标端的连接字符串
                      • +
                      • 要复制的表为demo.demo_tbl
                      • +
                      • GTID点位, 表示此复制是 增量复制 (双向复制 只支持增量复制)
                      • +
                      • 源任务(src)配置在dc1的dtle节点上执行 (通过 Constraints 指定)
                      • +
                      • 目标任务(dest)配置在dc2的dtle节点上执行 (通过 Constraints 指定)
                      • +
                      +

                      创建dc1到dc2的复制任务

                      +
                      > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job-dc1-dc2.json -s | jq
                      +

                      查看作业状态

                      +
                      > curl -XGET "127.0.0.1:4646/v1/job/dtle-demo-dc1-2-dc2" -s | jq '.Status'
                      +< "running"
                      +

                      配置dc2到dc1的复制

                      +

                      获取mysql-dc2的GTID:

                      +
                      > mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e "show master status\G" 
                      +< *************************** 1. row ***************************
                      +             File: bin.000003
                      +         Position: 537
                      +     Binlog_Do_DB:
                      + Binlog_Ignore_DB:
                      +Executed_Gtid_Set: 41f102d4-d29f-11e8-8de7-0242ac130002:6-7,
                      +42158e2f-d29f-11e8-b322-0242ac150002:1-5
                      +

                      准备文件job-dc2-dc1.json, 内容如下:

                      +
                      {
                      +  "Job": {
                      +    "ID":"dtle-demo-dc2-2-dc1",
                      +    "Datacenters": ["dc1"],
                      +    "TaskGroups": [{
                      +        "Name": "src",
                      +        "Tasks": [{
                      +          "Name": "src",
                      +          "Driver": "dtle",
                      +          "Constraints": [{
                      +            "LTarget": "${node.unique.name}",
                      +            "RTarget": "nomad2",
                      +            "Operand": "="
                      +          }],
                      +          "Config": {
                      +            "Gtid":"41f102d4-d29f-11e8-8de7-0242ac130002:6-7,42158e2f-d29f-11e8-b322-0242ac150002:1-5",
                      +            "ReplicateDoDb": [{
                      +              "TableSchema": "demo",
                      +              "Tables": [{
                      +                "TableName": "demo_tbl"
                      +              }]
                      +            }],
                      +            "SrcConnectionConfig": {
                      +              "Host":"mysql-dc2",
                      +              "Port": 3306,
                      +              "User": "root",
                      +              "Password": "pass"
                      +            },
                      +            "DestConnectionConfig": {
                      +              "Host":"mysql-dc1",
                      +              "Port": 3306,
                      +              "User": "root",
                      +              "Password": "pass"
                      +            }
                      +          }
                      +        }]
                      +      }, {
                      +        "Name": "dest",
                      +        "Tasks": [{
                      +          "Name": "dest",
                      +          "Driver": "dtle",
                      +          "Constraints": [{
                      +            "LTarget": "${node.unique.name}",
                      +            "RTarget": "nomad1",
                      +            "Operand": "="
                      +          }],
                      +          "Config": {
                      +            "DestType": "mysql"
                      +          }
                      +        }]
                      +    }]
                      +  }
                      +}
                      +

                      其中与 dc1到dc2的复制任务 不同的是:

                      +
                        +
                      • 源端/目标端的连接字符串
                      • +
                      • GTID点位
                      • +
                      • 源任务(src)配置在dc2的dtle节点上执行
                      • +
                      • 目标任务(dest)配置在dc1的dtle节点上执行
                      • +
                      +

                      创建dc2到dc1的复制任务

                      +
                      > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job-dc2-dc1.json -s | jq
                      +

                      查看作业状态

                      +
                      > curl -XGET "127.0.0.1:4646/v1/job/dtle-demo-dc2-2-dc1" -s | jq '.Status'
                      +< "running"
                      +

                      测试

                      +

                      此时可在任一端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致

                      +

                      数据冲突

                      +

                      dtle不检测数据冲突。如果回放报错(如应数据冲突导致update了不存在的列),则job报错。

                      +

                      其中,DML insert使用replace回放,故insert冲突时,效果是last-win。

                      +

                      建议由业务端确保数据不会冲突。

                      + + +
                      + +
                      +
                      +
                      + +

                      results matching ""

                      +
                        + +
                        +
                        + +

                        No results matching ""

                        + +
                        +
                        +
                        + +
                        +
                        + +
                        + + + + + + + + + + + + + + +
                        + + +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.4_ali_to_jd.html b/2/2.4_ali_to_jd.html new file mode 100644 index 0000000..03807e3 --- /dev/null +++ b/2/2.4_ali_to_jd.html @@ -0,0 +1,1034 @@ + + + + + + + 2.4.阿里云到京东云的MySQL复制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        + + + + + + + + +
                        + +
                        + +
                        + + + + + + + + +
                        +
                        + +
                        +
                        + +
                        + +

                        阿里云到京东云的MySQL复制

                        +

                        以下步骤演示如何搭建从阿里云RDS到京东云RDS的MySQL复制.

                        +

                        检查阿里云RDS的环境

                        +

                        MySQL版本为5.7.18

                        +

                        检查权限:

                        +
                        mysql> select user();
                        ++---------------------+
                        +| user()              |
                        ++---------------------+
                        +| root@180.169.60.146 |
                        ++---------------------+
                        +1 row in set (0.02 sec)
                        +
                        +
                        +mysql> show grants for 'root'@'%' \G
                        +*************************** 1. row ***************************
                        +Grants for root@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' WITH GRANT OPTION
                        +1 row in set (0.02 sec)
                        +

                        检查京东云RDS的环境

                        +

                        MySQL版本为5.7.21

                        +

                        注意: 京东云RDS实例的用户权限是以schema为基础的. 需要在创建迁移job前,通过京东云RDS为该MySQL实例创建两个schema: dtle(存储dtle元数据) 和 迁移的目标库

                        +
                        mysql> select user();
                        ++---------------------------+
                        +| user()                    |
                        ++---------------------------+
                        +| actiontech@180.169.60.146 |
                        ++---------------------------+
                        +1 row in set (0.00 sec)
                        +
                        +
                        +mysql> show grants for 'actiontech'@'%';
                        ++------------------------------------------------------------+
                        +| Grants for actiontech@%                                    |
                        ++------------------------------------------------------------+
                        +| GRANT USAGE ON *.* TO 'actiontech'@'%'                     |
                        +| GRANT ALL PRIVILEGES ON `actiontech`.* TO 'actiontech'@'%' |
                        ++------------------------------------------------------------+
                        +2 rows in set (0.00 sec)
                        +

                        申请京东云ECS

                        +

                        需要申请京东云ECS, 用于

                        +

                        示例主机IP为192.168.0.17, 规格是1c4g40g

                        +

                        安装并配置dtle

                        +

                        安装dtle:

                        +
                        rpm -ivh dtle-xxx.rpm
                        +

                        配置 /etc/dtle/nomad.hcl:

                        +
                        # 省略未修改配置
                        +bind_addr = "192.168.0.17"
                        +
                        +advertise {
                        +  http = "192.168.0.17"
                        +  rpc = "192.168.0.17"
                        +  serf = "192.168.0.17"
                        +}
                        +

                        启动dtle:

                        +
                        systemctl start dtle-consul dtle-nomad
                        +

                        增加复制任务

                        +

                        复制配置文件 job.json 内容如下:

                        +
                        {
                        +  "Job": {
                        +    "ID":"ali-jd-demo",
                        +    "Datacenters": ["dc1"],
                        +    "TaskGroups": [{
                        +        "Name": "src",
                        +        "Tasks": [{
                        +          "Name": "src",
                        +          "Driver": "dtle",
                        +          "Config": {
                        +            "Gtid":"",
                        +            "ReplicateDoDb": [{
                        +              "TableSchema": "actiontech",
                        +              "Tables": []
                        +            }],
                        +            "SrcConnectionConfig": {
                        +              "Host":"rm-xxxx.mysql.rds.aliyuncs.com",
                        +              "Port":"3306",
                        +              "User":"root",
                        +              "Password":"Acti0ntech"
                        +            },
                        +            "DestConnectionConfig": {
                        +              "Host":"mysql-cn-east-2-yyyy.public.jcloud.com",
                        +              "Port":"3306",
                        +              "User":"actiontech",
                        +              "Password":"Acti0ntech"
                        +            }
                        +          }
                        +        }]
                        +      }, {
                        +        "Name": "dest",
                        +        "Tasks": [{
                        +          "Name": "dest",
                        +          "Driver": "dtle",
                        +          "Config": {
                        +            "DestType": "mysql"
                        +          }
                        +        }]
                        +    }]
                        +  }
                        +}
                        +

                        向dtle发布任务:

                        +
                        curl -XPOST "192.168.0.17:4646/v1/jobs" -d @job.json
                        +

                        检查任务运行状态:

                        +
                        curl -XGET "192.168.0.17:4646/v1/job/ali-jd-demo" -s | jq '.Status'
                        +

                        其他

                        +

                        如要使用链路压缩等功能, 可参照MySQL的跨数据中心的双向复制

                        +

                        consul 默认只能从从本机查询。若要从外部访问KV,请更改/etc/dtle/consul.hcl中的 client_addr 。 +并相应配置nomad.hcl。

                        + + +
                        + +
                        +
                        +
                        + +

                        results matching ""

                        +
                          + +
                          +
                          + +

                          No results matching ""

                          + +
                          +
                          +
                          + +
                          +
                          + +
                          + + + + + + + + + + + + + + +
                          + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.5_mysql_kafka.html b/2/2.5_mysql_kafka.html new file mode 100644 index 0000000..ad4ed50 --- /dev/null +++ b/2/2.5_mysql_kafka.html @@ -0,0 +1,1037 @@ + + + + + + + 2.5.MySQL到Kafka的数据变更通知 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          + + + + + + + + +
                          + +
                          + +
                          + + + + + + + + +
                          +
                          + +
                          +
                          + +
                          + +

                          MySQL到Kafka的数据变更通知

                          +

                          以下步骤以docker容器的方式快速演示如何搭建MySQL的单向复制环境.

                          +

                          创建网络

                          +
                          docker network create dtle-net
                          +

                          创建源端 MySQL

                          +
                          docker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                          +

                          检查是否联通:

                          +
                          > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                          +< *************************** 1. row ***************************
                          +@@version: 5.7.23-log
                          +

                          创建源端表结构

                          +
                          > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)"
                          +

                          创建目标端 Kafka

                          +
                          docker run --name kafka-zookeeper -p 2181:2181 -e ALLOW_ANONYMOUS_LOGIN=yes --network=dtle-net -d bitnami/zookeeper
                          +docker run --name kafka-dst -p 9092:9092 -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 -e ALLOW_PLAINTEXT_LISTENER=yes --network=dtle-net -d bitnami/kafka
                          +

                          检查是否联通:

                          +
                          > docker run -it --rm \
                          +    --network dtle-net \
                          +    -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \
                          +    bitnami/kafka:latest kafka-topics.sh --list  --zookeeper kafka-zookeeper:2181
                          +< Welcome to the Bitnami kafka container
                          +Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-kafka
                          +Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-kafka/issues
                          +

                          创建 dtle

                          +
                          docker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest
                          +docker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle
                          +

                          检查是否正常:

                          +
                          > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                          +< [{...}]
                          +

                          准备作业定义文件

                          +

                          准备文件job.json, 内容如下:

                          +
                          {
                          +  "Job": {
                          +    "ID": "dtle-demo",
                          +    "Datacenters": ["dc1"],
                          +    "TaskGroups": [{
                          +        "Name": "src",
                          +        "Tasks": [{
                          +          "Name": "src",
                          +          "Driver": "dtle",
                          +          "Config": {
                          +            "Gtid": "",
                          +            "ReplicateDoDb": [{
                          +              "TableSchema": "demo",
                          +              "Tables": [{
                          +                "TableName": "demo_tbl"
                          +              }]
                          +            }],
                          +            "SrcConnectionConfig": {
                          +              "Host": "mysql-src",
                          +              "Port": 3306,
                          +              "User": "root",
                          +              "Password": "pass"
                          +            },
                          +            "KafkaConfig": {
                          +              "Topic": "demo-topic",
                          +              "Brokers": ["kafka-dst:9092"],
                          +              "Converter": "json"
                          +            }
                          +          }
                          +        }]
                          +      }, {
                          +        "Name": "dest",
                          +        "Tasks": [{
                          +          "Name": "dest",
                          +          "Driver": "dtle",
                          +          "Config": {
                          +            "DestType": "kafka"
                          +          }
                          +        }]
                          +    }]
                          +  }
                          +}
                          +

                          其中定义了:

                          +
                            +
                          • 源端 MySQL 的连接字符串
                          • +
                          • 目标端 Kafka 的 broker 访问地址
                          • +
                          • 要复制的表为demo.demo_tbl
                          • +
                          • GTID点位为空, 表示此复制是 全量+增量 的复制. 如只测试增量复制, 可指定合法的GTID
                          • +
                          +

                          创建复制任务

                          +
                          > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job.json -s | jq
                          +< {...}
                          +

                          查看作业状态:

                          +
                          > curl -XGET "127.0.0.1:4646/v1/job/dtle-demo" -s | jq '.Status'
                          +< "running"
                          +

                          测试

                          +

                          在源端写入数据:

                          +
                          > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "INSERT INTO demo.demo_tbl values(1)"
                          +...
                          +

                          验证相关的topic存在:

                          +
                          > docker run -it --rm \
                          +    --network dtle-net \
                          +    -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \
                          +    bitnami/kafka:latest kafka-topics.sh --list  --zookeeper kafka-zookeeper:2181
                          +< Welcome to the Bitnami kafka container
                          +Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-kafka
                          +Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-kafka/issues
                          +
                          +demo-topic.demo.demo_tbl
                          +

                          验证数据:

                          +
                          > docker run -it --rm \
                          +    --network dtle-net \
                          +    -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \
                          +    bitnami/kafka:latest kafka-console-consumer.sh --bootstrap-server kafka-dst:9092 --topic demo-topic.demo.demo_tbl --from-beginning
                          +< ...
                          +{"schema":{"type":"struct","optional":false,"fields":[{"type":"struct","optional":true,"field":"before","fields":[{"type":"int32","optional":false,"field":"a"}],"name":"demo-topic.demo.demo_tbl.Value"},{"type":"struct","optional":true,"field":"after","fields":[{"type":"int32","optional":false,"field":"a"}],"name":"demo-topic.demo.demo_tbl.Value"},{"type":"struct","optional":false,"field":"source","fields":[{"type":"string","optional":true,"field":"version"},{"type":"string","optional":false,"field":"name"},{"type":"int64","optional":false,"field":"server_id"},{"type":"int64","optional":false,"field":"ts_sec"},{"type":"string","optional":true,"field":"gtid"},{"type":"string","optional":false,"field":"file"},{"type":"int64","optional":false,"field":"pos"},{"type":"int32","optional":false,"field":"row"},{"type":"boolean","optional":true,"field":"snapshot"},{"type":"int64","optional":true,"field":"thread"},{"type":"string","optional":true,"field":"db"},{"type":"string","optional":true,"field":"table"}],"name":"io.debezium.connector.mysql.Source"},{"type":"string","optional":false,"field":"op"},{"type":"int64","optional":true,"field":"ts_ms"}],"name":"demo-topic.demo.demo_tbl.Envelope","version":1},"payload":{"before":null,"after":{"a":11},"source":{"version":"0.0.1","name":"demo-topic","server_id":0,"ts_sec":0,"gtid":null,"file":"","pos":0,"row":1,"snapshot":true,"thread":null,"db":"demo","table":"demo_tbl"},"op":"c","ts_ms":1539760682507}}
                          +

                          此时可在源端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致

                          +

                          关于Kafka的消息格式, 参看5.3 Kafka 消息格式

                          + + +
                          + +
                          +
                          +
                          + +

                          results matching ""

                          +
                            + +
                            +
                            + +

                            No results matching ""

                            + +
                            +
                            +
                            + +
                            +
                            + +
                            + + + + + + + + + + + + + + +
                            + + +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.6_oracle_mysql.html b/2/2.6_oracle_mysql.html new file mode 100644 index 0000000..495316d --- /dev/null +++ b/2/2.6_oracle_mysql.html @@ -0,0 +1,1074 @@ + + + + + + + 2.6.Oracle到MySQL的数据同步 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            + + + + + + + + +
                            + +
                            + +
                            + + + + + + + + +
                            +
                            + +
                            +
                            + +
                            + +

                            Oracle到MySQL的数据同步

                            +

                            以下步骤以docker容器的方式快速演示如何搭建Oracle到MySQL的单向复制环境.

                            +

                            创建网络

                            +
                            docker network create dtle-net
                            +

                            创建源端 Oracle

                            +
                              # 启动oracle镜像
                            +    docker run -it -d -p 1521:1521 --name oracle-src --network=dtle-net  -e ORACLE_ALLOW_REMOTE=true  wnameless/oracle-xe-11g-r2
                            +
                            +  # 环境配置并启动oracle
                            +    docker exec -it oracle-src bash
                            +    mkdir /u01/app/oracle/oradata/archive_log
                            +    chown oracle /u01/app/oracle/oradata/archive_log
                            +
                            +    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
                            +    export PATH=$ORACLE_HOME/bin:$PATH
                            +    export ORACLE_SID=XE
                            +
                            +    service oracle-xe start
                            +
                            +  # 设置同步配置
                            +    sqlplus SYS/oracle AS SYSDBA  
                            +    alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/archive_log' scope=spfile;
                            +    alter system set db_recovery_file_dest_size = 10G;
                            +
                            +    shutdown immediate;
                            +    startup mount;
                            +    alter database add logfile group 3 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo01.log' size 500m;
                            +    alter database add logfile group 4 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo02.log' size 500m;
                            +    alter database add logfile group 5 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo03.log' size 500m;
                            +    alter database archivelog;
                            +    alter database add supplemental log data (all) columns;
                            +    alter database open;
                            +
                            +  # 创建同步账号
                            +    create role roma_logminer_privs;
                            +    grant create session,execute_catalog_role,select any transaction,select_catalog_role,select any dictionary to roma_logminer_privs;
                            +    grant select on SYSTEM.LOGMNR_COL$ to roma_logminer_privs;
                            +    grant select on SYSTEM.LOGMNR_OBJ$ to roma_logminer_privs;
                            +    grant select on SYSTEM.LOGMNR_USER$ to roma_logminer_privs;
                            +    grant select on SYSTEM.LOGMNR_UID$ to roma_logminer_privs;
                            +    create user roma_logminer identified by oracle default tablespace users;
                            +    grant roma_logminer_privs to roma_logminer;
                            +    alter user roma_logminer quota unlimited on users;
                            +

                            创建目标端 MySQL

                            +
                            docker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1
                            +

                            检查是否联通:

                            +
                            > mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e "select @@version\G"
                            +< *************************** 1. row ***************************
                            +@@version: 5.7.23-log
                            +

                            创建 dtle

                            +
                            docker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest
                            +docker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle
                            +# 如需要使用dtle 2.x HTTP API兼容层,则需要额外映射8190端口:-p 8190:8190
                            +

                            检查是否正常:

                            +
                            > curl -XGET "127.0.0.1:4646/v1/nodes" -s | jq
                            +< [
                            +    {
                            +      "Address": "127.0.0.1",
                            +      "Datacenter": "dc1",
                            +      "Drivers": {
                            +        "dtle": {
                            +          "Attributes": {
                            +            "driver.dtle": "true",
                            +            "driver.dtle.version": "..."
                            +          },
                            +          "Detected": true,
                            +          "Healthy": true,
                            +        }
                            +      },
                            +      "ID": "65ff2f9a-a9fa-997c-cce0-9bc0b4f3396c",
                            +      "Name": "nomad0",
                            +      "Status": "ready",
                            +    }
                            +  ]
                            +# (部分项目省略)
                            +

                            准备作业定义文件

                            +

                            准备文件job.json, 内容如下:

                            +
                            {
                            +  "Job": {
                            +    "ID": "dtle-demo",
                            +    "Datacenters": ["dc1"],
                            +    "TaskGroups": [{
                            +      "Name": "src",
                            +      "Tasks": [{
                            +        "Name": "src",
                            +        "Driver": "dtle",
                            +        "Config": {
                            +          "ReplicateDoDb": [{
                            +            "TableSchema": "TEST",
                            +            "Tables": [{
                            +              "TableName": "t1"
                            +            }]
                            +          }],
                            +          "SrcOracleConfig": {
                            +            "User":        "roma_logminer",
                            +            "Password":    "oracle",
                            +            "Host":        "oracle-src",
                            +            "Port":        1521,
                            +            "ServiceName": "XE",
                            +            "Scn": 0
                            +          },
                            +          "DestConnectionConfig": {
                            +            "Host": "mysql-dst",
                            +            "Port": 3306,
                            +            "User": "root",
                            +            "Password": "pass"
                            +          }
                            +        }
                            +      }]
                            +    }, {
                            +      "Name": "dest",
                            +      "Tasks": [{
                            +        "Name": "dest",
                            +        "Driver": "dtle",
                            +        "Config": {
                            +          "DestType": "mysql"
                            +        }
                            +    }]
                            +   }]
                            +  }
                            +}
                            +
                            +

                            其中定义了:

                            +
                              +
                            • 源端 Oracle 的连接配置
                            • +
                            • 目标端 MySQL 的连接配置
                            • +
                            • 要复制的表为TEST.t1
                            • +
                            • SCN点位为0, 表示此复制是从任务启动时间点开始复制. 如需测试指定位置增量复制, 可指定合法的SCN
                            • +
                            +

                            创建复制任务

                            +
                            > curl -XPOST "http://127.0.0.1:4646/v1/jobs" -d @job.json -s | jq
                            +< {...}
                            +

                            查看作业状态:

                            +
                            > curl -XGET "127.0.0.1:4646/v1/job/dtle-demo" -s | jq '.Status'
                            +< "running"
                            +

                            测试

                            +

                            在源端写入数据:

                            +
                              sqlplus SYS/oracle AS SYSDBA  
                            +  create user TEST identified by oracle;
                            +  grant connect,resource to TEST;
                            +  create table TEST."t1" (id int,name varchar(255));
                            +  insert into TEST."t1" values(1,'ryan');
                            +  commit;
                            +

                            验证目标端数据

                            +
                              查看目标端数据是否一致
                            +

                            字段映射关系参看 5.4 Oracle MySQL 字段映射

                            + + +
                            + +
                            +
                            +
                            + +

                            results matching ""

                            +
                              + +
                              +
                              + +

                              No results matching ""

                              + +
                              +
                              +
                              + +
                              +
                              + +
                              + + + + + + + + + + + + + + +
                              + + +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/2.7_multi_node.html b/2/2.7_multi_node.html new file mode 100644 index 0000000..2ebfad5 --- /dev/null +++ b/2/2.7_multi_node.html @@ -0,0 +1,992 @@ + + + + + + + 2.7.多nomad server部署 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +
                              + + + + + + + + +
                              + +
                              + +
                              + + + + + + + + +
                              +
                              + +
                              +
                              + +
                              + +

                              多server部署配置

                              +

                              nomad可以配置成

                              +
                                +
                              • 单server,单client
                              • +
                              • 单server,多client
                              • +
                              • 多server,多client
                              • +
                              +

                              其中

                              +
                                +
                              • server管理job数据
                              • +
                              • server数量为奇数,一般使用1或3个,不超过5个。
                              • +
                              • client(运行dtle插件)执行job
                              • +
                              • client数量任意
                              • +
                              • server和client可运行于同一进程,也可单独启动server或client
                              • +
                              +

                              需另外运行consul,用于

                              +
                                +
                              • nomad 服务发现(多节点自动注册)
                              • +
                              • dtle 保存运行信息
                              • +
                              +

                              一般每个nomad server搭配一个consul server,两者运行于同一台主机。

                              +

                              下面描述 多server多client配置

                              +

                              consul配置

                              +

                              修改 /etc/dtle/consul.hcl

                              +
                              # Rename for each node
                              +node_name = "consul1"
                              +
                              +# 配置IP
                              +
                              +# Address that should be bound to for internal cluster communications
                              +bind_addr = "0.0.0.0"
                              +# Address to which Consul will bind client interfaces, including the HTTP and DNS servers
                              +client_addr = "127.0.0.1"
                              +advertise_addr = "127.0.0.1"
                              +
                              +# ... 省略未更改项
                              +
                              +bootstrap_expect = 3
                              +retry_join = ["127.0.0.1", "127.0.0.2", "127.0.0.3"] # will use default serf port
                              +

                              为另外两个节点也做出修改。

                              +

                              全部启动后,从Web UI中可以看出,组成了3节点consul,其中一个为Leader。

                              +

                              +

                              nomad配置

                              +

                              修改 /etc/dtle/nomad.hcl:

                              +
                              name = "nomad1" # rename for each node
                              +# ... 省略未更改项
                              +advertise {
                              +  http = "127.0.0.1:4646"
                              +  rpc  = "127.0.0.1:4647"
                              +  serf = "127.0.0.1:4648"
                              +}
                              +server {
                              +  enabled          = true
                              +  bootstrap_expect = 3
                              +}
                              +consul {
                              +  address = "127.0.0.1:8500"
                              +}
                              +plugin "dtle" {
                              +  config {
                              +    # ... 省略未更改项
                              +    nats_bind = "127.0.0.1:8193"
                              +    nats_advertise = "127.0.0.1:8193"
                              +    consul = "127.0.0.1:8500"
                              +    nomad_addr = "127.0.0.1:4646" # compatibility API need to access a nomad server
                              +  }
                              +}
                              +

                              全部启动后, nomad将自动向consul注册,组成集群:

                              +

                              +

                              + + +
                              + +
                              +
                              +
                              + +

                              results matching ""

                              +
                                + +
                                +
                                + +

                                No results matching ""

                                + +
                                +
                                +
                                + +
                                +
                                + +
                                + + + + + + + + + + +
                                + + +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2/consul-3.png b/2/consul-3.png new file mode 100644 index 0000000..a4960e3 Binary files /dev/null and b/2/consul-3.png differ diff --git a/2/nomad-client.png b/2/nomad-client.png new file mode 100644 index 0000000..80b7b84 Binary files /dev/null and b/2/nomad-client.png differ diff --git a/2/nomad-server.png b/2/nomad-server.png new file mode 100644 index 0000000..06243ff Binary files /dev/null and b/2/nomad-server.png differ diff --git a/3/3.0_function_scenario_mapping.html b/3/3.0_function_scenario_mapping.html new file mode 100644 index 0000000..c9fd768 --- /dev/null +++ b/3/3.0_function_scenario_mapping.html @@ -0,0 +1,1241 @@ + + + + + + + 3.0.功能/场景的映射列表 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                + + + + + + + + +
                                + +
                                + +
                                + + + + + + + + +
                                +
                                + +
                                +
                                + +
                                + +

                                功能/场景的映射列表

                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                场景复制手段(binlog-binlog)复制手段(binlog-sql)复制模式(全量+增量)复制模式(增量)
                                单个MySQL 单向复制到 单个MySQL支持支持支持支持
                                单个MySQL 双向复制到 单个MySQL支持支持-支持
                                多个MySQL的表 合并到 单个MySQL支持支持支持支持
                                单个MySQL的不同表 分发到 多个MySQL支持支持支持支持
                                单个MySQL的同一表的不同记录 分发 到 多个MySQL支持按主键分发; 不支持按函数分发支持支持支持按主键分发; 不支持按函数分发
                                公有云间的数据同步不支持支持支持支持
                                单个MySQL复制到Kafka--支持支持
                                多个MySQL复制到Kafka--支持支持
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                场景复制对象(整库复制)复制对象(整表复制)复制对象(按条件复制部分记录)
                                单个MySQL 单向复制到 单个MySQL支持支持支持
                                单个MySQL 双向复制到 单个MySQL支持; 不支持建表语句包含if not exists #361支持支持
                                多个MySQL的表 合并到 单个MySQL-支持支持
                                单个MySQL的不同表 分发到 多个MySQL-支持支持
                                单个MySQL的同一表的不同记录 分发 到 多个MySQL-支持支持
                                公有云间的数据同步支持支持支持
                                单个MySQL复制到Kafka支持支持支持
                                多个MySQL复制到Kafka支持支持支持
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                场景复制链路(链路压缩)复制链路(跨网络边际)回访模式(并行回放)
                                单个MySQL 单向复制到 单个MySQL支持支持支持
                                单个MySQL 双向复制到 单个MySQL支持支持支持
                                多个MySQL的表 合并到 单个MySQL支持支持支持
                                单个MySQL的不同表 分发到 多个MySQL支持支持支持
                                单个MySQL的同一表的不同记录 分发 到 多个MySQL支持支持支持
                                公有云间的数据同步支持支持支持
                                单个MySQL复制到Kafka支持支持-
                                多个MySQL复制到Kafka支持支持-
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                场景自动创建表结构支持DDLAgent 水平扩展
                                单个MySQL 单向复制到 单个MySQL支持支持支持
                                单个MySQL 双向复制到 单个MySQL-支持支持
                                多个MySQL的表 合并到 单个MySQL支持支持支持
                                单个MySQL的不同表 分发到 多个MySQL支持支持支持
                                单个MySQL的同一表的不同记录 分发 到 多个MySQL支持支持按主键分发; 不支持按函数分发支持按主键分发; 不支持按函数分发
                                公有云间的数据同步支持支持支持
                                单个MySQL复制到Kafka支持不支持支持
                                多个MySQL复制到Kafka支持不支持支持
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                场景高可用(故障转移)高可用(断点续做)任务暂停/恢复监控
                                单个MySQL 单向复制到 单个MySQL支持支持支持支持
                                单个MySQL 双向复制到 单个MySQL支持支持支持支持
                                多个MySQL的表 合并到 单个MySQL支持支持支持支持
                                单个MySQL的不同表 分发到 多个MySQL支持支持支持支持
                                单个MySQL的同一表的不同记录 分发 到 多个MySQL支持按主键分发; 不支持按函数分发支持按主键分发; 不支持按函数分发支持按主键分发; 不支持按函数分发支持
                                公有云间的数据同步支持支持支持支持
                                单个MySQL复制到Kafka支持不支持支持支持
                                多个MySQL复制到Kafka支持不支持支持支持
                                + + +
                                + +
                                +
                                +
                                + +

                                results matching ""

                                +
                                  + +
                                  +
                                  + +

                                  No results matching ""

                                  + +
                                  +
                                  +
                                  + +
                                  +
                                  + +
                                  + + + + + + + + + + +
                                  + + +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.10_consul.html b/3/3.10_consul.html new file mode 100644 index 0000000..15f8adc --- /dev/null +++ b/3/3.10_consul.html @@ -0,0 +1,948 @@ + + + + + + + 3.10.consul 上的 job 数据管理 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  +
                                  + + + + + + + + +
                                  + +
                                  + +
                                  + + + + + + + + +
                                  +
                                  + +
                                  +
                                  + +
                                  + +

                                  consul 上的 job 数据管理

                                  +

                                  dtle 3.x作为nomad插件运行,并且需要consul伴随执行。

                                  +

                                  部分job信息储存在了consul上。其中最重要的是进度,即 Gtid 或 BinlogFile & Pos。

                                  +

                                  查看方法(以默认consul地址为例):

                                  +
                                  # 使用raw查看原始值
                                  +$ curl -XGET "127.0.0.1:8500/v1/kv/dtle/job_name/Gtid?raw"
                                  +acd7d195-06cd-11e9-928f-02000aba3e28:1-143934
                                  +
                                  +$ curl -XGET "127.0.0.1:8500/v1/kv/dtle/job_name/BinlogPos?raw"
                                  +bin.000075//dtle//11909
                                  +
                                    +
                                  • 注意Gtid可能有多行,需要完整记录。
                                  • +
                                  • BinlogFile & Pos 使用 //dtle// 分割。
                                  • +
                                  +

                                  为了使用户能够记录进度,job删除后,dtle不会自动删除consul上的信息.

                                  +

                                  重建Job时,若consul上已有进度,则会使用consul上的进度(而非job配置中的起点)。

                                  +

                                  已删除的Job需要自行删除consul上的信息:

                                  +
                                  # 使用recurse删除job_name下所有项目
                                  +$ curl -XDELETE "127.0.0.1:8500/v1/kv/dtle/job_name?recurse"
                                  +

                                  或者使用浏览器访问 127.0.0.1:8500, 使用Web UI管理。

                                  + + +
                                  + +
                                  +
                                  +
                                  + +

                                  results matching ""

                                  +
                                    + +
                                    +
                                    + +

                                    No results matching ""

                                    + +
                                    +
                                    +
                                    + +
                                    +
                                    + +
                                    + + + + + + + + + + + + + + +
                                    + + +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.11_oracle_mysql.html b/3/3.11_oracle_mysql.html new file mode 100644 index 0000000..16dc9e1 --- /dev/null +++ b/3/3.11_oracle_mysql.html @@ -0,0 +1,1148 @@ + + + + + + + 3.11.Oracle MySQL同步支持 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    + + + + + + + + +
                                    + +
                                    + +
                                    + + + + + + + + +
                                    +
                                    + +
                                    +
                                    + +
                                    + +

                                    CDC场景

                                    +

                                    全量复制

                                    +
                                      +
                                    • 任务启动时间点开始,将指定库表结构数据传输到目标端
                                    • +
                                    +

                                    全量流程

                                    +
                                      +
                                    1. 获取当前所需同步的库/表,从服务器上的redo日志获取当前系统改变号(SCN)的位置
                                    2. +
                                    3. 获取同步表的ROW SHARE LOCK,以防止在创建快照期间表结构发生变化
                                    4. +
                                    5. 获取同步的库/表的结构信息,同步到目标端
                                    6. +
                                    7. 释放ROW SHARE LOCK
                                    8. +
                                    9. 依据步骤3读取的SCN位置,全表扫描所有相关数据库表和schema
                                      例:
                                      +SELECT * FROM SCHEMA.TABLE AS OF SCN 123  where ROWNUM <= 2000
                                      +minus 
                                      +SELECT * FROM SCHEMA.TABLE AS OF SCN 123  where ROWNUM < 1
                                      +
                                    10. +
                                    11. 传输完所有的表数据,继续增量同步
                                    12. +
                                    +

                                    限制

                                    +

                                    全量同步过程,表结构同步完成前,不支持对同步的表做DDL操作

                                    +

                                    增量复制

                                    +
                                      +
                                    • 根据SCN节点开启增量复制
                                    • +
                                    • 从任务启动时间开启增量复制
                                    • +
                                    +

                                    DML支持

                                    +

                                    DML类型

                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    DML类型optionOracle SQLMySQL SQL其他
                                    INSERTINSERT INTO TEST.CHARACTER_256_COLUMNS VALUES (4, NULL);replace into `TEST`.`CHAR_256_COLUMNS`(`COL1`, `COL2`)values(?, ?)args=[0, ]
                                    UPDATEUPDATE TEST.CHAR_20000_COLUMNS SET COL2='a a b ' WHERE COL1=2;update `TEST`.`CHAR_256_COLUMNS` set`COL1`=?, `COL2`=?where((`COL1` = ?) and (`COL2` = ?)) limit 1args=[3, "a a", 3, "a a"]
                                    DELETEDELETE FROM TEST.CHAR_256_COLUMNS WHERE COL1 = 5;delete from `TEST`.`CHAR_256_COLUMNS` where((`COL1` = ?) and (`COL2` = ?)) limit 1args=[5, "ABCDEFGHIJKLMNOPQRSTUVWXYZ "]
                                    +

                                    函数支持

                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    函数名是否支持其他
                                    EMPTY_BLOB函数支持解析为NULL
                                    EMPTY_CLOB函数支持解析为NULL
                                    CHR
                                    HEXTORAW
                                    DATE
                                    TO_DATE
                                    TO_DSINTERVAL
                                    TO_YMINTERVAL
                                    RAWTOHEX
                                    UNISTR
                                    RAWTOHEX(CHR(34))
                                    TO_TIMESTAMP
                                    LOCALTIMESTAMP
                                    CURRENT_TIMESTAMP
                                    SYSTIMESTAMP
                                    +

                                    DDL支持

                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    SQL类型OptionOracle SQL转化后MySQL SQL语法支持
                                    CREATE TABLE不带约束CREATE TABLE "test"."CaseInsensitive" ("firstName" VARCHAR(15) NOT NULL,lastName VARCHAR2(45) NOT NULL)CREATE TABLE `test`.`CaseInsensitive` (`firstName` VARCHAR(15) NOT NULL,`LASTNAME` VARCHAR(45) NOT NULL) DEFAULT CHARACTER SET = UTF8MB4支持
                                    CREATE TABLE带约束CREATE TABLE TEST.employees_demo( employee_id NUMBER(6), last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn_demo NOT NULL, CONSTRAINT emp_id_uk_demo UNIQUE (employee_id))CREATE TABLE `TEST`.`EMPLOYEES_DEMO` (`EMPLOYEE_ID` INT,`LAST_NAME` VARCHAR(25) NOT NULL,UNIQUE `EMP_ID_UK_DEMO`(`employee_id`)) DEFAULT CHARACTER SET = UTF8MB4不支持外键约束
                                    ALTER TABLEAddColumnClasealter table TEST.ADDCOLUMN add (author_last_published date);ALTER TABLE `TEST`.`ADDCOLUMN` ADD COLUMN (`AUTHOR_LAST_PUBLISHED` DATETIME)支持
                                    ALTER TABLEModifyColumnClauseALTER TABLE test."MODIFYCOLUMN" MODIFY ( alter_new_name1 CHAR ( 13 )) MODIFY ( alter_name2 VARCHAR ( 66 ))ALTER TABLE `TEST`.`MODIFYCOLUMN` MODIFY COLUMN `ALTER_NEW_NAME1` CHAR(13), MODIFY COLUMN `ALTER_NAME2` VARCHAR(66)支持
                                    ALTER TABLEDropColumnClausealter table TEST.DROPCOLUMN1 drop column COL1ALTER TABLE `TEST`.`DROPCOLUMN1` DROP COLUMN `TEST`.`DROPCOLUMN1`.`COL1支持
                                    ALTER TABLERenameColumnClasealter table TEST.RENAMECOLUMN RENAME COLUMN COL1 TO COLNEW1ALTER TABLE `TEST`.`RENAMECOLUMN` RENAME COLUMN `TEST`.`RENAMECOLUMN`.`COL1` TO `TEST`.`RENAMECOLUMN`.`COLNEW1` 当前仅支持8.0语法
                                    DROP TABLEDROP TABLE TEST.DROPTABLEDROP TABLE `TEST`.`DROPTABLE`
                                    create schema/create user实现为执行create table 前先执行create schema if not exists,保持库同步 #840
                                    +

                                    下个版本支持功能

                                    +
                                      +
                                    • [ ] 支持 索引同步
                                    • +
                                    • [ ] 同步LOB_WRITE,LOB_TRIM, LOB_ERASE,SEL_LOB_LOCATOR 事件
                                    • +
                                    • [ ] 支持PDB(多租户,oracle 12开始支持)
                                    • +
                                    • [ ] DTLE Oracle extractor 通过 SQL driver 轮询读取的间隔目前写死的5秒,优化为动态数值
                                    • +
                                    • [ ] DTLE Oracle extractor 通过 SQL driver 轮询的SCN区间目前写死的100000,优化为动态数值
                                    • +
                                    + + +
                                    + +
                                    +
                                    +
                                    + +

                                    results matching ""

                                    +
                                      + +
                                      +
                                      + +

                                      No results matching ""

                                      + +
                                      +
                                      +
                                      + +
                                      +
                                      + +
                                      + + + + + + + + + + +
                                      + + +
                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.1_limitation.html b/3/3.1_limitation.html new file mode 100644 index 0000000..97dfcdc --- /dev/null +++ b/3/3.1_limitation.html @@ -0,0 +1,1007 @@ + + + + + + + 3.1.使用限制 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      +
                                      + + + + + + + + +
                                      + +
                                      + +
                                      + + + + + + + + +
                                      +
                                      + +
                                      +
                                      + +
                                      + +

                                      使用限制

                                      +

                                      限制

                                      +
                                        +
                                      • 仅支持 MySQL 5.6/5.7 版本
                                      • +
                                      • 仅支持 InnoDB 引擎
                                      • +
                                      • 仅支持以下字符集:
                                          +
                                        • latin1
                                        • +
                                        • latin2
                                        • +
                                        • gb2312, gbk, gb18030
                                        • +
                                        • utf8, utf8mb4
                                        • +
                                        • utf32
                                        • +
                                        • binary
                                        • +
                                        +
                                      • +
                                      • 在latin1/2表中,不支持非latin字符(如中文)(#388)
                                      • +
                                      • 对于非UTF8编码执行的DDL,不支持DDL中含有混合编码字符串,如(col varchar default _utf32"...")
                                      • +
                                      • binlog 仅支持row模式
                                      • +
                                      • binlog image 仅支持FULL模式
                                      • +
                                      • 源端和目标端大小写敏感配置 (lower_case_table_names) 需保持一致
                                      • +
                                      • 需要开启 GTID
                                      • +
                                      • 不支持 Trigger
                                      • +
                                      • 暂不支持 View
                                      • +
                                      • 支持procedure,function,event的增量部分迁移(须创建库级别的迁移job),但存在源端与目标端字符集不完全一致的问题#357
                                      • +
                                      • 支持user增量部分的迁移(须创建实例级别的迁移job),且支持grant,revoke(要求回放用户有grant option
                                      • +
                                      • 支持MySQL认证方式 mysql_native_password(MySQL 5.7)和caching_sha2_password(MySQL 8.0),其他认证方式不详
                                      • +
                                      • 在dtle的增量复制过程中,如果源端执行replace into语句或者执行产生Duplicate entry冲突insert语句,可能导致目标端的 AUTO_INCREMENT值和源端不一致(MySQL Bug#83030
                                      • +
                                      +

                                      源端 MySQL 需配置如下参数

                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      参数检查方式
                                      log_binON (my.cnf中填写合法文件名)show global variables like 'log_bin'
                                      binlog_formatROWshow global variables like 'binlog_format';
                                      binlog_row_imageFULLshow global variables like 'binlog_row_image';
                                      log_slave_updatesONshow global variables like 'log_slave_updates';
                                      gtid_modeONshow global variables like 'gtid_mode';
                                      +
                                        +
                                      • 对于 lower_case_table_names参数, dtle支持的值为01
                                          +
                                        • 原则上要求源端和目标端设置相同。
                                        • +
                                        • 且job存续期间,MySQL上该参数的值不可改变。
                                        • +
                                        • 允许设置参数值2, 但不支持大小写混用。
                                        • +
                                        +
                                      • +
                                      +

                                      关于外键 (foreign key)

                                      +

                                      在3.21.10.0以前,dtle回放时会设置set @@foreign_key_checks=OFF。外键的级连操作(如on update cascade)将无法生效。

                                      +

                                      从3.21.10.0开始,dtle增量回放时,默认set @@foreign_key_checks=ON。可以触发外键级连操作。

                                      +

                                      对于存在外键关系的一系列表,需要这些表在同一个job的复制范围内,才能正常执行。

                                      +

                                      该行为可用job配置中dest部分ForeignKeyChecks控制,默认为true。如有必要,可将其设为false。

                                      +

                                      涉及外键引用父表的事务,回放时会单独回放,不能并行。

                                      +

                                      遗留问题:在外键子表上alter table drop foreign key后,原外键父表依然会被认为是外键父表。

                                      + + +
                                      + +
                                      +
                                      +
                                      + +

                                      results matching ""

                                      +
                                        + +
                                        +
                                        + +

                                        No results matching ""

                                        + +
                                        +
                                        +
                                        + +
                                        +
                                        + +
                                        + + + + + + + + + + + + + + +
                                        + + +
                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.2_ports.html b/3/3.2_ports.html new file mode 100644 index 0000000..7c7345e --- /dev/null +++ b/3/3.2_ports.html @@ -0,0 +1,966 @@ + + + + + + + 3.2.端口使用说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        +
                                        + + + + + + + + +
                                        + +
                                        + +
                                        + + + + + + + + +
                                        +
                                        + +
                                        +
                                        + +
                                        + +

                                        端口使用说明

                                        +

                                        默认情况下, nomad 和 consul的传输/通信会使用如下端口:

                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        端口号说明
                                        8190dtle 2.x HTTP API兼容层的端口
                                        8500consul HTTP 端口
                                        4646nomad HTTP 端口
                                        4647nomad RPC 端口
                                        4648nomad serf端口
                                        8193数据传输的端口
                                        +

                                        如何修改

                                        +

                                        端口配置可在/etc/dtle/nomad.hcl中修改

                                        + + +
                                        + +
                                        +
                                        +
                                        + +

                                        results matching ""

                                        +
                                          + +
                                          +
                                          + +

                                          No results matching ""

                                          + +
                                          +
                                          +
                                          + +
                                          +
                                          + +
                                          + + + + + + + + + + + + + + +
                                          + + +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.3_impact_on_dest.html b/3/3.3_impact_on_dest.html new file mode 100644 index 0000000..3d3f457 --- /dev/null +++ b/3/3.3_impact_on_dest.html @@ -0,0 +1,956 @@ + + + + + + + 3.3.对目标端数据库的影响(gtid_executed表) · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          + + + + + + + + +
                                          + +
                                          + +
                                          + + + + + + + + +
                                          +
                                          + +
                                          +
                                          + +
                                          + +

                                          对目标端数据库的影响(gtid_executed表)

                                          +

                                          dtle.gtid_executed_v4

                                          +

                                          当目标端是MySQL数据库时, dtle会在目标端自动创建表dtle.gtid_executed_v4, 目标端的用于回放数据的数据库用户需要对这张表有相应权限.

                                          +

                                          dtle.gtid_executed_v4的作用是存储已经回放的事务的GTID, 用作断点续传/数据检查等.

                                          +

                                          使用表dtle.gtid_executed_v4模仿GTID机制, 而不使用MySQL原生GTID机制的原因是: 在回放时, set GTID_NEXT=... 语句需要 SUPER 权限, 而云环境下, 数据库用户可能无法拥有 SUPER 权限.

                                          +

                                          dtle.gtid_executed_v4的建表语句如下:

                                          +
                                          CREATE TABLE IF NOT EXISTS dtle.gtid_executed_v4 (
                                          +    job_name varchar(64) NOT NULL,
                                          +    source_uuid binary(16) NOT NULL,
                                          +    gtid int NOT NULL,
                                          +    gtid_set longtext,
                                          +  primary key (job_name, source_uuid, gtid)
                                          +);
                                          +
                                          +

                                          表结构说明:

                                          +
                                            +
                                          • job_name: 执行同步的任务名
                                          • +
                                          • source_uuid: 源端数据库UUID号
                                          • +
                                          • gtid: 执行过的GTID gno编号。若某行该列为0,则表明这是一个汇总行
                                              +
                                            • 行数过多时,会触发汇总机制
                                            • +
                                            +
                                          • +
                                          • gtid_set: 对于gtid=0的汇总行,该列批量储存gno编号,如1-100:200:300-400
                                          • +
                                          +

                                          典型的查询方法

                                          +
                                          SELECT job_name, HEX(source_uuid), gtid, gtid_set FROM dtle.gtid_executed_v4;
                                          +-- 注意source_uuid以binary储存,直接查询会乱码,需要HEX()转换
                                          +
                                          + + +
                                          + +
                                          +
                                          +
                                          + +

                                          results matching ""

                                          +
                                            + +
                                            +
                                            + +

                                            No results matching ""

                                            + +
                                            +
                                            +
                                            + +
                                            +
                                            + +
                                            + + + + + + + + + + + + + + +
                                            + + +
                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.4.1_delay_alert.html b/3/3.4.1_delay_alert.html new file mode 100644 index 0000000..e330177 --- /dev/null +++ b/3/3.4.1_delay_alert.html @@ -0,0 +1,1028 @@ + + + + + + + 3.4.1.延迟监控告警 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                            +
                                            + + + + + + + + +
                                            + +
                                            + +
                                            + + + + + + + + +
                                            +
                                            + +
                                            +
                                            + +
                                            + +

                                            延迟监控告警示例

                                            +

                                            Prometheus可直观查看监控项并记录历史值, + 可通过搭建Prometheus查看延迟情况, + Alertmanager 可针对异常监控项及时发出告警信息, + 通过配置Alertmanager对延迟异常任务发出告警

                                            +

                                            Prometheus配置

                                            +

                                            查看监控项并记录历史值

                                            +
                                              +
                                            • 准备配置文件 prometheus.yml :
                                            • +
                                            +
                                            # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口
                                            +alerting:
                                            + alertmanagers:
                                            + - static_configs:
                                            +   - targets: ["127.0.0.1:9093"] 
                                            +
                                            +# 告警规则文件
                                            +rule_files:
                                            +  - 'prometheus_rule.yml'
                                            +
                                            +scrape_configs:
                                            +  - job_name: 'dtle'
                                            +
                                            +    # Override the global default and scrape targets from this job every 5 seconds.
                                            +    scrape_interval: 5s
                                            +
                                            +    static_configs:
                                            +      - targets: ['127.0.0.1:8190','127.0.0.2:8190'] # 填写dtle兼容层的地址。可填多个。
                                            +
                                              +
                                            • 准备告警规则文件 prometheus_rule.yml
                                            • +
                                            +
                                            groups:
                                            +- name: simple_example
                                            +  rules:
                                            +
                                            +  # Alert for task that is delay more than 5s for >1 minutes.
                                            +  - alert: TaskDelay
                                            +    expr:  dtle_delay_time > 5
                                            +    for: 1m
                                            +    labels:
                                            +      severity: warning
                                            +    annotations:
                                            +      summary: "task {{ $labels.task_name }} has delay"
                                            +      description: "Task {{ $labels.task_name }} of instance {{ $labels.instance }} has delay 5s  more than 1 minutes."
                                            +
                                              +
                                            • 使用docker运行Prometheus:
                                            • +
                                            +
                                            docker run \
                                            +    -p 9090:9090 \
                                            +    -v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml \
                                            +    -v ${PWD}/prometheus_rule.yml:/etc/prometheus/prometheus_rule.yml \
                                            +    prom/prometheus
                                            +
                                            +

                                            + +

                                            +

                                            Alertmanager配置

                                            +

                                            针对任务延迟异常发送告警

                                            +
                                              +
                                            • 创建配置文件 alertmanager.yml 配置示例如下
                                            • +
                                            +
                                            global:
                                            +  smtp_smarthost: 'smtp.gmail.com:587'
                                            +  smtp_from: 'SENDER_ACCOUNT'
                                            +  smtp_auth_username: 'SENDER_ACCOUNT'
                                            +  smtp_auth_password: 'email smtp verify password'
                                            +  smtp_require_tls: false
                                            +route:
                                            +  # If an alert has successfully been sent, wait 'repeat_interval' to resend them.
                                            +  repeat_interval: 10s
                                            +  #  A default receiver
                                            +  receiver: team-dtle-mails
                                            +
                                            +receivers:
                                            +  - name: 'team-dtle-mails'
                                            +    email_configs:
                                            +    - to: 'receiver@actionsky.com'
                                            +
                                              +
                                            • 启动alertmanager
                                              docker run -p 9093:9093 -v  ${PWD}/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager
                                              +
                                            • +
                                            +
                                              +
                                            • 根据配置延迟5s以上并持续1min时,receiver@actionsky.com 邮箱收到告警如下:
                                            • +
                                            +
                                            [1] Firing
                                            +Labels
                                            +alertname = TaskDelay
                                            +host = localhost.localdomain
                                            +instance = dtle-1
                                            +job = dtle
                                            +severity = warning
                                            +task_name = dest-fail-migration_src
                                            +Annotations
                                            +description = Task dest-fail-migration_src of instance dtle-1  has delay 5s more than 1 minutes.
                                            +summary = task dest-fail-migration_src has delay
                                            +Source
                                            +
                                            + +
                                            + +
                                            +
                                            +
                                            + +

                                            results matching ""

                                            +
                                              + +
                                              +
                                              + +

                                              No results matching ""

                                              + +
                                              +
                                              +
                                              + +
                                              +
                                              + +
                                              + + + + + + + + + + + + + + +
                                              + + +
                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.4.2_monitor.html b/3/3.4.2_monitor.html new file mode 100644 index 0000000..647f6f3 --- /dev/null +++ b/3/3.4.2_monitor.html @@ -0,0 +1,1145 @@ + + + + + + + 3.4.2.搭建监控系统 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              +
                                              + + + + + + + + +
                                              + +
                                              + +
                                              + + + + + + + + +
                                              +
                                              + +
                                              +
                                              + +
                                              + +

                                              如何搭建DTLE的监控系统

                                              +

                                              背景:

                                              +

                                              虽然在DTLE的文档里提供各种监控项的介绍,但是对于不熟悉prometheus和grafana配置的同学来说上手还是有些难度的。今天我就来DTLE 3.21.07.0来搭建一个DTLE的监控系统。

                                              +

                                              一、搭建DTLE运行环境

                                              +
                                                +
                                              • 配置两个节点的DTLE集群来演示,其拓扑如下:
                                              • +
                                              +

                                              topu

                                              +

                                              在修改DTLE配置文件的时候需要注意以下两点:

                                              +
                                                +
                                              1. 开启DTLE的监控,确保publish_metrics的值为ture
                                              2. +
                                              3. 开启nomad的监控,确保正确配置telemetry
                                              4. +
                                              +

                                              这里以dtle-src-1的配置为例,具体配置参考节点配置:

                                              +
                                              # DTLE 3.21.07.0中nomad升级为1.1.2,需要添加如下配置使nomad提供监控数据
                                              +# 之前版本的DTLE无需添加此配置
                                              +telemetry {
                                              +  prometheus_metrics         = true
                                              +  collection_interval        = "15s"
                                              +}
                                              +
                                              +plugin "dtle" {
                                              +  config {
                                              +    data_dir = "/opt/dtle/var/lib/nomad"
                                              +    nats_bind = "10.186.63.20:8193"
                                              +    nats_advertise = "10.186.63.20:8193"
                                              +    # Repeat the consul address above.
                                              +    consul = "10.186.63.76:8500"
                                              +
                                              +    # By default, API compatibility layer is disabled.
                                              +    api_addr = "10.186.63.20:8190"   # for compatibility API
                                              +    nomad_addr = "10.186.63.20:4646" # compatibility API need to access a nomad server
                                              +
                                              +    publish_metrics = true
                                              +    stats_collection_interval = 15
                                              +  }
                                              +}
                                              +
                                                +
                                              • 添加两个job模拟两个MySQL实例之间传输数据

                                                +

                                                job_sample

                                                +
                                              • +
                                              +

                                              二、部署prometheus

                                              +
                                                +
                                              • 准备prometheus配置文件同时接收nomad和DTLE的metrics
                                              • +
                                              • DTLE监控labels:instance的值建议设置为DTLE服务器的hostname
                                              • +
                                              +
                                              shell> cat /path/to/prometheus.yml
                                              +global:
                                              +  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
                                              +  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
                                              +
                                              +scrape_configs:
                                              +  - job_name: 'nomad'
                                              +    scrape_interval: 15s
                                              +    metrics_path: '/v1/metrics'
                                              +    params:
                                              +      format: ['prometheus']
                                              +    static_configs:
                                              +      - targets: ['10.186.63.20:4646']
                                              +        labels:
                                              +          instance: nomad-src-1
                                              +      - targets: ['10.186.63.76:4646']
                                              +        labels:
                                              +          instance: nomad-dest-1
                                              +
                                              +  - job_name: 'dtle'
                                              +    scrape_interval: 15s
                                              +    metrics_path: '/metrics'
                                              +    static_configs:
                                              +      - targets: ['10.186.63.20:8190']
                                              +        labels:
                                              +          instance: dtle-src-1
                                              +      - targets: ['10.186.63.76:8190']
                                              +        labels:
                                              +          instance: dtle-dest-1
                                              +
                                              +
                                                +
                                              • 利用docker部署prometheus服务

                                                +
                                                shell> docker run -itd -p 9090:9090 --name=prometheus --hostname=prometheus --restart=always -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
                                                +
                                              • +
                                              • 在浏览器上访问prometheus的页面 http://${prometheus_server_ip}:9090/targets 验证配置生效

                                                +

                                                prometheus targets

                                                +
                                              • +
                                              +

                                              三、部署grafana

                                              +
                                                +
                                              • 利用docker部署grafana服务

                                                +
                                                shell> docker run -d --name=grafana -p 3000:3000 grafana/grafana
                                                +
                                              • +
                                              • 在浏览器上访问grafana的页面 http://${grafana_server_ip}:3000 ,使用默认用户 admin/admin登录

                                                +
                                              • +
                                              • 配置添加数据源

                                                +

                                                add_data_source

                                                +
                                                  +
                                                • 选择添加promethues

                                                  +

                                                  choose_prometheus

                                                  +
                                                • +
                                                • 只需将promethues的访问地址添加到URL中,点击“sava & test”按钮

                                                  +
                                                • +
                                                +

                                                add_prometheus_url

                                                +
                                              • +
                                              • 添加panel

                                                +

                                                add_panel

                                                +
                                              • +
                                              • 以添加一个CPU使用率监控为例配置一个panel

                                                +

                                                add_cpu_panel

                                                +
                                              • +
                                              +

                                              set_unit

                                              +

                                              四、常用的监控项

                                              +

                                              nomad所有监控项: https://www.nomadproject.io/docs/operations/metrics

                                              +

                                              DTLE所有监控项:https://actiontech.github.io/dtle-docs-cn/3/3.4_metrics.html

                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              说明公式示例单位
                                              CPU使用率(总计)sum(rate(process_cpu_seconds_total{instance=~"nomad-src-1 | dtle-src-1"}[60s])) * 100Misc / Percent(0-100)
                                              CPU使用率(DTLE )rate(process_cpu_seconds_total{instance="dtle-src-1"}[60s]) * 100Misc / Percent(0-100)
                                              CPU使用率(nomad)rate(process_cpu_seconds_total{instance="dtle-src-1"}[60s]) * 100Misc /Percent(0-100)
                                              内存使用(总计)sum(process_resident_memory_bytes{instance=~"nomad-src-1 | dtle-src-1"}) /1024 /1024Data / mebibyte
                                              内存使用(DTLE )process_resident_memory_bytes{instance="dtle-src-1"} /1024 /1024Data / mebibyte
                                              内存使用(nomad)process_resident_memory_bytes{instance="nomad-src-1"} /1024 /1024Data / mebibyte
                                              带宽(总计 - 源端发送)sum(increase(dtle_network_out_bytes{host="dtle-src-1"}[30s]) /30 /1024) * 8Data rate / kibibits/sec
                                              带宽(按task分组 - 源端发送)increase(dtle_network_out_bytes{host="dtle-src-1"}[30s]) /30 /1024 * 8Data rate / kibibits/sec
                                              带宽(总计 - 目标端接收)sum(increase(dtle_network_in_bytes{host="dtle-dest-1"}[30s]) /30 /1024) * 8Data rate / kibibits/sec
                                              带宽(按task分组 - 目标端接收)increase(dtle_network_in_bytes{host="dtle-dest-1"}[30s]) /30 /1024 * 8Data rate / kibibits/sec
                                              数据延迟(源端)dtle_delay_time{host="dtle-src-1"}Time / seconds(s)
                                              数据延迟(目标端)dtle_delay_time{host="dtle-dest-1"}Time / seconds(s)
                                              TPS(源端)irate(dtle_src_extracted_incr_tx_count[30s])Misc / none
                                              TPS(目标端)irate(dtle_dest_applied_incr_tx_count[30s])Misc / none
                                              QPS(源端)irate(dtle_src_extracted_incr_query_count[30s])Misc / none
                                              QPS(目标端)irate(dtle_dest_applied_incr_query_count[30s])Misc / none
                                              Buffer(源端)dtle_buffer_src_queue_sizeMisc / none
                                              Buffer(目标端)dtle_buffer_dest_queue_sizeMisc / none
                                              +

                                              五、最后创建多个panel同时展示

                                              +

                                              all_panel

                                              + + +
                                              + +
                                              +
                                              +
                                              + +

                                              results matching ""

                                              +
                                                + +
                                                +
                                                + +

                                                No results matching ""

                                                + +
                                                +
                                                +
                                                + +
                                                +
                                                + +
                                                + + + + + + + + + + + + + + +
                                                + + +
                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.4_metrics.html b/3/3.4_metrics.html new file mode 100644 index 0000000..b8ab61e --- /dev/null +++ b/3/3.4_metrics.html @@ -0,0 +1,1126 @@ + + + + + + + 3.4.监控项说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                +
                                                + + + + + + + + +
                                                + +
                                                + +
                                                + + + + + + + + +
                                                +
                                                + +
                                                +
                                                + +
                                                + +

                                                监控项说明

                                                +

                                                nomad原生metrics可访问:http://127.0.0.1:4646/v1/metrics?format=prometheus

                                                +

                                                由于nomad plugin并不能访问nomad监控接口,dtle有关的监控需要通过API兼容层访问。

                                                +

                                                注意:通过兼容层只能看到本节点运行的任务的监控项。

                                                +

                                                配置

                                                +

                                                首先配置nomad.hcl中打开api兼容层,并配置publish_metrics = true

                                                +
                                                plugin "dtle" {
                                                +  config {
                                                +    api_addr = "127.0.0.1:8190"
                                                +    nomad_addr = "127.0.0.1:4646"
                                                +    publish_metrics = true
                                                +    stats_collection_interval = 15
                                                +    ...
                                                +

                                                访问 127.0.0.1:8190/metrics 可查看监控项,或在prometheus中配置从此地址获取监控项。

                                                +

                                                监控项

                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                类别监控项说明
                                                网络流量状态--
                                                -network.in_msgs-
                                                -network.out_msgs-
                                                -network.in_bytes-
                                                -network.out_bytes-
                                                缓存/队列状态--
                                                -buffer.src_queue_size-
                                                -buffer.dest_queue_size-
                                                -buffer.send_by_timeout-
                                                -buffer.send_by_size_full-
                                                内存使用估计--
                                                --全量计数值memory.full_kb_count-
                                                --增量计数值memory.incr_kb_count-
                                                --全量估计值memory.full_kb_est-
                                                --增量估计值memory.incr_kb_est-
                                                延迟统计--
                                                -delay.time-
                                                表统计(未实现)--
                                                -table.insert-
                                                -table.update-
                                                -table.delete-
                                                吞吐统计(未实现)--
                                                -throughput.num-
                                                -throughput.time-
                                                事务统计--
                                                -src_extracted_incr_tx_count增量阶段中源端完成抽取并解析的事务总量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_src_extracted_tx_count[1m])
                                                -dest_applied_incr_tx_count增量阶段中目标端完成回放的事务总量。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_dest_applied_tx_count[1m])
                                                sql执行量统计--
                                                -src_extracted_incr_query_count增量阶段中源端完成抽取并解析的dml/ddl数量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_src_extracted_query_count[1m])
                                                -dest_applied_incr_query_count增量阶段中目标端执行的ddl/dml总量(未commit前也算)。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_dest_applied_query_count[1m])
                                                +

                                                内存使用

                                                +
                                                  +
                                                • dtle根据数据量(内存计数值)来估计内存占用。因程序处理,实际使用的内存有放大效应
                                                • +
                                                • 内存估计值 = 内存计数值 x 放大系数
                                                • +
                                                • 根据Go内存分配器原理,job处理完后,内存可能不会立刻被释放给操作系统
                                                • +
                                                +

                                                任务延迟

                                                +

                                                延迟统计仅对增量(含Kafka输出)有效,其原理为:

                                                +
                                                  +
                                                • 源端MySQL在执行事务时,binlog中记录了时间戳
                                                • +
                                                • dtle在传输/回放事务时,取时间戳和当前时间的差值为延迟值
                                                • +
                                                • 如果一段时间(15s)没有事务,则重置延迟值为0
                                                • +
                                                +

                                                注意事项

                                                +
                                                  +
                                                • 需要MySQL和dtle主机的时间基本正确
                                                • +
                                                • 源端和目标端都有延迟统计,取两者中大值为延迟
                                                • +
                                                +

                                                为了便于查看延迟曲线以及跟踪高延迟情况,可用Prometheus抓取dtle的监控项并使用Alertmanager发送告警, +步骤可参考 延迟告警示例

                                                +

                                                效果图:

                                                +

                                                + + +
                                                + +
                                                +
                                                +
                                                + +

                                                results matching ""

                                                +
                                                  + +
                                                  +
                                                  + +

                                                  No results matching ""

                                                  + +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + + + + + + + + + + + + + + +
                                                  + + +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.5_deployment.html b/3/3.5_deployment.html new file mode 100644 index 0000000..56ba5f0 --- /dev/null +++ b/3/3.5_deployment.html @@ -0,0 +1,952 @@ + + + + + + + 3.5.部署结构 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  + + + + + + + + +
                                                  + +
                                                  + +
                                                  + + + + + + + + +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + +

                                                  3.5 部署结构

                                                  +

                                                  +

                                                  如上图, nomad (运行dtle插件)支持多种不同的部署结构, 其中:

                                                  +
                                                    +
                                                  • 简单的部署结构:
                                                      +
                                                    • 适用于简单的场景, 用一个nomad节点同时作为server (管理节点)和client (执行节点,运行dtle插件)
                                                    • +
                                                    • 一个节点可同时处理多个传输链路
                                                    • +
                                                    +
                                                  • +
                                                  • 高可用的部署结构:
                                                      +
                                                    • 适用于对可用性较高的场景, 将 nomad 和 consul 进行三节点集群部署, 任务元数据信息在集群中同步
                                                    • +
                                                    • 一个 nomad 节点可同时作为 server 和 client, 也可将 server 和 client 分开部署
                                                    • +
                                                    • 当server发生故障时, 传输任务会转移到其他server执行 (需要server集群存活一半以上)
                                                    • +
                                                    • 当client发生故障时, 传输任务会转移到其他client执行
                                                    • +
                                                    +
                                                  • +
                                                  • 跨DC的部署结构
                                                      +
                                                    • 适用于多个数据中心间的数据同步
                                                    • +
                                                    • server集群可部署在任一数据中心, 或第三方数据中心
                                                    • +
                                                    • 源数据库和目标数据库 不必要保障 直接网络连通
                                                    • +
                                                    • client需部署在网络边界上
                                                    • +
                                                    +
                                                  • +
                                                  + + +
                                                  + +
                                                  +
                                                  +
                                                  + +

                                                  results matching ""

                                                  +
                                                    + +
                                                    +
                                                    + +

                                                    No results matching ""

                                                    + +
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + + + + + + + + + + + + + + +
                                                    + + +
                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.6_DDL.html b/3/3.6_DDL.html new file mode 100644 index 0000000..d4f0d26 --- /dev/null +++ b/3/3.6_DDL.html @@ -0,0 +1,1965 @@ + + + + + + + 3.6.DDL支持度 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    + + + + + + + + +
                                                    + +
                                                    + +
                                                    + + + + + + + + +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + +

                                                    DDL支持度

                                                    +

                                                    以DATABASE为对象的DDL

                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    DDL类型DDL语句示例全量增量备注
                                                    CREATE DATABASEbasicCREATE DATABASE db_name;

                                                    + CREATE DATABASE IF NOT EXISTS db_name;

                                                    + CREATE SCHEMA db_name;

                                                    + CREATE SCHEMA IF NOT EXISTS db_name;
                                                    支持支持1. 支持server级默认字符集不一致情形
                                                    character set and collateCREATE SCHEMA db_name CHARACTER SET utf8 COLLATE utf8_general_ci;

                                                    + CREATE SCHEMA db_name DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

                                                    + CREATE SCHEMA db_name CHARACTER SET=latin1 COLLATE=latin1_swedish_ci;

                                                    + CREATE DATABASE db_name COLLATE latin2_general_ci;

                                                    + CREATE DATABASE db_name CHARACTER SET binary;

                                                    + CREATE DATABASE db_name DEFAULT CHARACTER SET=gbk DEFAULT COLLATE=gbk_chinese_ci;
                                                    支持支持1. 支持字符集latin1、latin2、gbk、utf8、utf8mb4、binary
                                                    ALTER DATABASEALTER DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci支持支持 支持字符集latin1、latin2、gbk、utf8、utf8mb4、binary
                                                    DROP DATABASEDROP DATABASE db_name;

                                                    + DROP DATABASE IF EXISTS db_name;

                                                    + DROP SCHEMA db_name;

                                                    + DROP SCHEMA IF EXISTS db_name;
                                                    支持支持
                                                    + + +

                                                    以TABLE为对象的DDL

                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    DDL类型DDL语句示例全量增量备注
                                                    CREATE TABLEcolumn data types and attributesbasicCREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition);支持支持
                                                    character setCREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition CHARACTER SET utf8 COLLATE utf8_bin);支持支持
                                                    nullCREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition NULL);支持支持
                                                    not nullCREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition NOT NULL);支持支持
                                                    defaultCREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20) DEFAULT '');支持支持
                                                    auto_incrementCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY);支持支持
                                                    commentCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) COMMENT '');支持支持
                                                    generated alwaysCREATE TABLE [IF NOT EXISTS] tbl_name (sidea DOUBLE,sideb DOUBLE,sidec DOUBLE GENERATED ALWAYS AS (SQRT(sidea * sidea + sideb * sideb)));支持支持建表语句支持,但是数据复制有缺陷
                                                    + https://github.com/actiontech/dtle/issues/787
                                                    indexes and foreign keyscheckCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) CHECK(expr));支持支持
                                                    primary keyCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, PRIMARY KEY (id));

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20), PRIMARY KEY(id, c));
                                                    支持支持
                                                    keyCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT KEY);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, KEY index_name (key_part));

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't7', KEY (key_part, key_part));
                                                    支持支持
                                                    indexCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, INDEX index_name (key_part));

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't10', INDEX(key_part, key_part));
                                                    支持支持
                                                    uniqueCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT UNIQUE KEY);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, UNIQUE KEY index_name (key_part));

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20), UNIQUE INDEX (key_part(prefix value)));

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't10', CONSTRAINT UNIQUE INDEX (key_part, key_part));"
                                                    支持支持
                                                    fulltextCREATE TABLE [IF NOT EXISTS] tbl_name (c_varchar_1 varchar(255), c_varchar_2 varchar(255), FULLTEXT KEY index_name (key_part, key_part));支持支持
                                                    foreign keyCREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, FOREIGN KEY index_name (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);
                                                    支持支持应满足一下配置,否则在开启MTS的情况下不能保证数据一致性

                                                    + 1.目标端数据库@@foreign_key_checks = 1 (默认值为1)

                                                    + 2.dtle job 中ForeignKeyChecks = true (默认值为true)
                                                    table optionsengineCREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) ENGINE=InnoDB;支持支持
                                                    auto_incrementCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) AUTO_INCREMENT=100;支持支持
                                                    character setCREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) CHARACTER SET=utf8;支持支持
                                                    collateCREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) DEFAULT COLLATE=utf8_general_ci;支持支持
                                                    checksumCREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) CHECKSUM=1;支持支持
                                                    commentCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) COMMENT='';支持支持
                                                    compressionCREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) COMPRESSION='ZLIB';支持支持
                                                    table partitioninghashCREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5)) PARTITION BY HASH(col1);

                                                    + CREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATETIME) PARTITION BY HASH ( YEAR(col3) );
                                                    支持支持
                                                    keyCREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY KEY(col3) PARTITIONS 4;支持支持
                                                    linear keyCREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY LINEAR KEY(col3) PARTITIONS 5;支持支持
                                                    rangeCREATE TABLE [IF NOT EXISTS] tbl_name (year_col INT, some_data INT) PARTITION BY RANGE (year_col) (PARTITION p0 VALUES LESS THAN (1991), PARTITION p1 VALUES LESS THAN (2020), PARTITION p5 VALUES LESS THAN MAXVALUE);支持支持
                                                    range columnsCREATE TABLE [IF NOT EXISTS] tbl_name (a INT NOT NULL, b INT NOT NULL) PARTITION BY RANGE COLUMNS(a,b) (PARTITION p1 VALUES LESS THAN (20,10), PARTITION p2 VALUES LESS THAN (50,MAXVALUE), PARTITION p3 VALUES LESS THAN (65,MAXVALUE), PARTITION p4 VALUES LESS THAN (MAXVALUE,MAXVALUE));支持支持
                                                    listCREATE TABLE [IF NOT EXISTS] tbl_name (id INT, name VARCHAR(35)) PARTITION BY LIST (id) (PARTITION r0 VALUES IN (1, 5, 9, 13, 17, 21), PARTITION r1 VALUES IN (2, 6, 10, 14, 18, 22), PARTITION r2 VALUES IN (3, 7, 11, 15, 19, 23), PARTITION r3 VALUES IN (4, 8, 12, 16, 20, 24));支持支持
                                                    like statementtracked to trackedCREATE TABLE new_1 LIKE old_1;支持支持新表在目标端创建,后续数据传输正常
                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_1"
                                                    + },
                                                    + {
                                                    + "table_name": "new_1"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    tracked to not trackedCREATE TABLE new_2 LIKE old_2;支持支持新表不会在目标端创建

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_2"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to trackedCREATE TABLE new_3 LIKE old_3;支持支持新表不会在目标端创建,DTLE会报错重启
                                                    + old_3不在目标端,无法执行该语句

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "new_3"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to not trackedCREATE TABLE new_4 LIKE old_4;支持支持新表不会在目标端创建

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables"": [
                                                    + {
                                                    + "table_name": "old_1"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    alter tabletable optionsengineALTER TABLE tbl_name ENGINE=InnoDB;/支持
                                                    auto_incrementALTER TABLE tbl_name AUTO_INCREMENT=100;/支持
                                                    character setALTER TABLE tbl_name CHARACTER SET=utf8;/支持
                                                    collateALTER TABLE tbl_name COLLATE=utf8_general_ci;/支持
                                                    checksumALTER TABLE tbl_name CHECKSUM=1;/支持
                                                    commentALTER TABLE tbl_name COMMENT='';/支持
                                                    compressionALTER TABLE tbl_name COMPRESSION='ZLIB';/支持
                                                    adding and dropping columnsaddALTER TABLE tbl_name ADD d CHAR(20);/支持
                                                    add afterALTER TABLE tbl_name ADD d CHAR(20) AFTER b;/支持
                                                    add firstALTER TABLE tbl_name ADD d CHAR(20) FIRST;/支持
                                                    dropALTER TABLE tbl_name DROP b;/支持
                                                    add multipleALTER TABLE tbl_name ADD (d CHAR(20), e INT(11));/支持
                                                    drop multipleALTER TABLE tbl_name DROP b, DROP COLUMN c;/支持
                                                    renaming, redefining, and reordering columnschange nameALTER TABLE tbl_name CHANGE COLUMN b d INT(11) DEFAULT NULL;/支持
                                                    change typeALTER TABLE tbl_name CHANGE b b BIGINT DEFAULT NULL;/支持
                                                    modify typeALTER TABLE tbl_name MODIFY COLUMN b BIGINT DEFAULT NULL;/支持
                                                    chang multipleALTER TABLE tbl_name CHANGE b d INT(11) DEFAULT NULL, CHANGE c e BIGINT DEFAULT NULL;/支持
                                                    modify multipleALTER TABLE tbl_name MODIFY b BIGINT DEFAULT NULL, MODIFY c BIGINT DEFAULT NULL;/支持
                                                    modify character setALTER TABLE tbl_name MODIFY b TEXT CHARACTER SET utf8;/支持
                                                    primary keys and indexesadd primary keyALTER TABLE tbl_name ADD CONSTRAINT PRIMARY KEY (key_part);

                                                    + ALTER TABLE tbl_name ADD PRIMARY KEY (key_part, key_part);
                                                    /支持
                                                    drop primary keyALTER TABLE tbl_name DROP PRIMARY KEY;/支持
                                                    add keyALTER TABLE tbl_name ADD KEY (key_part);

                                                    + ALTER TABLE tbl_name ADD INDEX index_name (key_part, key_part);
                                                    /支持
                                                    drop keyALTER TABLE tbl_name DROP PRIMARY KEY;

                                                    + ALTER TABLE tbl_name DROP INDEX index_name;
                                                    /支持
                                                    add unique keyALTER TABLE tbl_name ADD UNIQUE INDEX (key_part);

                                                    + ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE KEY index_name (key_part, key_part);
                                                    /支持
                                                    drop unique keyALTER TABLE tbl_name DROP KEY id;

                                                    + ALTER TABLE tbl_name DROP INDEX index_name;
                                                    /支持
                                                    foreign keysadd foreign keyALTER TABLE tbl_name ADD CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;

                                                    + ALTER TABLE tbl_name ADD CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;

                                                    + ALTER TABLE tbl_name ADD CONSTRAINT FOREIGN KEY index_name (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;

                                                    + ALTER TABLE tbl_name ADD FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;

                                                    + ALTER TABLE tbl_name ADD FOREIGN KEY (col_name) REFERENCES tbl_name(key_part);
                                                    /支持应满足一下配置,否则在开启MTS的情况下不能保证数据一致性
                                                    + 1.目标端数据库@@foreign_key_checks = 1 (默认值为1)
                                                    + 2.dtle job 中ForeignKeyChecks = true (默认值为true)
                                                    drop foreign keyALTER TABLE tbl_name DROP FOREIGN KEY fk_child_5_1; /支持无法和MTS同时使用:
                                                    + https://github.com/actiontech/dtle/issues/795#issuecomment-961786003
                                                    changing the character setmodify character setALTER TABLE tbl_name MODIFY b TEXT CHARACTER SET utf8;/支持
                                                    convert toALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;/支持
                                                    renamerename indexALTER TABLE tbl_name RENAME INDEX index_name_old to index_name_new;/支持
                                                    rename keyALTER TABLE tbl_name RENAME KEY index_name_old toindex_name_new;/支持
                                                    tracked to trackedALTER TABLE old_1 RENAME TO new_1;/支持重命名成功,后续数据传输正常

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_1"
                                                    + },
                                                    + {
                                                    + "table_name": "new_1"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    tracked to not trackedALTER TABLE old_2 RENAME AS new_2;/支持重命名成功,后续数不应据传到目标端

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_2"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to trackedALTER TABLE old_3 RENAME AS new_3;/支持因目标端没有改名前的表,会有ERROR log
                                                    + old_3不在目标端,无法执行该语句

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "new_3"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to not trackedALTER TABLE old_4 RENAME TO new_4;/支持目标端不会有重命名后的表

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_1"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    table partitioningADD PARTITIONALTER TABLE tbl_name PARTITION BY HASH(expr) PARTITIONS num;

                                                    + ALTER TABLE tbl_name ADD PARTITION (PARTITION partition_names VALUES LESS THAN (MAXVALUE));
                                                    /支持
                                                    DROP PARTITIONALTER TABLE tbl_name DROP PARTITION partition_names;/支持
                                                    drop tablebasicDROP TABLE tbl_name;/支持
                                                    if existsDROP TABLE IF EXISTS tbl_name RESTRICT;

                                                    + DROP TABLE IF EXISTS not_exists_tbl_name CASCADE;
                                                    /支持
                                                    drop multipleDROP TABLE IF EXISTS not_exists_tbl_name CASCADE;

                                                    + DROP TABLE IF EXISTS tbl_name_1, tbl_name_2, not_exists_tbl_name;
                                                    /支持
                                                    +## 以INDEX为对象的DDL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    DDL类型DDL语句示例全量增量备注
                                                    CREATE INDEXbasicCREATE INDEX key_t1_1 ON t1 (id);支持支持
                                                    prefix keyCREATE INDEX key_t2_1 ON t2 (a(2));

                                                    + CREATE UNIQUE INDEX key_t3_1 ON t3 (a(3));
                                                    支持支持
                                                    uniqueCREATE UNIQUE INDEX key_t4_1 ON t4 (id);支持支持
                                                    unique not nullCREATE UNIQUE INDEX key_t5_1 ON t5 (id);支持支持
                                                    unique multipleCREATE UNIQUE INDEX key_t6_1 ON t6 (a, b);支持支持
                                                    fulltextCREATE FULLTEXT INDEX full_t7_1 ON t7 (a);支持支持
                                                    index_typeCREATE INDEX key_t8_1 ON t8 (id) USING BTREE;支持支持
                                                    commentCREATE INDEX key_t9_1 ON t9 (id) COMMENT 'test comment';支持支持
                                                    DROP INDEXDROP INDEX key_t1_1 ON t1;支持支持
                                                    + +

                                                    其他对象DDL

                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    DDL类型DDL语句示例全量增量备注
                                                    RENAMEtracked to trackedRENAME TABLE old_1 to new_1;/支持重命名成功,后续数据传输正常

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_1"
                                                    + },
                                                    + {
                                                    + "table_name": "new_1"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }"
                                                    tracked to not trackedRENAME TABLE old_2 to new_2;/支持重命名成功,后续数不应据传到目标端

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "old_2"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to trackedRENAME TABLE old_3 to new_3;/支持因目标端没有改名前的表,会有ERROR log
                                                    + old_3不在目标端,无法执行该语句

                                                    + {
                                                    + "replicate_do_db": [
                                                    + {
                                                    + "table_schema": "action_db_1",
                                                    + "tables": [
                                                    + {
                                                    + "table_name": "new_3"
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    not tracked to not trackedRENAME TABLE old_4 to new_4;/支持目标端不会有重命名后的表

                                                    + {
                                                    + ""replicate_do_db"": [
                                                    + {
                                                    + ""table_schema"": ""action_db_1"",
                                                    + ""tables"": [
                                                    + {
                                                    + ""table_name"": ""old_1""
                                                    + }
                                                    + ]
                                                    + }
                                                    + ]
                                                    + }
                                                    rename multipleRENAME TABLE old_5 to new_5, old_6 to new_6;/支持
                                                    TRUNCATETRUNCATE tbl_name;

                                                    + TRUNCATE TABLE tbl_name;
                                                    /支持
                                                    VIEWCREATE VIEWCREATE VIEW view_name AS select_statement;

                                                    + CREATE OR REPLACE VIEW view_name AS select_statement;"
                                                    不支持不支持
                                                    ALTER VIEWALTER VIEW view_name (column_list) AS select_statement;/不支持
                                                    DROP VIEWDROP VIEW view_name RESTRICT;

                                                    + DROP VIEW IF EXISTS view_name RESTRICT;

                                                    + DROP VIEW IF EXISTS view_name CASCADE;

                                                    + DROP VIEW view_name_1, view_name_2;
                                                    /不支持
                                                    FUNCTIONCREATE FUNCTIONCREATE FUNCTION sp_name() RETURNS type characteristic routine_body;

                                                    + CREATE FUNCTION sp_name(func_parameters) RETURNS type characteristic RETURN routine_body;
                                                    不支持支持1. [MySQL 5]目标端账户需要CREATE ROUTINE, SUPER权限
                                                    + 2. [MySQL 8] 目标端账户需要CREATE ROUTINE, SET_USER_ID, SYSTEM_USER权限, SET GLOBAL log_bin_trust_function_creators = ON;
                                                    + 3. job配置ExpandSyntaxSupport=true
                                                    + 4. 全量不复制function
                                                    ALTER FUNCTIONALTER FUNCTION sp_name SQL SECURITY DEFINER;

                                                    + ALTER FUNCTION sp_name COMMENT '';
                                                    /支持
                                                    DROP FUNCTIONDROP FUNCTION sp_name;

                                                    + DROP FUNCTION IF EXISTS sp_name;

                                                    + DROP FUNCTION IF EXISTS not_exists_sp_name;
                                                    /支持
                                                    PROCEDURECREATE PROCEDURECREATE PROCEDURE sp_name() characteristic routine_body;

                                                    + CREATE PROCEDURE sp_name(proc_parameters) characteristic routine_body;
                                                    不支持支持1. [MySQL 5]目标端账户需要CREATE ROUTINE, SUPER权限
                                                    + 2. [MySQL 8] 目标端账户需要CREATE ROUTINE, SET_USER_ID, SYSTEM_USER权限, SET GLOBAL log_bin_trust_function_creators = ON;
                                                    + 3. job配置ExpandSyntaxSupport=true
                                                    + 4. 全量不复制创建procedure
                                                    ALTER PROCEDUREALTER PROCEDURE sp_name SQL SECURITY DEFINER;

                                                    + ALTER PROCEDURE sp_name COMMENT '';
                                                    /支持
                                                    DROP PROCEDUREDROP PROCEDURE sp_name;

                                                    + DROP PROCEDURE IF EXISTS sp_name;

                                                    + DROP PROCEDURE IF EXISTS not_exists_sp_name;
                                                    /支持
                                                    EVENTCREATE EVENTCREATE EVENT event_name ON SCHEDULE schedule COMMENT '' DO event_body;不支持不支持1.不支持复制event
                                                    + 2.源端event产生的数据会复制到目标端
                                                    ALTER EVENTALTER EVENT event_name RENAME TO event_name_new;/不支持
                                                    DROP EVENTDROP EVENT IF EXISTS not_exists_event_name;

                                                    + DROP EVENT IF EXISTS event_name;

                                                    + DROP EVENT event_name;
                                                    /不支持
                                                    TRIGGERCREATE TRIGGERCREATE TRIGGER trigger_name BEFORE INSERT on old FOR EACH ROW trigger_body;

                                                    + CREATE TRIGGER trigger_name AFTER INSERT on old FOR EACH ROW trigger_body;

                                                    + CREATE TRIGGER trigger_name BEFORE UPDATE on old FOR EACH ROW trigger_body;

                                                    + CREATE TRIGGER trigger_name AFTER UPDATE on old FOR EACH ROW trigger_body;

                                                    + CREATE TRIGGER trigger_name BEFORE DELETE on old FOR EACH ROW trigger_body;

                                                    + CREATE TRIGGER trigger_name AFTER DELETE on old FOR EACH ROW trigger_body;
                                                    不支持不支持1.不支持复制trigger
                                                    + 2. 源端trigger产生的数据会复制到目标端
                                                    DROP TRIGGERDROP TRIGGER trigger_name;

                                                    + DROP TRIGGER IF EXISTS trigger_name;

                                                    + DROP TRIGGER schema_name.trigger_name;
                                                    /不支持
                                                    + +

                                                    关于不支持 Trigger、Event

                                                    +

                                                    由于Trigger或Event可能会更改表数据,目标端存在Trigger或Event时,存在二次触发的问题(源端已经触发过一次),会引起数据不一致,故dtle不复制Trigger和Event。源端Trigger/Event变更的数据,会被写进binlog,并由dtle复制到目标端。

                                                    + + +
                                                    + +
                                                    +
                                                    +
                                                    + +

                                                    results matching ""

                                                    +
                                                      + +
                                                      +
                                                      + +

                                                      No results matching ""

                                                      + +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + + + + + + + + + + + + + + +
                                                      + + +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.7_DCL.html b/3/3.7_DCL.html new file mode 100644 index 0000000..8984312 --- /dev/null +++ b/3/3.7_DCL.html @@ -0,0 +1,994 @@ + + + + + + + 3.7.DCL支持度 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      +
                                                      + + + + + + + + +
                                                      + +
                                                      + +
                                                      + + + + + + + + +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + +

                                                      DCL支持度

                                                      +

                                                      条件及限制

                                                      +
                                                        +
                                                      • 创建实例级别迁移
                                                      • +
                                                      • "ExpandSyntaxSupport": true
                                                      • +
                                                      • 增量部分DCL的操作会被支持
                                                      • +
                                                      • 全量部分是否需要支持?即,创建job前,源端已存在的用户是否需要被迁移至目标端?#358
                                                      • +
                                                      • 若需要执行grant和revoke,则回放用户需要有‘grant option’,回放用户需要有被赋权的权限
                                                      • +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      DCL类型语句示例是否支持
                                                      CREATEcreate user ...identified by ...支持
                                                      ALTERalter user ...identified by ...支持
                                                      RENAMErename user ... to ...支持
                                                      SET PASSWORDset password for ...='...';支持
                                                      GRANTgrant all on . to 'test'@'%';支持
                                                      REVOKErevoke insert on . from 'test'@'%';支持
                                                      +

                                                      实例级别job.json配置样例:

                                                      +
                                                      {
                                                      +  "job_id": "dcl_expand_syntax_support_true",
                                                      +  "src_task": {
                                                      +    "task_name": "src",
                                                      +    "mysql_src_task_config": {
                                                      +      "expand_syntax_support": true
                                                      +    },
                                                      +    "replicate_do_db": [],
                                                      +    ...
                                                      +  },
                                                      +  "dest_task": {
                                                      +    "task_name": "dest",
                                                      +    ...
                                                      +  }
                                                      +}
                                                      +
                                                      + +
                                                      + +
                                                      +
                                                      +
                                                      + +

                                                      results matching ""

                                                      +
                                                        + +
                                                        +
                                                        + +

                                                        No results matching ""

                                                        + +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + + + + + + + + + + + + + + +
                                                        + + +
                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.8_dtle_mapping.html b/3/3.8_dtle_mapping.html new file mode 100644 index 0000000..85bcfd8 --- /dev/null +++ b/3/3.8_dtle_mapping.html @@ -0,0 +1,1024 @@ + + + + + + + 3.8.dtle mapping支持 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        + + + + + + + + +
                                                        + +
                                                        + +
                                                        + + + + + + + + +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + +

                                                        dtle mapping

                                                        +

                                                        在job配置文件中,Table字段增加若干参数,详情参考4.3 作业配置,使用方法如下

                                                        +

                                                        schema mapping

                                                        +

                                                        单库mapping

                                                        +

                                                        job.json中ReplicateDoDb配置:

                                                        +
                                                         "ReplicateDoDb":[
                                                        +                    {
                                                        +                        "TableSchema":"demo",
                                                        +                        "TableSchemaRename":"demoRename"
                                                        +                    }
                                                        +                ],
                                                        +

                                                        单库mapping结果

                                                        +
                                                        src : demo
                                                        +dest: demoRename
                                                        +

                                                        多库mapping

                                                        +

                                                        job.json中ReplicateDoDb配置:

                                                        +
                                                         "ReplicateDoDb":[
                                                        +                    { 
                                                        +                        "TableSchemaRegex":"(\\w*)src(\\w*)",
                                                        +                        "TableSchemaRename":"rename${1}",
                                                        +                    }
                                                        +                ],
                                                        +

                                                        多库mapping结果

                                                        +
                                                        src : test1src,test2src,test3src,cust
                                                        +dest: renametest1, renametest2, renametest3
                                                        +

                                                        table mapping

                                                        +

                                                        单表mapping

                                                        +

                                                        job.json中ReplicateDoDb配置:

                                                        +
                                                         "ReplicateDoDb":[
                                                        +                    {
                                                        +                        "TableSchema":"demo",
                                                        +                        "Tables":[
                                                        +                            {
                                                        +                                "TableName":"testDemo",
                                                        +                                "TableRename":"renameDemo"
                                                        +                            }
                                                        +                        ]
                                                        +                    }
                                                        +                ],
                                                        +

                                                        单表mapping结果

                                                        +
                                                        src : demo.testDemo
                                                        +dest: demo.renameDemo
                                                        +

                                                        多表mapping

                                                        +

                                                        job.json中ReplicateDoDb配置:

                                                        +
                                                         "ReplicateDoDb":[
                                                        +                    {
                                                        +                        "TableSchema":"demo",
                                                        +                        "Tables":[
                                                        +                            {
                                                        +                                "TableRegex":"(\\w*)Shard(\\w*)",
                                                        +                                "TableRename":"${1}Rename"
                                                        +                            }
                                                        +                        ]
                                                        +                    }
                                                        +                ],
                                                        +

                                                        多表mapping结果

                                                        +
                                                        src : demo.test1Shard,demo.test2Shard,demo.customer,demo.test3Shard
                                                        +dest: demo.test1Rename,demo.test2Rename,demo.test3Rename
                                                        +

                                                        列mapping

                                                        +

                                                        src tables

                                                        +
                                                        create table demo.a (id int primary key, a int);
                                                        +create table demo.b (id int primary key, b int);
                                                        +
                                                        +

                                                        dst table

                                                        +
                                                        create table demo.colmap (id int primary key auto_increment, val int);
                                                        +
                                                        +

                                                        使用 ColumnMapFromColumnMapTo参数,将表a和表b合并到表colmap。忽略原id,使用新的自增id作为主键。

                                                        +

                                                        注意:不支持自动创建目标表,需预先手动创建。

                                                        +
                                                        "ReplicateDoDb": [{
                                                        +    "TableSchema":"demo",
                                                        +    "Tables":[{
                                                        +        "TableName": "a",
                                                        +        "TableRename": "colmap",
                                                        +        "ColumnMapFrom": ["a"],
                                                        +        "ColumnMapTo": ["val"]        
                                                        +    }, {
                                                        +        "TableName": "b",
                                                        +        "TableRename": "colmap",
                                                        +        "ColumnMapFrom": ["b"],
                                                        +        "ColumnMapTo": ["val"]
                                                        +    }]
                                                        +}],
                                                        +"SkipCreateDbTable": true,
                                                        +"DropTableIfExists": false,
                                                        +
                                                        +

                                                        参数说明

                                                        +
                                                          +
                                                        • ColumnMapFrom: 从源表中, 依照指定的顺序, 提取全部列或部分列.
                                                        • +
                                                        • ColumnMapTo: 写入目标表时, 指定写入的列. 可为目标表全部列或部分列.
                                                        • +
                                                        • From和To的列数量必须相等.
                                                            +
                                                          • 只填写ColumnMapFrom的用法现已deprecated.
                                                          • +
                                                          +
                                                        • +
                                                        • 对于TwoWaySync双向任务, 反向任务会交换正向任务的ColumnMapFrom/ColumnMapTo
                                                        • +
                                                        +

                                                        暂不支持使用正则表达式匹配列。

                                                        + + +
                                                        + +
                                                        +
                                                        +
                                                        + +

                                                        results matching ""

                                                        +
                                                          + +
                                                          +
                                                          + +

                                                          No results matching ""

                                                          + +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + + + + + + + + + + + + + + +
                                                          + + +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/3.9_binlog_relay.html b/3/3.9_binlog_relay.html new file mode 100644 index 0000000..634ce2e --- /dev/null +++ b/3/3.9_binlog_relay.html @@ -0,0 +1,949 @@ + + + + + + + 3.9.Binlog Relay (中继) · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          + + + + + + + + +
                                                          + +
                                                          + +
                                                          + + + + + + + + +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + +

                                                          Binlog Relay (中继)

                                                          +

                                                          背景

                                                          +
                                                            +
                                                          • 某些MySQL部署会定期清除binlog
                                                          • +
                                                          • dtle增量复制依赖binlog,如果binlog被清除则复制会出错
                                                              +
                                                            • dtle全量标记增量开始位置, 若全量耗时较长, 开始增量时binlog极有可能被清除
                                                            • +
                                                            +
                                                          • +
                                                          • 需要在开始全量时将MySQL binlog暂存到dtle本地
                                                          • +
                                                          +

                                                          使用

                                                          +

                                                          在job.json源端任务配置中将BinlogRelay设为true

                                                          +
                                                              "Type": "Src",
                                                          +    "Config": {
                                                          +        "BinlogRelay": true,
                                                          +        "Gtid": "",
                                                          +
                                                          +

                                                          对于纯增量job,开启BinlogRelay时,必须用Gtid指定复制起点(进度),不能使用BinlogFile/Pos。

                                                          +

                                                          参数说明详见作业配置.

                                                          +

                                                          影响

                                                          +

                                                          binlog储存位置为 nomad_data_dir/binlog/job_name/mysql_server_uuid。一般情况job被删除时会自动清除binlog目录。若未清除则需手动清除。

                                                          + + +
                                                          + +
                                                          +
                                                          +
                                                          + +

                                                          results matching ""

                                                          +
                                                            + +
                                                            +
                                                            + +

                                                            No results matching ""

                                                            + +
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + + + + + + + + + + + + + + +
                                                            + + +
                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3/images/3.4.1_delay2.png b/3/images/3.4.1_delay2.png new file mode 100644 index 0000000..7ea3c6e Binary files /dev/null and b/3/images/3.4.1_delay2.png differ diff --git a/3/images/3.4.2_add_cpu_panel.png b/3/images/3.4.2_add_cpu_panel.png new file mode 100644 index 0000000..0e35615 Binary files /dev/null and b/3/images/3.4.2_add_cpu_panel.png differ diff --git a/3/images/3.4.2_add_data_source.png b/3/images/3.4.2_add_data_source.png new file mode 100644 index 0000000..3a24c7c Binary files /dev/null and b/3/images/3.4.2_add_data_source.png differ diff --git a/3/images/3.4.2_add_panel.png b/3/images/3.4.2_add_panel.png new file mode 100644 index 0000000..8ce5acb Binary files /dev/null and b/3/images/3.4.2_add_panel.png differ diff --git a/3/images/3.4.2_add_prometheus_url.png b/3/images/3.4.2_add_prometheus_url.png new file mode 100644 index 0000000..47f521f Binary files /dev/null and b/3/images/3.4.2_add_prometheus_url.png differ diff --git a/3/images/3.4.2_all_panel.png b/3/images/3.4.2_all_panel.png new file mode 100644 index 0000000..18064e7 Binary files /dev/null and b/3/images/3.4.2_all_panel.png differ diff --git a/3/images/3.4.2_choose_prometheus.png b/3/images/3.4.2_choose_prometheus.png new file mode 100644 index 0000000..35065ad Binary files /dev/null and b/3/images/3.4.2_choose_prometheus.png differ diff --git a/3/images/3.4.2_job_sample.png b/3/images/3.4.2_job_sample.png new file mode 100644 index 0000000..b7057ff Binary files /dev/null and b/3/images/3.4.2_job_sample.png differ diff --git a/3/images/3.4.2_prometheus_targets.png b/3/images/3.4.2_prometheus_targets.png new file mode 100644 index 0000000..d49b8b3 Binary files /dev/null and b/3/images/3.4.2_prometheus_targets.png differ diff --git a/3/images/3.4.2_set_unit.png b/3/images/3.4.2_set_unit.png new file mode 100644 index 0000000..ecf3f61 Binary files /dev/null and b/3/images/3.4.2_set_unit.png differ diff --git a/3/images/3.4.2_topu.png b/3/images/3.4.2_topu.png new file mode 100644 index 0000000..978eb5b Binary files /dev/null and b/3/images/3.4.2_topu.png differ diff --git a/3/images/3.4_delay1.png b/3/images/3.4_delay1.png new file mode 100644 index 0000000..f562191 Binary files /dev/null and b/3/images/3.4_delay1.png differ diff --git a/3/images/3.5_deployment.graffle b/3/images/3.5_deployment.graffle new file mode 100644 index 0000000..ee1df62 Binary files /dev/null and b/3/images/3.5_deployment.graffle differ diff --git a/3/images/3.5_deployment.png b/3/images/3.5_deployment.png new file mode 100644 index 0000000..86ef0b9 Binary files /dev/null and b/3/images/3.5_deployment.png differ diff --git a/4/4.0_installation.html b/4/4.0_installation.html new file mode 100644 index 0000000..8a573a2 --- /dev/null +++ b/4/4.0_installation.html @@ -0,0 +1,944 @@ + + + + + + + 4.0.安装步骤 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            + + + + + + + + +
                                                            + +
                                                            + +
                                                            + + + + + + + + +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + +

                                                            安装步骤

                                                            +
                                                            +

                                                            从 dtle 3.x 版本开始,dtle更改了架构,作为nomad插件运行(而非此前的单一二进制文件),并需要运行 consul 以储存任务元数据。

                                                            +

                                                            dtle docker image 已包含nomad。consul可使用其官方image。

                                                            +

                                                            标准rpm安装包已集成 consul 和 nomad 及启动脚本和参考配置。

                                                            +
                                                            +

                                                            基于容器使用

                                                            +
                                                            docker pull consul:latest
                                                            +docker pull actiontech/dtle:latest
                                                            +

                                                            使用方法参见 快速开始 一节

                                                            +

                                                            容器的版本列表参看docker hub

                                                            +

                                                            基于rpm包的安装

                                                            +

                                                            此处下载dtle的 rpm 安装包, 并执行以下命令可安装dtle

                                                            +
                                                            rpm -ivh --prefix /opt/dtle dtle-<version>.rpm
                                                            +

                                                            配置文件位于

                                                            +
                                                              +
                                                            • /opt/dtle/etc/dtle/
                                                            • +
                                                            +

                                                            服务启动命令:

                                                            +
                                                            systemctl start dtle-consul dtle-nomad
                                                            +systemctl enable dtle-consul dtle-nomad # 开机自动启动
                                                            +

                                                            日志文件位于 /opt/dtle/var/log/nomad/

                                                            + + +
                                                            + +
                                                            +
                                                            +
                                                            + +

                                                            results matching ""

                                                            +
                                                              + +
                                                              +
                                                              + +

                                                              No results matching ""

                                                              + +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + + + + + + + + + + +
                                                              + + +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.1_node_configuration.html b/4/4.1_node_configuration.html new file mode 100644 index 0000000..5516917 --- /dev/null +++ b/4/4.1_node_configuration.html @@ -0,0 +1,1073 @@ + + + + + + + 4.1.节点配置 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                              +
                                                              + + + + + + + + +
                                                              + +
                                                              + +
                                                              + + + + + + + + +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + +

                                                              节点配置

                                                              +

                                                              安装包默认将参考配置装在了如下位置(安装时未设置--prefix的情况)

                                                              +
                                                                +
                                                              • /etc/consul
                                                              • +
                                                              • /etc/nomad
                                                              • +
                                                              +

                                                              使用多节点部署时,请注意更改 node_namedata_dir、各类地址和端口, 避免冲突。

                                                              +

                                                              默认的启动脚本(systemd)使用单节点配置。

                                                              + +

                                                              nomad 分为 server 和 client。一个nomad进程可以同时作为server和client,也可以只担任一个角色。 +dtle 插件运行在 nomad client 中。

                                                              +

                                                              nomad 中 dtle 插件的配置

                                                              +

                                                              参考样例配置中这一段

                                                              +
                                                              plugin "dtle" {
                                                              +  config {
                                                              +    ...
                                                              +  }
                                                              +}
                                                              +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                              配置项类型默认值强制要求说明
                                                              log_levelstring"INFO"日志级别(由于dtle plugin无法获取nomad日志级别,此处需额外设置)
                                                              log_filestring"/var/log/dtle/dtle.log"从4.22.09.0开始, dtle单独生成日志,不再和nomad合并。
                                                              每512MB进行rotate和压缩,生成文件形如dtle-2022-11-04T06-46-39.502.log.gz
                                                              big_tx_max_jobsint取决于启动时的可用内存允许同时处理大事务的job数量。默认值:启动时可用内存/2G。该值至少为1。如有6G可用内存,则该值默认为3
                                                              nats_bindstring"0.0.0.0:8193"Nats (dtle使用的传输协议) 地址
                                                              nats_advertisestring127.0.0.1:8193Nats Advertise 地址, 其他节点使用此地址连接本节点。跨公网传输需要设成上层路由器地址并设置网络穿透
                                                              api_addrstring"" (参考配置中开启)兼容层地址,可以在此地址使用dtle 2.x的HTTP API。参考值:"0.0.0.0:8190"。为空则关闭兼容层。
                                                              nomad_addrstring"127.0.0.1:4646"nomad 地址. 由于nomad插件API限制, dtle 无法自动获取该地址, 需要用户手动重复填写一遍.
                                                              consulstring"127.0.0.1:8500"consul的地址, 同nomad本体配置中的. 应填写和最近nomad server关联的consul地址. dtle插件需要consul以储存任务信息
                                                              data_dirstring"/var/lib/nomad"数据目录。目前用于存放binlog(job配置中BinlogRelay=true时)
                                                              stats_collection_intervalint15收集监控项的周期(秒)
                                                              publish_metricsboolfalse是否输出监控项
                                                              rsa_private_key_pathstring""指定rsa私钥文件的绝对路径,目前只在HTTP api中用于对mysql密码解码。(具体用法见dtle 3.x HTTP API 说明
                                                              cert_file_pathstring""指定证书文件的绝对路径
                                                              key_file_pathstring""指定私钥文件的绝对路径
                                                              +

                                                              关于 (Bind) Address 和 Advertise Address

                                                              +
                                                                +
                                                              • bind address为,需要是本地网卡配置的地址
                                                              • +
                                                              • advertise addr为对外告知连接用的地址
                                                                  +
                                                                • 对于跨网段的nomad集群,需要配置上层路由地址并在各级路由配置NAT(端口映射)
                                                                • +
                                                                +
                                                              • +
                                                              +

                                                              修改日志级别

                                                              +

                                                              从4.22.09.0开始,动态修改日志级别直接调用API即可生效(不需要事先修改配置文件或重启dtle)。

                                                              +
                                                              curl -XPOST http://127.0.0.1:8190/v2/log/level -d "dtle_log_level=INFO"
                                                              +
                                                              +

                                                              注:dtle后续重启时,仍然使用配置文件中的日志级别。

                                                              + + +
                                                              + +
                                                              +
                                                              +
                                                              + +

                                                              results matching ""

                                                              +
                                                                + +
                                                                +
                                                                + +

                                                                No results matching ""

                                                                + +
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + + + + + + + + + + + + + + +
                                                                + + +
                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.2_command.html b/4/4.2_command.html new file mode 100644 index 0000000..935ea79 --- /dev/null +++ b/4/4.2_command.html @@ -0,0 +1,968 @@ + + + + + + + 4.2.命令说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                +
                                                                + + + + + + + + +
                                                                + +
                                                                + +
                                                                + + + + + + + + +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + +

                                                                命令说明

                                                                +

                                                                dtle二进制文件仅作为nomad插件使用。各项功能通过nomad二进制执行。

                                                                +

                                                                启动nomad节点

                                                                +
                                                                nomad agent -config=/path/to/nomad.hcl
                                                                +

                                                                集群相关

                                                                +
                                                                # 查看管理(server)节点
                                                                +nomad server members
                                                                +nomad server members -address=http://127.0.0.1:4646
                                                                +
                                                                +# 查看执行(client)节点,即运行dtle插件的节点
                                                                +nomad node status
                                                                +nomad node status -address=http://127.0.0.1:4646
                                                                +
                                                                +# 查看某个节点的状态
                                                                +nomad node status <node ID>
                                                                +

                                                                此时nomad命令作为HTTP客户端连接nomad agent, 如果agent不在默认地址,则需要指定 -address=..., 下同。

                                                                +

                                                                job相关

                                                                +
                                                                # 增加
                                                                +nomad job run job.hcl
                                                                +nomad job run -address="http://127.0.0.1:4646" job.hcl
                                                                +
                                                                +# 删除
                                                                +nomad job stop -purge <job name>
                                                                +
                                                                +# 查看所有
                                                                +nomad job status
                                                                +
                                                                +# 查看某个
                                                                +nomad job status <job name>
                                                                +nomad job status -address=http://127.0.0.1:4646 <job name>
                                                                +

                                                                查看版本

                                                                +

                                                                查看nomad本体版本

                                                                +
                                                                nomad version
                                                                +

                                                                查看某一节点的dtle插件版本

                                                                +
                                                                nomad node status -verbose <node ID> | grep dtle
                                                                +

                                                                输出

                                                                +
                                                                dtle         true      true     Healthy   2020-10-09T14:05:00+08:00
                                                                +driver.dtle               = 1
                                                                +driver.dtle.full_version  = 9.9.9.9-binlog-provider-7d5a0766
                                                                +driver.dtle.version       = 9.9.9.9
                                                                +
                                                                + +
                                                                + +
                                                                +
                                                                +
                                                                + +

                                                                results matching ""

                                                                +
                                                                  + +
                                                                  +
                                                                  + +

                                                                  No results matching ""

                                                                  + +
                                                                  +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + + + + + + + + + + + + + + +
                                                                  + + +
                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.3.1_tuning.html b/4/4.3.1_tuning.html new file mode 100644 index 0000000..8b2e341 --- /dev/null +++ b/4/4.3.1_tuning.html @@ -0,0 +1,953 @@ + + + + + + + 4.3.1.性能调优 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                  +
                                                                  + + + + + + + + +
                                                                  + +
                                                                  + +
                                                                  + + + + + + + + +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + +

                                                                  性能调优

                                                                  +

                                                                  部分参数可能影响复制性能。

                                                                  +

                                                                  nomad constraint

                                                                  +

                                                                  限制 task 在某个nomad client节点上执行。当源端目标端MySQL之间网络延迟很大时,应在各个主机/机房设立nomad client,并限制 task 在本地节点上执行,以充分利用dtle的压缩传输。

                                                                  +

                                                                  ReplChanBufferSize

                                                                  +

                                                                  默认60,增量事物队列数量。增大可以降低可能的空等,但同时会占用更多内存。

                                                                  +

                                                                  ChunkSize

                                                                  +

                                                                  默认2000。全量复制时每次选取的行数。增大可以增加吞吐量,但同时会占用更多内存。

                                                                  +

                                                                  GroupMaxSize & GroupTimeout

                                                                  +

                                                                  GroupMaxSize默认值1,即每个事物立刻发送。增大后将等待数据量达到设定值再打包发送多个事务。 +可增加传输时压缩率,适合低带宽网络。

                                                                  +

                                                                  设定GroupTimeout可避免数据量不足时等待过久。默认值100(毫秒)。一般设成略小于 ping RTT 的时间值。

                                                                  +

                                                                  增量的并行回放(MTS)相关

                                                                  +

                                                                  推荐使用MySQL 5.7.22+ 和 MySQL 8.0 GA 后引入的 WriteSet MTS。在源端MySQL设置

                                                                  +
                                                                  set global transaction_write_set_extraction = XXHASH64;
                                                                  +set global binlog_transaction_dependency_tracking = WRITESET;
                                                                  +-- will take effect for new session
                                                                  +
                                                                  +

                                                                  此后MySQL生成的binlog中将附带TX依赖信息,dtle回放时可以利用依赖信息进行调度。

                                                                  +

                                                                  在dtle dest task config中设置ParallelWorkers,控制增量并行回放线程数。参考值为8~64。

                                                                  +

                                                                  如果因版本和权限问题,不能在源端MySQL上设置WriteSet Tracking,则可以使用dtle的依赖计算功能(UseMySQLDependency = false)。

                                                                  +

                                                                  批量插入(bulk insert)

                                                                  +

                                                                  当源端使用批量插入,即 insert into ... values (),(), ..., () 时,dtle会在目标端使用批量插入。

                                                                  +

                                                                  dtle会使用两个固定数量(行数)的批量插入PreparedStatement,默认为4和8。超过8的会被分到下一批。小于4的会单独插入。

                                                                  +

                                                                  可用BulkInsert1BulkInsert2调整批量插入使用的数量。

                                                                  + + +
                                                                  + +
                                                                  +
                                                                  +
                                                                  + +

                                                                  results matching ""

                                                                  +
                                                                    + +
                                                                    +
                                                                    + +

                                                                    No results matching ""

                                                                    + +
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + + + + + + + + + + + + + + +
                                                                    + + +
                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.3.2_job_sample.html b/4/4.3.2_job_sample.html new file mode 100644 index 0000000..61991a7 --- /dev/null +++ b/4/4.3.2_job_sample.html @@ -0,0 +1,1057 @@ + + + + + + + 4.3.2.Job示例 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                    +
                                                                    + + + + + + + + +
                                                                    + +
                                                                    + +
                                                                    + + + + + + + + +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + +

                                                                    Job 示例

                                                                    +

                                                                    复制整个实例的所有数据库

                                                                    +

                                                                    job.hcl 中ReplicateDoDb配置:

                                                                    +
                                                                      ReplicateDoDb = []
                                                                    +

                                                                    复制指定数据库

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "action_db_1"
                                                                    +  }]
                                                                    +

                                                                    复制一个库中的多个表

                                                                    +

                                                                    job.hcl 中ReplicateDoDb配置:

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "action_db_1"
                                                                    +    Tables = [{
                                                                    +      TableName = "sbtest1"
                                                                    +    }, {
                                                                    +      TableName = "sbtest2"
                                                                    +    }, {
                                                                    +      TableName = "sbtest3"
                                                                    +    }]
                                                                    +  }]
                                                                    +

                                                                    复制多个库中的多个表

                                                                    +

                                                                    job.hcl 中ReplicateDoDb配置:

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "action_db_1"
                                                                    +    Tables = [{
                                                                    +      TableName = "sbtest1"
                                                                    +    }, {
                                                                    +      TableName = "sbtest2"
                                                                    +    }, {
                                                                    +      TableName = "sbtest3"
                                                                    +    }]
                                                                    +  }, {
                                                                    +    TableSchema = "action_db_2"
                                                                    +    Tables = [{
                                                                    +      TableName = "sbtest1"
                                                                    +    }, {
                                                                    +      TableName = "sbtest2"
                                                                    +    }, {
                                                                    +      TableName = "sbtest3"
                                                                    +    }]
                                                                    +  }]
                                                                    +

                                                                    带where条件复制任务

                                                                    +

                                                                    参考2.2.MySQL 的数据分散

                                                                    +

                                                                    使用正则挑选复制库表

                                                                    +

                                                                    参考3.8.dtle mapping 支持

                                                                    +

                                                                    忽略指定的库

                                                                    +

                                                                    job.hcl通过以下配置忽略表db1及db1内所有的表

                                                                    +
                                                                      ReplicateDoDb = []
                                                                    +  ReplicateIgnoreDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +  }]
                                                                    +

                                                                    job.hcl通过以下配置在ReplicateDoDb指定的范围内忽略表db1和db1下的所有表,最终效果是没有要复制的库表

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +    Tables = [{
                                                                    +      TableName = "tb1"
                                                                    +    }]
                                                                    +  }]
                                                                    +  ReplicateIgnoreDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +  }]
                                                                    +

                                                                    忽略指定的表

                                                                    +

                                                                    job.hcl通过以下配置在ReplicateDoDb指定的范围内忽略db1.tb1,最终复制库db1下除了tb1以外的表

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +  }]
                                                                    +  ReplicateIgnoreDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +    Tables = [{
                                                                    +      TableName = "tb1"
                                                                    +    }]
                                                                    +  }]
                                                                    +

                                                                    job.hcl通过以下配置在ReplicateDoDb指定的范围内忽略db1.tb1,最终只复制库db1结构,但不复制db1下的任何表

                                                                    +
                                                                      ReplicateDoDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +    Tables = [{
                                                                    +      TableName = "tb1"
                                                                    +    }]
                                                                    +  }]
                                                                    +  ReplicateIgnoreDb = [{
                                                                    +    TableSchema = "db1"
                                                                    +    Tables = [{
                                                                    +      TableName = "tb1"
                                                                    +    }]
                                                                    +  }]
                                                                    +

                                                                    限定故障转移域

                                                                    +

                                                                    源端任务和目标端任务在指定datacenter上故障转移
                                                                    dtle配置文件:

                                                                    +
                                                                    name = "dtle-1" # rename for each node
                                                                    +datacenter = "shanghai"
                                                                    +...
                                                                    +

                                                                    job示例:

                                                                    +
                                                                    job "test_constraint" {
                                                                    +  # 此处表示该job可以运行在datacenter为"shanghai"和"beijing"的节点上
                                                                    +  datacenters = ["shanghai", "beijing"]
                                                                    +
                                                                    +  group "Src" {
                                                                    +    constraint {
                                                                    +      attribute  = "${node.datacenter}"
                                                                    +      operator   = "="
                                                                    +      value      = "shanghai"
                                                                    +    }
                                                                    +    task "src" {
                                                                    +      driver = "dtle"
                                                                    +      config {
                                                                    +        ReplicateDoDb = [{
                                                                    +          TableSchema = "test"
                                                                    +        }]
                                                                    +        ConnectionConfig = {
                                                                    +            ...
                                                                    +        }
                                                                    +      }
                                                                    +    }
                                                                    +  }
                                                                    +  group "Dest" {
                                                                    +    constraint {
                                                                    +      attribute  = "${node.datacenter}"
                                                                    +      operator   = "="
                                                                    +      value      = "beijing"
                                                                    +    }
                                                                    +    task "dest" {
                                                                    +      driver = "dtle"
                                                                    +      config {
                                                                    +        ConnectionConfig = {
                                                                    +            ...
                                                                    +        }
                                                                    +      }
                                                                    +    }
                                                                    +  }
                                                                    +}
                                                                    +
                                                                    + +
                                                                    + +
                                                                    +
                                                                    +
                                                                    + +

                                                                    results matching ""

                                                                    +
                                                                      + +
                                                                      +
                                                                      + +

                                                                      No results matching ""

                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + + + + + + + + + + + + + + +
                                                                      + + +
                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.3_job_configuration.html b/4/4.3_job_configuration.html new file mode 100644 index 0000000..3df13b1 --- /dev/null +++ b/4/4.3_job_configuration.html @@ -0,0 +1,1587 @@ + + + + + + + 4.3.作业(job)配置 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      +
                                                                      + + + + + + + + +
                                                                      + +
                                                                      + +
                                                                      + + + + + + + + +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + + +

                                                                      作业(job)配置

                                                                      +

                                                                      作业配置一般采用 json (HTTP API 提交)或 hcl (nomad 命令行工具提交)文件。样例配置在 /usr/share/dtle/scripts/ 中。

                                                                      +

                                                                      nomad job 的完整配置参考 https://www.nomadproject.io/docs/job-specification/

                                                                      +

                                                                      nomad job 有group/task层级,一个group中的tasks会被放在同一个节点执行。dtle要求src和dest task分别放在src 和 dest group. +task 中指定 driver = "dtle", 在config段落中填写dtle专有配置。

                                                                      +

                                                                      从4.22.11.0开始,dtle配置发生变化

                                                                      +
                                                                        +
                                                                      • 所有常规配置填在源端任务(src task)
                                                                          +
                                                                        • 原两端的ConnectionConfig的分别重命名为SrcConnectionConfigDestConnectionConfig
                                                                        • +
                                                                        +
                                                                      • +
                                                                      • 目标端固定填写一个配置项 DestType
                                                                      • +
                                                                      +
                                                                        group "dest" {
                                                                      +    task "dest" {
                                                                      +      driver = "dtle"
                                                                      +      config {
                                                                      +        DestType = "mysql" # 或"kafka"
                                                                      +      }
                                                                      +    }
                                                                      +  }
                                                                      +

                                                                      从3.x ~ 4.22.07.x升级到4.22.11后, 可使用 /usr/share/dtle/scripts/dtle-7to11.py更新现有job配置格式.

                                                                      +
                                                                      ./dtle-7to11.py 'http://127.0.0.1:4646'
                                                                      +
                                                                      +

                                                                      dtle 源端任务有如下配置项:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      GtidString默认为 全量+增量 任务MySQL的GTID集合(区间), 可取值:
                                                                      1. 默认为空, 则为 <全量+增量> 复制任务
                                                                      2. 已复制的GTID集合(不是点位), 将从未复制的GTID开始增量复制
                                                                      GtidStartString增量复制开始的 GTID 点位. (将自动求差集获取上述 GTID 集合.) 需要保持 Gtid 为空
                                                                      AutoGtidBoolfalse设为 true 后自动从当前 GTID 开始增量任务. 需要保持 Gtid 和 GtidStart 为空.
                                                                      BinlogRelayBoolfalse是否使用Binlog Relay(中继)机制. 即先将源端mysql binlog读到本地, 避免源端清除binlog导致任务失败. 注意: 如果使用带有BinlogRelay的纯增量复制, 必须用Gtid指定复制起点,不能使用BinlogFile/Pos。
                                                                      BinlogFileString增量任务开始的Binlog文件(即源端mysql上 show master status 的结果).
                                                                      BinlogPosInt0增量任务开始的Binlog位置, 和BinlogFile配套使用.
                                                                      ReplicateDoDbObject数组-如为空[], 则复制整个数据库实例. 可填写多元素. 元素内容见下方说明
                                                                      ReplicateIgnoreDbObject数组-指定要忽略的库表,优先级高于ReplicateDoDb。如为空[], 则完全执行ReplicateDoDb配置. 可填写多元素. 元素内容见下方说明
                                                                      SrcConnectionConfigObject-MySQL源端信息, 见下方 ConnectionConfig 说明。和 OracleConfig 二选一填写。
                                                                      DestConnectionConfigObject-MySQL目标端信息, 见下方 ConnectionConfig 说明。和 KafkaConfig 二选一填写。
                                                                      SrcOracleConfigObject-Oracle源端信息, 见下方 OracleConfig 说明。和 SrcConnectionConfig 二选一填写。
                                                                      KafkaConfigObject-Kafka目标端信息, 见下方 KafkaConfig 说明。和 DestConnectionConfig 二选一填写。
                                                                      DropTableIfExistsBoolfalse全量复制时, 在目标端删除参与复制的表, 之后由dtle自动创建表结构 (相关参数: SkipCreateDbTable). 如果开启此选项, 目标端数据库用户需要有相应表的DROP权限.
                                                                      SkipCreateDbTableBoolfalse不为目标库创建复制库和复制表. 如果关闭此选项, 目标端数据库用户需要有相应表的CREATE权限.
                                                                      ParallelWorkersInt1回放端的并发数. 当值大于1时, 目标端会进行并行回放
                                                                      UseMySQLDependencyBooltrue默认使用MySQL的并行回放事务依赖关系检测。如果不能开启源端MySQL的WRITESET追踪,可将此设为false,使用dtle的依赖检测。
                                                                      DependencyHistorySizeInt2500使用dtle并行复制计算事务依赖时,保存的行数。增大可以潜在地增加并行度,但会更消耗内存。
                                                                      ForeignKeyChecksBooltrue3.21.10.0+. 默认开启目标端MySQL连接上的 @@foreign_key_checks
                                                                      ReplChanBufferSizeInt32复制任务缓存的大小, 单位为事务组数。事务组大小和GroupMaxSize/GroupTimeout有关。
                                                                      ChunkSizeInt2000全量复制时, 每次读取-传输-写入的行数
                                                                      DumpEntryLimitInt67108864 (64M)复制时, 读取后分块发送的分块大小。空闲内存较小时需适当调小。适用于大全量/增量大事务
                                                                      ExpandSyntaxSupportBoolfalse支持复制 用户权限/存储过程DDL/函数DDL
                                                                      GroupMaxSizeInt1源端发送数据时, 等待数据包达到一定大小(GroupMaxSize字节)后发送该包. 单位为字节. 默认值1表示即刻发送数据
                                                                      GroupTimeoutInt100源端发送数据时, 等待数据包达到超时时间(GroupTimeout毫秒)发送该包. 单位为毫秒.
                                                                      SqlFilterString数组[]是否跳过一些事件, 如 ["NoDMLDelete", "NoDDLDropSchema", "NoDDLDropTable", "NoDDLDropIndex", "NoDDLTruncate"]。详见下文。
                                                                      SlaveNetWriteTimeoutInt28800 (8小时)调整MySQL slave线程的超时时间。MySQL默认值为60,太短可能导致断连。太长则会导致异常连接回收不及时。
                                                                      BulkInsert1Int4批量插入第一级数量。见性能调优
                                                                      BulkInsert2Int8批量插入第二级数量。
                                                                      BulkInsert3Int128批量插入第三级数量。
                                                                      SetGtidNextBoolfalse目标端执行事务前执行set gtid_next = ..., 使源端目标端MySQL事务gtid相同。可用以避免循环复制。需要 REPLICATION_APPLIER (MySQL 8.0)或 SUPER 权限
                                                                      TwoWaySyncBoolfalse开启双向任务。
                                                                      TwoWaySyncGtidString""反向任务使用的Gtid。当值为"auto"时,从当前 GTID 开始增量。
                                                                      RetryTxLimitInt3当执行发生某些错误时(如:deadlock),重试事务的次数
                                                                      +

                                                                      ReplicateDoDb 每个元素有如下字段:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      TableSchemaString-数据库名
                                                                      TableSchemaRegexString-数据库映射正则表达式,可用于多个数据库重命名
                                                                      TableSchemaRenameString-重命名后的数据库名称,当进行多数据库重命名时,支持正则表达式,使用见demo
                                                                      TablesObject数组-可配置多张表, 类型为Table. 若不配置, 则复制指定数据库中的所有表
                                                                      Table.TableNameString-表名
                                                                      Table.WhereString-只复制满足该条件的数据行. 语法为SQL表达式, 返回值应为布尔值. 可以引用表中的列名.
                                                                      Table.TableRegexString-表名映射匹配正则表达式,用于多个表同时重命名.
                                                                      Table.TableRenameString-重命名后的表名,当进行多表重命名时,支持支持正则表达,见demo
                                                                      Table.ColumnMapFromString数组-列映射(暂不支持正则表达式)。见demo
                                                                      Table.ColumnMapToString数组-列映射(暂不支持正则表达式)。见demo
                                                                      +

                                                                      注:hcl格式中${SOME_TEXT}会被认为是变量引用。正则替换中输入此类文字时,则需使用双$符号:$${SOME_TEXT}

                                                                      +

                                                                      ReplicateIgnoreDb 每个元素有如下字段:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      TableSchemaString-数据库名
                                                                      TablesObject数组-可配置多张表, 类型为Table. 若不配置, 则忽略指定数据库中的所有表
                                                                      Table.TableNameString-表名
                                                                      +

                                                                      ConnectionConfig 有如下字段:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      HostString-数据源地址
                                                                      PortString-数据源端口
                                                                      UserString-数据源用户名
                                                                      PasswordString-数据源密码
                                                                      CharsetStringutf8mb4数据源的字符集
                                                                      +

                                                                      KafkaConfig 有如下字段:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      TopicString-Kafka Topic
                                                                      SchemaChangeTopicString"schema-changes.Topic"Schema change (DDL) 消息使用的topic
                                                                      TopicWithSchemaTableBooltrue默认最终topic为 指定的Topic.库名.表名, 如果不需要追加库表名,请设为false
                                                                      BrokersString数组-Kafka Brokers, 如 ["127.0.0.1:9192", "..."]
                                                                      ConverterStringjsonKafka Converter。目前仅支持json
                                                                      MessageGroupMaxSizeint1目标端向kafka发送消息时, 等待MySQL事务数据包达到一定大小(MessageGroupMaxSize字节)后将该包序列化并发送. 单位为字节. 默认值1表示即刻发送数据
                                                                      MessageGroupTimeoutint100目标端向kafka发送消息时, 等待数据包达到超时时间(MessageGroupTimeout毫秒)发送该包. 单位为毫秒.
                                                                      UserString-Kafka SASL.User
                                                                      PasswordString-Kafka SASL.Password
                                                                      +

                                                                      OracleConfig 有如下字段:

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      参数名必填?类型默认值说明
                                                                      HostString-数据源地址
                                                                      PortString-数据源端口
                                                                      UserString-数据源用户名
                                                                      PasswordString-数据源密码
                                                                      ServiceNameStringXE数据源服务名
                                                                      Scnint0同步起点
                                                                      +

                                                                      SqlFilter注意事项

                                                                      +

                                                                      全部的filter:

                                                                      +
                                                                        +
                                                                      • NoDML
                                                                      • +
                                                                      • NoDMLInsert, NoDMLDelete, NoDMLUpdate
                                                                      • +
                                                                      • NoDDL
                                                                      • +
                                                                      • NoDDLCreateSchema, NoDDLCreateTable
                                                                      • +
                                                                      • NoDDLDropSchema, NoDDLDropTable, NoDDLDropIndex, NoDDLTruncate
                                                                      • +
                                                                      • NoDDLAlterTable
                                                                      • +
                                                                      • NoDDLAlterTableAddColumn, NoDDLAlterTableDropColumn
                                                                      • +
                                                                      • NoDDLAlterTableModifyColumn, NoDDLAlterTableChangeColumn, NoDDLAlterTableAlterColumn
                                                                      • +
                                                                      +

                                                                      SqlFilter只能简单过滤相关语句。不会自动转换后续语句。例如

                                                                      +
                                                                      -- SqlFilter = ["NoDDLDropTable"]
                                                                      +
                                                                      +/** 源端 **/
                                                                      +-- 已有 table a.a (id int primary key)
                                                                      +drop table a.a;
                                                                      +create table a.a (id int primary key, val int);
                                                                      +insert into a.a values (1, 11);
                                                                      +
                                                                      +/** 目标端 **/
                                                                      +-- 已有 table a.a (id int primary key)
                                                                      +-- drop table 语句被过滤
                                                                      +create table a.a (id int primary key, val int);
                                                                      +-- 执行错误,目标表已存在
                                                                      +insert into a.a values (1, 11);
                                                                      +-- 执行错误,列数目不对
                                                                      +
                                                                      +

                                                                      用户需自行确保在发生过滤的情况下,后续DML/DDL能正确执行。

                                                                      +

                                                                      nomad job 常用通用配置

                                                                      +

                                                                      constraint

                                                                      +

                                                                      job、group 或 task 级配置。配置后该job/group/task会绑定在指定的节点上执行

                                                                      +
                                                                      constraint {
                                                                      +  attribute = "${node.unique.name}"
                                                                      +  value = "nomad3"
                                                                      +}
                                                                      +

                                                                      完整参考

                                                                      + +

                                                                      resources

                                                                      +

                                                                      task级配置,src/dest task需各自重复。默认值为 cpu=100memory=300。 +以默认值建立大量轻量级任务,会导致资源不够而pending,可适当调小。

                                                                      +

                                                                      任务的内存消耗和每行大小、事物大小、队列长度有关。注意真实资源消耗,避免OOM。

                                                                      +
                                                                      task "src" {
                                                                      +  resources {
                                                                      +    cpu    = 100 # MHz
                                                                      +    memory = 300 # MB
                                                                      +  }
                                                                      +}
                                                                      +

                                                                      restart & reschedule

                                                                      +

                                                                      nomad job 默认有如下 restartreschedule 配置

                                                                      +
                                                                      restart { # group or task level
                                                                      +  interval = "30m"
                                                                      +  attempts = 2
                                                                      +  delay    = "15s"
                                                                      +  mode     = "fail" # "fail" or "delay"
                                                                      +                    # "delay" 意味着interval过后继续尝试
                                                                      +                    # "fail" 则不再尝试
                                                                      +}
                                                                      +reschedule { # job or group level
                                                                      + delay          = "30s"
                                                                      + delay_function = "exponential"
                                                                      + max_delay      = "1h"
                                                                      + unlimited      = true
                                                                      +}
                                                                      +
                                                                        +
                                                                      • 当task报错时,会根据restart配置,30分钟内在同一节点上重启最多两次
                                                                          +
                                                                        • 即使失败的job被stop -purge再重新添加,也需要根据restart参数重启
                                                                        • +
                                                                        +
                                                                      • +
                                                                      • 2次重启均失败后,会根据reschedule配置,在其他节点上执行
                                                                      • +
                                                                      +

                                                                      为了避免无限reschedule带来的问题,dtle安装包提供的样例job配置中(<prefix>/usr/share/dtle/scripts/example.job.*),限制reschedule为每半小时1次:

                                                                      +
                                                                      reschedule {
                                                                      +  attempts = 1
                                                                      +  interval = "30m"
                                                                      +  unlimited = false
                                                                      +}
                                                                      +# 或json格式
                                                                      +"Reschedule": {
                                                                      +  "Attempts": 1,
                                                                      +  "Interval": 1800000000000,
                                                                      +  "Unlimited": false
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +

                                                                      results matching ""

                                                                      +
                                                                        + +
                                                                        +
                                                                        + +

                                                                        No results matching ""

                                                                        + +
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + + + + + + + + + + + + + + +
                                                                        + + +
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.4.1_dtle_http_api.html b/4/4.4.1_dtle_http_api.html new file mode 100644 index 0000000..2172d5a --- /dev/null +++ b/4/4.4.1_dtle_http_api.html @@ -0,0 +1,7217 @@ + + + + + + + 4.4.1.dtle 3.x HTTP API说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        +
                                                                        + + + + + + + + +
                                                                        + +
                                                                        + +
                                                                        + + + + + + + + +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + +

                                                                        dtle 3.x HTTP API 说明

                                                                        +

                                                                        dtle 3.x 根据业务功能提供了一套HTTP API(开启方式见"节点配置",api_addr),可与dtle UI配套使用。

                                                                        +

                                                                        本节API示例默认使用swagger UI调用。

                                                                        +

                                                                        通过swagger UI查看接口文档

                                                                        +

                                                                        访问http://{dtle ip}:8190/swagger/index.html通过swagger UI查看接口文档,打开界面如下:

                                                                        +

                                                                        +

                                                                        通过swagger UI调用API

                                                                        +

                                                                        除了使用curl命令外,还可以通过swagger UI界面调用API,具体步骤如下:

                                                                        +

                                                                        1 点击"Try it out",进入调试模式

                                                                        +

                                                                        +

                                                                        2 填写请求参数后点击"Execute"调用API

                                                                        +

                                                                        +

                                                                        3 查看响应:

                                                                        +

                                                                        +

                                                                        4 由于用户校验功能限制,大多数接口调用需要在header中携带登录成功返回的token,在swagger页面可点击swagger页面顶部的Authorize按钮,将token填入Value的文本框中,swagger页面中其他接口即可正常使用

                                                                        +

                                                                        +

                                                                        dtle API Docs

                                                                        +

                                                                        This is a sample server for dev.

                                                                        +

                                                                        Version: 2.0

                                                                        +

                                                                        Security

                                                                        +

                                                                        ApiKeyAuth

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        apiKeyAPI Key
                                                                        Inheader
                                                                        NameAuthorization
                                                                        +

                                                                        /v2/database/columns

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        list columns of database source instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        hostquerydatabase hostYesstring
                                                                        portquerydatabase portYesinteger
                                                                        userquerydatabase userYesstring
                                                                        passwordquerydatabase passwordYesstring
                                                                        database_typequerydatabase_typeYesstring
                                                                        service_namequerydatabase service_nameNostring
                                                                        schemaquerydatabase schemaYesstring
                                                                        tablequerydatabase tableYesstring
                                                                        character_setquerydatabase character setNostring
                                                                        is_password_encryptedqueryindecate that database password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ListColumnsRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/database/instance_connection

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        connect to database instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        hostquerydatabase hostYesstring
                                                                        portquerydatabase portYesinteger
                                                                        userquerydatabase userYesstring
                                                                        passwordquerydatabase passwordYesstring
                                                                        database_typequerydatabase_typeYesstring
                                                                        service_namequerydatabase service_nameNostring
                                                                        is_password_encryptedqueryindecate that database password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ConnectionRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/database/schemas

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        list schemas of database source instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        database_typequerydatabase_typeYesstring
                                                                        hostquerydatabase hostYesstring
                                                                        portquerydatabase portYesinteger
                                                                        userquerydatabase userYesstring
                                                                        passwordquerydatabase passwordYesstring
                                                                        service_namequerydatabase service_nameNostring
                                                                        character_setquerydatabase character setNostring
                                                                        is_password_encryptedqueryindecate that database password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ListSchemasRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/gtid

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get src task current gtid.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idqueryjob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.JobGtidResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/create

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create migration job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        migration_job_configbodymigration job configYesmodels.CreateOrUpdateMysqlToMysqlJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToMysqlJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/delete

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        delete migration job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.DeleteJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/detail

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get migration job detail.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idqueryjob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.MysqlToMysqlJobDetailRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/pause

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        pause migration job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.PauseJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/resume

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        resume migration job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ResumeJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/reverse

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        reverse migration Job

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        reverse_configbodyreverse config configYesmodels.ReverseJobReq
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ReverseJobResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/reverse_start

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        start reverse-init job

                                                                        +
                                                                        Description:
                                                                        +

                                                                        Start Reverse Job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ReverseStartRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/migration/update

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        update migration job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        migration_job_configbodymigration job configYesmodels.CreateOrUpdateMysqlToMysqlJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToMysqlJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/reverse_start

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        start reverse-init job

                                                                        +
                                                                        Description:
                                                                        +

                                                                        Finish Job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ReverseStartRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/create

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create subscription job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        subscription_job_configbodysubscription job configYesmodels.CreateOrUpdateMysqlToKafkaJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToKafkaJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/delete

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        delete subscription job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.DeleteJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/detail

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get subscription job detail.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idqueryjob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.MysqlToKafkaJobDetailRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/pause

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        pause subscription job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.PauseJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/resume

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        resume subscription job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ResumeJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/subscription/update

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        update subscription job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        subscription_job_configbodysubscription job configYesmodels.CreateOrUpdateMysqlToKafkaJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToKafkaJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/create

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create sync job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        sync_job_configbodysync job configYesmodels.CreateOrUpdateMysqlToMysqlJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToMysqlJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/delete

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        delete sync job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.DeleteJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/detail

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get sync job detail.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idqueryjob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.MysqlToMysqlJobDetailRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/pause

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        pause sync job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.PauseJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/resume

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        resume sync job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ResumeJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/reverse

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        reverse sync Job

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        reverse_configbodyreverse config configYesmodels.ReverseJobReq
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ReverseJobResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/reverse_start

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        start reverse-init job

                                                                        +
                                                                        Description:
                                                                        +

                                                                        Start Reverse Job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_idformDatajob idYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ReverseStartRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/job/sync/update

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        update sync job.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        sync_job_configbodysync job configYesmodels.CreateOrUpdateMysqlToMysqlJobParamV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateOrUpdateMysqlToMysqlJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/jobs/migration

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get job list.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        filter_job_idqueryfilter job idNostring
                                                                        filter_job_src_ipqueryfilter job src ipNostring
                                                                        filter_job_src_portqueryfilter job src portNostring
                                                                        filter_job_dest_ipqueryfilter job dest ipNostring
                                                                        filter_job_dest_portqueryfilter job dest portNostring
                                                                        filter_job_statusqueryfilter job statusNostring
                                                                        order_byqueryorder byNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.JobListRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/jobs/subscription

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get subscription job list.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        filter_job_idqueryfilter job idNostring
                                                                        filter_job_src_ipqueryfilter job src ipNostring
                                                                        filter_job_src_portqueryfilter job src portNostring
                                                                        filter_job_dest_ipqueryfilter job dest ipNostring
                                                                        filter_job_dest_portqueryfilter job dest portNostring
                                                                        filter_job_statusqueryfilter job statusNostring
                                                                        order_byqueryorder byNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.JobListRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/jobs/sync

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get sync job list.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        filter_job_idqueryfilter job idNostring
                                                                        filter_job_src_ipqueryfilter job src ipNostring
                                                                        filter_job_src_portqueryfilter job src portNostring
                                                                        filter_job_dest_ipqueryfilter job dest ipNostring
                                                                        filter_job_dest_portqueryfilter job dest portNostring
                                                                        filter_job_statusqueryfilter job statusNostring
                                                                        order_byqueryorder byNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.JobListRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/log/level

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        reload log level dynamically.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        dtle_log_levelformDatadtle log levelYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.UpdataLogLevelRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/login

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        user loginV2

                                                                        +
                                                                        Description:
                                                                        +

                                                                        user login

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        userbodyuser login requestYesmodels.UserLoginReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.GetUserLoginResV2
                                                                        +

                                                                        /v2/login/captcha

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        create base64Captcha

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create base64Captcha

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        captcha_typeformDatacaptcha typeYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CaptchaRespV2
                                                                        +

                                                                        /v2/loginWithoutVerifyCode

                                                                        +

                                                                        POST

                                                                        +
                                                                        Summary:
                                                                        +

                                                                        user LoginWithoutVerifyCodeV2

                                                                        +
                                                                        Description:
                                                                        +

                                                                        user login Without Verify Code

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        userbodyuser login requestYesmodels.LoginWithoutVerifyCodeReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.GetUserLoginResV2
                                                                        +

                                                                        /v2/monitor/task

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get progress of tasks within an allocation.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        allocation_idqueryallocation idYesstring
                                                                        task_namequerytask nameYesstring
                                                                        nomad_http_addressquerynomad_http_address is the http address of the nomad that the target dtle is running with. ignore it if you are not sure what to provideNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.GetTaskProgressRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/mysql/columns

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        list columns of mysql source instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        mysql_hostquerymysql hostYesstring
                                                                        mysql_portquerymysql portYesstring
                                                                        mysql_userquerymysql userYesstring
                                                                        mysql_passwordquerymysql passwordYesstring
                                                                        mysql_schemaquerymysql schemaYesstring
                                                                        mysql_tablequerymysql tableYesstring
                                                                        mysql_character_setquerymysql character setNostring
                                                                        is_mysql_password_encryptedqueryindecate that mysql password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ListColumnsRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/mysql/instance_connection

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        connect to mysql instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        mysql_hostquerymysql hostYesstring
                                                                        mysql_portquerymysql portYesstring
                                                                        mysql_userquerymysql userYesstring
                                                                        mysql_passwordquerymysql passwordYesstring
                                                                        is_mysql_password_encryptedqueryindecate that mysql password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ConnectionRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/mysql/schemas

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        list schemas of mysql source instance.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        mysql_hostquerymysql hostYesstring
                                                                        mysql_portquerymysql portYesstring
                                                                        mysql_userquerymysql userYesstring
                                                                        mysql_passwordquerymysql passwordYesstring
                                                                        mysql_character_setquerymysql character setNostring
                                                                        is_mysql_password_encryptedqueryindecate that mysql password is encrypted or notNoboolean
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ListSchemasRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/nodes

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get node list.

                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.NodeListRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/role/create

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create Role.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        RolebodyRole infoYesmodels.CreateRoleReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateRoleRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/role/delete

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        delete Role.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        tenantformDatatenantYesstring
                                                                        nameformDatarole nameYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.DeleteRoleRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/role/list

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get role list.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        filter_tenantqueryfilter tenantNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.RoleListResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/role/update

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        update Role info.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        RolebodyRole infoYesmodels.UpdateRoleReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.UpdateRoleRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/tenant/list

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get tenant list.

                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.TenantListResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/create

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        create user.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        userbodyuser infoYesmodels.CreateUserReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CreateUserRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/current_user

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get current user.

                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.CurrentUserResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/delete

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        delete user.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        tenantformDatatenantYesstring
                                                                        usernameformDatauser nameYesstring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.DeleteUserRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/list

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        get user list.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        filter_usernamequeryfilter user nameNostring
                                                                        filter_tenantqueryfilter tenantNostring
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.UserListResp
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/list_action

                                                                        +

                                                                        GET

                                                                        +
                                                                        Description:
                                                                        +

                                                                        list user action.

                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ListActionRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/reset_password

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        reset user password.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        userbodyreset user passwordYesmodels.ResetPasswordReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ResetPasswordRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/user/update

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        update user info.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        userbodyuser infoYesmodels.UpdateUserReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.UpdateUserRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        /v2/validation/job

                                                                        +

                                                                        POST

                                                                        +
                                                                        Description:
                                                                        +

                                                                        validate job config.

                                                                        +
                                                                        Parameters
                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        NameLocated inDescriptionRequiredSchema
                                                                        job_configbodyvalidate job configYesmodels.ValidateJobReqV2
                                                                        +
                                                                        Responses
                                                                        + + + + + + + + + + + + + + + +
                                                                        CodeDescriptionSchema
                                                                        200OKmodels.ValidateJobRespV2
                                                                        +
                                                                        Security
                                                                        + + + + + + + + + + + + +
                                                                        Security SchemaScopes
                                                                        ApiKeyAuth
                                                                        +

                                                                        Models

                                                                        +

                                                                        common.JobListItemV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dst_addr_list[ string ]No
                                                                        dst_database_typestringNo
                                                                        job_create_timestringNo
                                                                        job_idstringNo
                                                                        job_statusstringNo
                                                                        job_steps[ common.JobStep ]No
                                                                        src_addr_list[ string ]No
                                                                        src_database_typestringNo
                                                                        topicstringNo
                                                                        userstringNo
                                                                        +

                                                                        common.JobStep

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        job_create_timestringNo
                                                                        step_namestringNo
                                                                        step_schedulenumberNo
                                                                        step_statusstringNo
                                                                        +

                                                                        common.Role

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        authoritystringNo
                                                                        namestringNo
                                                                        object_typestringNo
                                                                        object_users[ string ]No
                                                                        tenantstringNo
                                                                        +

                                                                        common.User

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        create_timestringNo
                                                                        passwordstringNo
                                                                        remarkstringNo
                                                                        rolestringNo
                                                                        tenantstringNo
                                                                        usernamestringNo
                                                                        +

                                                                        models.BasicTaskProfile

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        configurationmodels.ConfigurationNo
                                                                        connection_infomodels.ConnectionInfoNo
                                                                        dtle_node_infos[ models.DtleNodeInfo ]No
                                                                        job_base_infomodels.JobBaseInfoNo
                                                                        replicate_do_db[ models.DataSourceConfig ]No
                                                                        replicate_ignore_db[ models.DataSourceConfig ]No
                                                                        +

                                                                        models.BinlogValidation

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        errorstringError is a string version of any error that may have occuredNo
                                                                        validatedbooleanNo
                                                                        +

                                                                        models.BufferStat

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        applier_tx_queue_sizeintegerNo
                                                                        binlog_event_queue_sizeintegerNo
                                                                        extractor_tx_queue_sizeintegerNo
                                                                        send_by_size_fullintegerNo
                                                                        send_by_timeoutintegerNo
                                                                        +

                                                                        models.ButtonItem

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        actionstringNo
                                                                        text_cnstringNo
                                                                        text_enstringNo
                                                                        uristringNo
                                                                        +

                                                                        models.CaptchaRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        data_schemestringNo
                                                                        idstringNo
                                                                        messagestringNo
                                                                        +

                                                                        models.Configuration

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dst_configmodels.DstConfigNo
                                                                        fail_overbooleanNo
                                                                        retry_timesintegerNo
                                                                        src_configmodels.SrcConfigNo
                                                                        +

                                                                        models.ConnectionInfo

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dst_data_basemodels.DatabaseConnectionConfigNo
                                                                        dst_kafkamodels.KafkaDestTaskConfigNo
                                                                        src_data_basemodels.DatabaseConnectionConfigNo
                                                                        +

                                                                        models.ConnectionRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.ConnectionValidation

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        errorstringError is a string version of any error that may have occuredNo
                                                                        validatedbooleanNo
                                                                        +

                                                                        models.CreateOrUpdateMysqlToKafkaJobParamV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_taskmodels.KafkaDestTaskConfigYes
                                                                        failoverbooleanfailover default:trueNo
                                                                        is_password_encryptedbooleanNo
                                                                        job_idstringYes
                                                                        retryintegerNo
                                                                        src_taskmodels.SrcTaskConfigYes
                                                                        task_step_namestringNo
                                                                        +

                                                                        models.CreateOrUpdateMysqlToKafkaJobRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_taskmodels.KafkaDestTaskConfigYes
                                                                        eval_create_indexintegerNo
                                                                        failoverbooleanfailover default:trueNo
                                                                        is_password_encryptedbooleanNo
                                                                        job_idstringYes
                                                                        job_modify_indexintegerNo
                                                                        messagestringNo
                                                                        retryintegerNo
                                                                        src_taskmodels.SrcTaskConfigYes
                                                                        task_step_namestringNo
                                                                        +

                                                                        models.CreateOrUpdateMysqlToMysqlJobParamV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_taskmodels.DestTaskConfigYes
                                                                        failoverbooleanNo
                                                                        is_password_encryptedbooleanNo
                                                                        job_idstringYes
                                                                        retryintegerNo
                                                                        reversebooleanNo
                                                                        src_taskmodels.SrcTaskConfigYes
                                                                        task_step_namestringNo
                                                                        +

                                                                        models.CreateOrUpdateMysqlToMysqlJobRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_taskmodels.DestTaskConfigYes
                                                                        eval_create_indexintegerNo
                                                                        failoverbooleanNo
                                                                        is_password_encryptedbooleanNo
                                                                        job_idstringYes
                                                                        job_modify_indexintegerNo
                                                                        messagestringNo
                                                                        retryintegerNo
                                                                        reversebooleanNo
                                                                        src_taskmodels.SrcTaskConfigYes
                                                                        task_step_namestringNo
                                                                        +

                                                                        models.CreateRoleReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        authoritystringNo
                                                                        namestringNo
                                                                        operation_object_typestringNo
                                                                        operation_users[ string ]No
                                                                        tenantstringNo
                                                                        +

                                                                        models.CreateRoleRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.CreateUserReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        pass_wordstringYes
                                                                        remarkstringNo
                                                                        rolestringYes
                                                                        tenantstringYes
                                                                        usernamestringYes
                                                                        +

                                                                        models.CreateUserRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.CurrentCoordinates

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        filestringNo
                                                                        gtid_setstringNo
                                                                        positionintegerNo
                                                                        read_master_log_posintegerNo
                                                                        relay_master_log_filestringNo
                                                                        retrieved_gtid_setstringNo
                                                                        +

                                                                        models.CurrentUserResp

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        current_usercommon.UserNo
                                                                        messagestringNo
                                                                        +

                                                                        models.DataSourceConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        table_schemastringNo
                                                                        table_schema_regexstringNo
                                                                        table_schema_renamestringNo
                                                                        tables[ models.TableConfig ]No
                                                                        +

                                                                        models.DatabaseConnectionConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        database_typestringYes
                                                                        hoststringYes
                                                                        passwordstringYes
                                                                        portintegerYes
                                                                        service_namestringNo
                                                                        userstringYes
                                                                        +

                                                                        models.DelayCount

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        numintegerNo
                                                                        timeintegerNo
                                                                        +

                                                                        models.DeleteJobRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.DeleteRoleRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.DeleteUserRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.DestTaskConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        connection_configmodels.DatabaseConnectionConfigYes
                                                                        database_typestringNo
                                                                        mysql_dest_task_configmodels.MysqlDestTaskConfigNo
                                                                        node_idstringNo
                                                                        task_namestringYes
                                                                        +

                                                                        models.DstConfig

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        mysql_dest_task_configmodels.MysqlDestTaskConfigNo
                                                                        +

                                                                        models.DtleNodeInfo

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        data_sourcestringNo
                                                                        node_addrstringNo
                                                                        node_idstringNo
                                                                        sourcestringNo
                                                                        +

                                                                        models.GetTaskProgressRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        tasks_statusmodels.TaskProgressNo
                                                                        +

                                                                        models.GetUserLoginResV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        datamodels.UserLoginResV2No
                                                                        messagestringNo
                                                                        +

                                                                        models.GtidModeValidation

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        errorstringError is a string version of any error that may have occuredNo
                                                                        validatedbooleanNo
                                                                        +

                                                                        models.JobBaseInfo

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        delayintegerNo
                                                                        job_create_timestringNo
                                                                        job_idstringNo
                                                                        job_statusstringNo
                                                                        job_steps[ common.JobStep ]No
                                                                        subscription_topicstringNo
                                                                        +

                                                                        models.JobGtidResp

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        gtidstringNo
                                                                        messagestringNo
                                                                        +

                                                                        models.JobListRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        jobs[ common.JobListItemV2 ]No
                                                                        messagestringNo
                                                                        +

                                                                        models.KafkaDestTaskConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        kafka_broker_addrs[ string ]Yes
                                                                        kafka_topicstringYes
                                                                        message_group_max_sizeintegerNo
                                                                        message_group_timeoutintegerNo
                                                                        node_idstringNo
                                                                        task_namestringYes
                                                                        +

                                                                        models.ListActionRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        authority[ models.MenuItem ]No
                                                                        messagestringNo
                                                                        +

                                                                        models.ListColumnsRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        columns[ string ]No
                                                                        messagestringNo
                                                                        +

                                                                        models.ListSchemasRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        schemas[ models.SchemaItem ]No
                                                                        +

                                                                        models.LoginWithoutVerifyCodeReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        passwordstringYes
                                                                        tenantstringYes
                                                                        usernamestringYes
                                                                        +

                                                                        models.MenuItem

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        admin_onlybooleanNo
                                                                        idintegerNo
                                                                        menu_levelintegerNo
                                                                        menu_urlstringNo
                                                                        namestringNo
                                                                        operations[ models.ButtonItem ]No
                                                                        parent_idintegerNo
                                                                        text_cnstringNo
                                                                        text_enstringNo
                                                                        +

                                                                        models.MysqlDestTaskConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dependency_history_sizeintegerNo
                                                                        parallel_workersintegerNo
                                                                        use_my_sql_dependencybooleanNo
                                                                        +

                                                                        models.MysqlSrcTaskConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        auto_gtidbooleanNo
                                                                        binlog_relaybooleanNo
                                                                        expand_syntax_supportbooleanNo
                                                                        gtidstringNo
                                                                        wait_on_jobstringNo
                                                                        +

                                                                        models.MysqlTaskValidationReport

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        binlog_validationmodels.BinlogValidationNo
                                                                        connection_validationmodels.ConnectionValidationNo
                                                                        gtid_mode_validationmodels.GtidModeValidationNo
                                                                        privileges_validationmodels.PrivilegesValidationNo
                                                                        server_id_validationmodels.ServerIDValidationNo
                                                                        task_namestringNo
                                                                        +

                                                                        models.MysqlToKafkaJobDetailRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        basic_task_profilemodels.BasicTaskProfileNo
                                                                        messagestringNo
                                                                        task_logs[ models.TaskLog ]No
                                                                        +

                                                                        models.MysqlToMysqlJobDetailRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        basic_task_profilemodels.BasicTaskProfileNo
                                                                        messagestringNo
                                                                        task_logs[ models.TaskLog ]No
                                                                        +

                                                                        models.NatsMessageStatistics

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        in_bytesintegerNo
                                                                        in_messagesintegerNo
                                                                        out_bytesintegerNo
                                                                        out_messagesintegerNo
                                                                        reconnectsintegerNo
                                                                        +

                                                                        models.NodeListItemV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        datacenterstringNo
                                                                        dtle_versionstringNo
                                                                        leaderbooleanNo
                                                                        memberbooleanNo
                                                                        node_addressstringNo
                                                                        node_idstringNo
                                                                        node_namestringNo
                                                                        node_statusstringNo
                                                                        node_status_descriptionstringNo
                                                                        nomad_versionstringNo
                                                                        +

                                                                        models.NodeListRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        nodes[ models.NodeListItemV2 ]No
                                                                        +

                                                                        models.OracleSrcTaskConfig

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        scnintegerNo
                                                                        +

                                                                        models.PauseJobRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.PrivilegesValidation

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        errorstringError is a string version of any error that may have occuredNo
                                                                        validatedbooleanNo
                                                                        +

                                                                        models.ResetPasswordReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        current_user_passwordstringYes
                                                                        passwordstringYes
                                                                        tenantstringYes
                                                                        usernamestringYes
                                                                        +

                                                                        models.ResetPasswordRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.ResumeJobRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.ReverseConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_userstringNo
                                                                        dst_pwdstringNo
                                                                        is_mysql_password_encryptedbooleanNo
                                                                        src_pwdstringNo
                                                                        src_userstringNo
                                                                        +

                                                                        models.ReverseJobReq

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        job_idstringYes
                                                                        reverse_configmodels.ReverseConfigNo
                                                                        +

                                                                        models.ReverseJobResp

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.ReverseStartRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.RoleListResp

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        role_list[ common.Role ]No
                                                                        +

                                                                        models.SchemaItem

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        schema_namestringNo
                                                                        tables[ models.TableItem ]No
                                                                        +

                                                                        models.ServerIDValidation

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        errorstringError is a string version of any error that may have occuredNo
                                                                        validatedbooleanNo
                                                                        +

                                                                        models.SrcConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        chunk_sizeintegerNo
                                                                        drop_table_if_existsbooleanNo
                                                                        group_max_sizeintegerNo
                                                                        group_timeoutintegerNo
                                                                        mysql_src_task_configmodels.MysqlSrcTaskConfigNo
                                                                        oracle_src_task_configmodels.OracleSrcTaskConfigNo
                                                                        repl_chan_buffer_sizeintegerNo
                                                                        skip_create_db_tablebooleanNo
                                                                        +

                                                                        models.SrcTaskConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        chunk_sizeintegerNo
                                                                        connection_configmodels.DatabaseConnectionConfigYes
                                                                        drop_table_if_existsbooleanNo
                                                                        group_max_sizeintegerNo
                                                                        group_timeoutintegerNo
                                                                        mysql_src_task_configmodels.MysqlSrcTaskConfigNo
                                                                        node_idstringNo
                                                                        oracle_src_task_configmodels.OracleSrcTaskConfigNo
                                                                        repl_chan_buffer_sizeintegerNo
                                                                        replicate_do_db[ models.DataSourceConfig ]No
                                                                        replicate_ignore_db[ models.DataSourceConfig ]No
                                                                        skip_create_db_tablebooleanNo
                                                                        task_namestringYes
                                                                        +

                                                                        models.TableConfig

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        column_map_from[ string ]No
                                                                        table_namestringNo
                                                                        table_regexstringNo
                                                                        table_renamestringNo
                                                                        wherestringNo
                                                                        +

                                                                        models.TableItem

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        table_namestringNo
                                                                        +

                                                                        models.TaskEvent

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        event_typestringNo
                                                                        messagestringNo
                                                                        setup_errorstringNo
                                                                        timestringNo
                                                                        +

                                                                        models.TaskLog

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        addressstringNo
                                                                        allocation_idstringNo
                                                                        node_idstringNo
                                                                        targetstringNo
                                                                        task_events[ models.TaskEvent ]No
                                                                        +

                                                                        models.TaskProgress

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        ETAstringNo
                                                                        backlogstringNo
                                                                        buffer_statusmodels.BufferStatNo
                                                                        current_coordinatesmodels.CurrentCoordinatesNo
                                                                        delay_countmodels.DelayCountNo
                                                                        exec_master_row_countintegerNo
                                                                        exec_master_tx_countintegerNo
                                                                        nats_message_statusmodels.NatsMessageStatisticsNo
                                                                        progress_PCTstringNo
                                                                        read_master_row_countintegerNo
                                                                        read_master_tx_countintegerNo
                                                                        stagestringNo
                                                                        throughput_statusmodels.ThroughputStatNo
                                                                        timestampintegerNo
                                                                        +

                                                                        models.TenantListResp

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        tenant_list[ string ]No
                                                                        +

                                                                        models.ThroughputStat

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        numintegerNo
                                                                        timeintegerNo
                                                                        +

                                                                        models.UpdataLogLevelRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dtle_log_levelstringNo
                                                                        messagestringNo
                                                                        +

                                                                        models.UpdateRoleReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        authoritystringNo
                                                                        namestringNo
                                                                        operation_object_typestringNo
                                                                        operation_users[ string ]No
                                                                        tenantstringNo
                                                                        +

                                                                        models.UpdateRoleRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.UpdateUserReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        remarkstringNo
                                                                        rolestringYes
                                                                        tenantstringYes
                                                                        usernamestringYes
                                                                        +

                                                                        models.UpdateUserRespV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        +

                                                                        models.UserListResp

                                                                        + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        messagestringNo
                                                                        user_list[ common.User ]No
                                                                        +

                                                                        models.UserLoginReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        captchastringYes
                                                                        captcha_idstringYes
                                                                        passwordstringYes
                                                                        tenantstringYes
                                                                        usernamestringYes
                                                                        +

                                                                        models.UserLoginResV2

                                                                        + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        tokenstringNo
                                                                        +

                                                                        models.ValidateJobReqV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        dest_taskmodels.DestTaskConfigYes
                                                                        is_password_encryptedbooleanNo
                                                                        job_idstringYes
                                                                        src_taskmodels.SrcTaskConfigYes
                                                                        +

                                                                        models.ValidateJobRespV2

                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        NameTypeDescriptionRequired
                                                                        driver_config_validatedbooleanDriverConfigValidated indicates whether the agent validated the driverNo
                                                                        job_validation_errorstringNo
                                                                        job_validation_warningstringNo
                                                                        messagestringNo
                                                                        mysql_task_validation_report[ models.MysqlTaskValidationReport ]configNo
                                                                        + + +
                                                                        + +
                                                                        +
                                                                        +
                                                                        + +

                                                                        results matching ""

                                                                        +
                                                                          + +
                                                                          +
                                                                          + +

                                                                          No results matching ""

                                                                          + +
                                                                          +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + + + + + + + + + + + + + + +
                                                                          + + +
                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.4.1_http_api_oldv2.md b/4/4.4.1_http_api_oldv2.md new file mode 100644 index 0000000..0d32a44 --- /dev/null +++ b/4/4.4.1_http_api_oldv2.md @@ -0,0 +1,568 @@ +# HTTP API 说明 (dtle 2.x 兼容层) + +dtle 3.x 作为nomad plugin发布。nomad自身API和dtle 2.x略有差异。我们提供了兼容层(开启方式见[节点配置](./4.1_node_configuration.md),api_addr),支持 dtle 2.x的HTTP API。 + +## 列出所有作业 + +API: `GET /v1/jobs` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/jobs" | jq +< [ + { + "CreateIndex": 59, + "ID": "8ce4b408-8c64-41b9-04d7-baf451348e89", + "JobModifyIndex": 469, + "JobSummary": { + "Constraints": null, + "CreateIndex": 59, + "Datacenters": [ + "dc1" + ], + "EnforceIndex": false, + "Failover": false, + "ID": "8ce4b408-8c64-41b9-04d7-baf451348e89", + "JobModifyIndex": 469, + "ModifyIndex": 469, + "Name": "test1-2", + "Orders": [], + "Region": "global", + "Status": "running", + "StatusDescription": "", + "Tasks": [ + { + "Config": { + "ExpandSyntaxSupport": false, + "NatsAddr": "127.0.0.1:8193", + "ReplChanBufferSize": "60", + "ReplicateDoDb": [ + { + "TableSchema": "db1", + "Tables": [ + { + "TableName": "tb1" + } + ] + } + ], + "ChunkSize": "2000", + "ApproveHeterogeneous": true, + "DropTableIfExists": false, + "ConnectionConfig": { + "Password": "*", + "Host": "172.100.9.3", + "Port": "3306", + "User": "lx1" + }, + "TrafficAgainstLimits": 0, + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "SkipCreateDbTable": false + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": false, + "NodeID": "", + "NodeName": "dtle", + "Type": "Src" + }, + { + "Config": { + "NatsAddr": "127.0.0.1:8193", + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "SkipCreateDbTable": false, + "DropTableIfExists": false, + "ExpandSyntaxSupport": false, + "ReplChanBufferSize": "60", + "ApproveHeterogeneous": true, + "ConnectionConfig": { + "User": "test1", + "Password": "*", + "Host": "172.100.9.6", + "Port": "3306" + } + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": true, + "NodeID": "", + "NodeName": "dtle", + "Type": "Dest" + } + ], + "Type": "synchronous" + }, + "ModifyIndex": 469, + "Name": "test1-2", + "Status": "running", + "StatusDescription": "", + "Type": "synchronous" + }, + { + "CreateIndex": 66, + "ID": "ae2a74ac-1ee7-7f82-4b52-2f1ca759eab5", + "JobModifyIndex": 469, + "JobSummary": { + "Constraints": null, + "CreateIndex": 66, + "Datacenters": [ + "dc1" + ], + "EnforceIndex": false, + "Failover": false, + "ID": "ae2a74ac-1ee7-7f82-4b52-2f1ca759eab5", + "JobModifyIndex": 469, + "ModifyIndex": 469, + "Name": "test1-2", + "Orders": [], + "Region": "global", + "Status": "running", + "StatusDescription": "", + "Tasks": [ + { + "Config": { + "ConnectionConfig": { + "Host": "172.100.9.3", + "Port": "3306", + "User": "lx1", + "Password": "*" + }, + "TrafficAgainstLimits": 0, + "NatsAddr": "127.0.0.1:8193", + "ReplicateDoDb": [ + { + "Tables": [ + { + "TableName": "tb1" + } + ], + "TableSchema": "db1" + } + ], + "DropTableIfExists": false, + "ExpandSyntaxSupport": false, + "ChunkSize": "2000", + "SkipCreateDbTable": false, + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "ApproveHeterogeneous": true, + "ReplChanBufferSize": "60" + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": false, + "NodeID": "", + "NodeName": "dtle", + "Type": "Src" + }, + { + "Config": { + "DropTableIfExists": false, + "ExpandSyntaxSupport": false, + "NatsAddr": "127.0.0.1:8193", + "ReplChanBufferSize": "60", + "ApproveHeterogeneous": true, + "ConnectionConfig": { + "Port": "3306", + "User": "test1", + "Password": "*", + "Host": "172.100.9.6" + }, + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "SkipCreateDbTable": false + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": true, + "NodeID": "", + "NodeName": "dtle", + "Type": "Dest" + } + ], + "Type": "synchronous" + }, + "ModifyIndex": 469, + "Name": "test1-2", + "Status": "running", + "StatusDescription": "", + "Type": "synchronous" + } +] +``` + +## 获取某个作业的信息 + +API: `GET /v1/job/{ID}` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/job/8ce4b408-8c64-41b9-04d7-baf451348e89" | jq +< { + "Constraints": null, + "CreateIndex": 59, + "Datacenters": [ + "dc1" + ], + "EnforceIndex": false, + "Failover": false, + "ID": "8ce4b408-8c64-41b9-04d7-baf451348e89", + "JobModifyIndex": 471, + "ModifyIndex": 471, + "Name": "test1-2", + "Orders": [], + "Region": "global", + "Status": "running", + "StatusDescription": "", + "Tasks": [ + { + "Config": { + "ConnectionConfig": { + "Host": "172.100.9.3", + "Port": "3306", + "User": "lx1", + "Password": "111111" + }, + "ChunkSize": "2000", + "ApproveHeterogeneous": true, + "DropTableIfExists": false, + "ReplChanBufferSize": "60", + "ReplicateDoDb": [ + { + "TableSchema": "db1", + "Tables": [ + { + "TableName": "tb1" + } + ] + } + ], + "NatsAddr": "127.0.0.1:8193", + "TrafficAgainstLimits": 0, + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "SkipCreateDbTable": false, + "ExpandSyntaxSupport": false + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": false, + "NodeID": "", + "NodeName": "dtle", + "Type": "Src" + }, + { + "Config": { + "Gtid": "8868d98f-af5e-11e8-9aa9-0242ac110002:1-171", + "SkipCreateDbTable": false, + "DropTableIfExists": false, + "ExpandSyntaxSupport": false, + "ReplChanBufferSize": "60", + "ApproveHeterogeneous": true, + "ConnectionConfig": { + "Host": "172.100.9.6", + "Port": "3306", + "User": "test1", + "Password": "111111" + }, + "NatsAddr": "127.0.0.1:8193" + }, + "ConfigLock": {}, + "Constraints": null, + "Driver": "MySQL", + "Leader": true, + "NodeID": "", + "NodeName": "dtle", + "Type": "Dest" + } + ], + "Type": "synchronous" +} +``` + +## 获取 服务端集群 的leader节点信息 + +API: `GET /v1/leader` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/leader" +< "172.17.5.6:8191" +``` + +## 列出 服务端集群 的节点 + +API: `GET /v1/members` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/members" | jq +< { + "Members": [ + { + "Addr": "172.17.5.6", + "DelegateCur": 4, + "DelegateMax": 5, + "DelegateMin": 2, + "Name": "udp-6.global", + "Port": 8192, + "ProtocolCur": 2, + "ProtocolMax": 5, + "ProtocolMin": 1, + "Status": "alive", + "Tags": { + "port": "8191", + "bootstrap": "1", + "role": "server", + "region": "global", + "dc": "dc1", + "build": "9.9.9.9" + } + } + ], + "ServerDC": "dc1", + "ServerName": "udp-6", + "ServerRegion": "global" +} +``` + + +## 列出所有节点 + +API: `GET /v1/nodes` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/nodes" | jq +< [ + { + "CreateIndex": 4, + "Datacenter": "dc1", + "HTTPAddr": "172.17.5.6:8190", + "ID": "8f05de6f-34ef-5989-9a20-c9f8bc9817b0", + "ModifyIndex": 43, + "Name": "udp-6", + "Status": "ready", + "StatusDescription": "" + } +] +``` + +## 列出某作业的所有任务执行 + +API: `GET /job//allocations` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/job/8ce4b408-8c64-41b9-04d7-baf451348e89/allocations" | jq +< [ + { + "ClientDescription": "", + "ClientStatus": "running", + "CreateIndex": 61, + "CreateTime": 1538993511593515300, + "DesiredDescription": "", + "DesiredStatus": "run", + "EvalID": "f67f2020-a326-6d12-2239-6da8f9dd3e4e", + "ID": "33a7a1bb-8eb4-11a2-bd2c-0c7e0457dfc2", + "JobID": "8ce4b408-8c64-41b9-04d7-baf451348e89", + "ModifyIndex": 63, + "Name": "test1-2.Src", + "NodeID": "b32743aa-5c69-0853-239c-a69237e97c45", + "Task": "Src", + "TaskStates": { + "Src": { + "Events": [ + { + "DiskLimit": 0, + "DriverError": "", + "DriverMessage": "", + "ExitCode": 0, + "FailedSibling": "", + "FailsTask": false, + "KillError": "", + "KillReason": "", + "KillTimeout": 0, + "Message": "", + "RestartReason": "", + "SetupError": "", + "StartDelay": 0, + "TaskSignal": "", + "TaskSignalReason": "", + "Time": "2018-10-08T10:11:51.603015093Z", + "Type": "Received" + }, + { + "DiskLimit": 0, + "DriverError": "", + "DriverMessage": "", + "ExitCode": 0, + "FailedSibling": "", + "FailsTask": false, + "KillError": "", + "KillReason": "", + "KillTimeout": 0, + "Message": "", + "RestartReason": "", + "SetupError": "", + "StartDelay": 0, + "TaskSignal": "", + "TaskSignalReason": "", + "Time": "2018-10-08T10:11:51.603322601Z", + "Type": "Started" + } + ], + "Failed": false, + "FinishedAt": null, + "StartedAt": "2018-10-08T10:11:51.603998869Z", + "State": "running" + } + } + }, + { + "ClientDescription": "", + "ClientStatus": "running", + "CreateIndex": 61, + "CreateTime": 1538993511593515300, + "DesiredDescription": "", + "DesiredStatus": "run", + "EvalID": "f67f2020-a326-6d12-2239-6da8f9dd3e4e", + "ID": "83a46402-2c98-ffa1-b953-1cc038d91a7c", + "JobID": "8ce4b408-8c64-41b9-04d7-baf451348e89", + "ModifyIndex": 63, + "Name": "test1-2.Dest", + "NodeID": "b32743aa-5c69-0853-239c-a69237e97c45", + "Task": "Dest", + "TaskStates": { + "Dest": { + "Events": [ + { + "DiskLimit": 0, + "DriverError": "", + "DriverMessage": "", + "ExitCode": 0, + "FailedSibling": "", + "FailsTask": false, + "KillError": "", + "KillReason": "", + "KillTimeout": 0, + "Message": "", + "RestartReason": "", + "SetupError": "", + "StartDelay": 0, + "TaskSignal": "", + "TaskSignalReason": "", + "Time": "2018-10-08T10:11:51.603156346Z", + "Type": "Received" + }, + { + "DiskLimit": 0, + "DriverError": "", + "DriverMessage": "", + "ExitCode": 0, + "FailedSibling": "", + "FailsTask": false, + "KillError": "", + "KillReason": "", + "KillTimeout": 0, + "Message": "", + "RestartReason": "", + "SetupError": "", + "StartDelay": 0, + "TaskSignal": "", + "TaskSignalReason": "", + "Time": "2018-10-08T10:11:51.603388746Z", + "Type": "Started" + } + ], + "Failed": false, + "FinishedAt": null, + "StartedAt": "2018-10-08T10:11:51.603690587Z", + "State": "running" + } + } + } +] +``` + +## 查看某个任务执行的状态 + +API: `GET /agent/allocation//stats` + +样例: + +``` +> curl -XGET "172.17.5.6:8190/v1/agent/allocation/33a7a1bb-8eb4-11a2-bd2c-0c7e0457dfc2/stats" | jq +< { + "Tasks": { + "Src": { + "Backlog": "0/60", + "BufferStat": { + "ApplierGroupTxQueueSize": 0, + "ApplierTxQueueSize": 0, + "ExtractorTxQueueSize": 0, + "SendBySizeFull": 0, + "SendByTimeout": 0 + }, + "CurrentCoordinates": { + "ExecutedGtidSet": "", + "File": "1.000002", + "GtidSet": "8868d98f-af5e-11e8-9aa9-0242ac110002:171", + "Position": 44918, + "ReadMasterLogPos": 0, + "RelayMasterLogFile": "", + "RetrievedGtidSet": "" + }, + "DelayCount": null, + "ETA": "0s", + "ExecMasterRowCount": 14, + "ExecMasterTxCount": 111939, + "MsgStat": { + "InBytes": 0, + "InMsgs": 4, + "OutBytes": 3413, + "OutMsgs": 4, + "Reconnects": 0 + }, + "ProgressPct": "100.0", + "ReadMasterRowCount": 14, + "ReadMasterTxCount": 111939, + "Stage": "Master has sent all binlog to slave; waiting for more updates", + "TableStats": null, + "ThroughputStat": null, + "Timestamp": 1539004705449136600 + } + } +} +``` + +## 创建/更新 一个作业 + +API: `POST /v1/jobs` + +样例: **job1.json的内容说明参看[作业(job)配置](./4.3_job_configuration.md)** + +``` +> curl -H "Accept:application/json" -XPOST "172.17.5.6:8190/v1/jobs" -d @job1.json +``` + +## 删除一个作业 + +API: `DELETE /v1/job/{ID}` + +样例: + +``` +> curl -H "Accept:application/json" -XDELETE "172.17.5.6:8190/v1/job/8ce4b408-8c64-41b9-04d7-baf451348e89" +``` + +## 暂停一个作业 和 继续一个作业 +由于nomad plugin API限制,无法实现。需要通过删除来暂停job,重新创建来继续job。见[HTTP API](./4.4_http_api.md) diff --git a/4/4.4_http_api.html b/4/4.4_http_api.html new file mode 100644 index 0000000..a74028f --- /dev/null +++ b/4/4.4_http_api.html @@ -0,0 +1,1006 @@ + + + + + + + 4.4.HTTP API说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                          +
                                                                          + + + + + + + + +
                                                                          + +
                                                                          + +
                                                                          + + + + + + + + +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + +

                                                                          HTTP API 说明

                                                                          +

                                                                          (适用dtle 3.x nomad 插件)

                                                                          +

                                                                          nomad 默认开启一个web服务,可使用curl工具向其发送HTTP请求。

                                                                          +

                                                                          作业管理

                                                                          +

                                                                          完整可参考

                                                                          + +

                                                                          常用如下:

                                                                          +

                                                                          前置知识:nomad 中 job、task、alloc的概念

                                                                          +

                                                                          job包含多个task。一个dtle job有src和dest两个task。

                                                                          +

                                                                          task在nomad节点上的执行,称为allocation。同一个task的多次执行(如失败-重试)会创建多个allocation。

                                                                          +

                                                                          列出所有job

                                                                          +
                                                                          curl -XGET 127.0.0.1:4646/v1/jobs | jq
                                                                          +

                                                                          添加job

                                                                          +
                                                                          curl -XPOST -data @job.json 127.0.0.1:4646/v1/jobs | jq
                                                                          +

                                                                          job.json的内容说明参看 作业(job)配置

                                                                          +

                                                                          获取某个job信息

                                                                          +
                                                                          curl -XGET 127.0.0.1:4646/v1/job/<job_name> | jq
                                                                          +

                                                                          列出某job的所有allocation

                                                                          +
                                                                          curl -XGET "127.0.0.1:4646/v1/job/<job_name>/allocations | jq
                                                                          +

                                                                          查看某个allocation的执行状态

                                                                          +
                                                                          curl -XGET "127.0.0.1:4646/v1/allocation/<alloc_id>" | jq
                                                                          +

                                                                          区别任务处于全量还是增量状态

                                                                          +
                                                                          curl -XGET "127.0.0.1:4646/v1/job/<jobId>/allocations" | jq '.' | grep job_stage
                                                                          +
                                                                                      "DisplayMessage": "job_stage_full",
                                                                          +            "DriverMessage": "job_stage_full",
                                                                          +            "DisplayMessage": "job_stage_incr",
                                                                          +            "DriverMessage": "job_stage_incr",
                                                                          +
                                                                            +
                                                                          • 当结果中 出现 job_stage_full 时,任务处于全量阶段
                                                                          • +
                                                                          • 当结果出现 job_stage_incr 时,任务处于增量阶段
                                                                          • +
                                                                          +

                                                                          停止(删除)job

                                                                          +
                                                                          curl -XDELETE 127.0.0.1:4646/v1/job/my-job
                                                                          +# DELETE后job信息仍会在nomad上保留一段时间供查询,直到nomad自动回收(gc)
                                                                          +# 指定purge可立刻删除
                                                                          +curl -XDELETE 127.0.0.1:4646/v1/job/my-job?purge=true
                                                                          +

                                                                          dtle 3.x 移除了暂停/恢复job的功能. 可使用删除/添加job来达成相同的效果。

                                                                          +
                                                                            +
                                                                          • 注意保留添加job时使用的job配置文件
                                                                          • +
                                                                          • job删除后进度(Gtid)仍然保存在consul kv中
                                                                              +
                                                                            • 位置:dtle/<job_name>/Gtid
                                                                            • +
                                                                            • 再次添加job时,consul中保存的Gtid优先于job配置中的项目
                                                                            • +
                                                                            +
                                                                          • +
                                                                          +

                                                                          如果要后续添加同名job,并且不想从consul保存的位置继续(而是从job配置中指定的位置开始),则 +需要删除consul重的数据。见 consul 上的 job 数据管理

                                                                          +

                                                                          节点管理

                                                                          +

                                                                          更多可参考

                                                                          + +

                                                                          列出所有节点:

                                                                          +
                                                                          curl -XGET "127.0.0.1:4646/v1/nodes" | jq
                                                                          +[{
                                                                          +    "Address": "127.0.0.1",
                                                                          +    "Datacenter": "dc1",
                                                                          +    "Drivers": {
                                                                          +      "dtle": {
                                                                          +        "Attributes": {
                                                                          +          "driver.dtle": "true",
                                                                          +          "driver.dtle.version": "9.9.9.9",
                                                                          +          "driver.dtle.full_version": "9.9.9.9-master-eeb399e9"
                                                                          +        },
                                                                          +        "Detected": true,
                                                                          +        "Healthy": true,
                                                                          +      }
                                                                          +    },
                                                                          +    "ID": "0e70636d-b274-c139-185e-e37dcf7a4bca",
                                                                          +    "Name": "nomad0",
                                                                          +    "Status": "ready",
                                                                          +    "Version": "0.11.2"
                                                                          +}]
                                                                          +

                                                                          可以查看节点名、节点ID和dtle插件信息(部分项省略)。

                                                                          + + +
                                                                          + +
                                                                          +
                                                                          +
                                                                          + +

                                                                          results matching ""

                                                                          +
                                                                            + +
                                                                            +
                                                                            + +

                                                                            No results matching ""

                                                                            + +
                                                                            +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + + + + + + + + + + + + + + +
                                                                            + + +
                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.5_mysql_user_privileges.html b/4/4.5_mysql_user_privileges.html new file mode 100644 index 0000000..f0c3974 --- /dev/null +++ b/4/4.5_mysql_user_privileges.html @@ -0,0 +1,1005 @@ + + + + + + + 4.5.MySQL 用户权限说明 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            +
                                                                            + + + + + + + + +
                                                                            + +
                                                                            + +
                                                                            + + + + + + + + +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + +

                                                                            MySQL 用户权限说明

                                                                            +

                                                                            dtle配置的MySQL用户, 在使用不同功能时, 需具有以下权限

                                                                            +

                                                                            源端用户

                                                                            + + + + + + + + + + + + + + + + + + + + + +
                                                                            权限功能说明
                                                                            select全量复制时, 对目标表需要select权限
                                                                            replication client全量/增量复制时, 需执行show master status 获取binlog信息
                                                                            replication slave增量复制时, 需要模拟 MySQL 复制
                                                                            +

                                                                            目标端用户

                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            权限功能说明
                                                                            alter复制时处理DDL语句
                                                                            create复制时处理DDL语句; 自动创建表结构功能; 自动创建目标端的GTID元数据表
                                                                            drop复制时处理DDL语句
                                                                            index复制时处理DDL语句
                                                                            references复制时处理DDL语句
                                                                            insert复制时处理DML语句; 修改目标端的GTID元数据表
                                                                            delete复制时处理DML语句; 修改目标端的GTID元数据表
                                                                            update复制时处理DML语句
                                                                            select查询目标端的GTID元数据表
                                                                            trigger进行目标端触发器检查
                                                                            +

                                                                            如果job中设置SetGtidNext=true, 则需要 replication_applier (MySQL 8.0) 或 super 权限。

                                                                            + + +
                                                                            + +
                                                                            +
                                                                            +
                                                                            + +

                                                                            results matching ""

                                                                            +
                                                                              + +
                                                                              +
                                                                              + +

                                                                              No results matching ""

                                                                              + +
                                                                              +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + + + + + + + + + + + + + + +
                                                                              + + +
                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.6_dtle_2to3.html b/4/4.6_dtle_2to3.html new file mode 100644 index 0000000..06a2045 --- /dev/null +++ b/4/4.6_dtle_2to3.html @@ -0,0 +1,979 @@ + + + + + + + 4.6.dtle 2升级到3 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                              +
                                                                              + + + + + + + + +
                                                                              + +
                                                                              + +
                                                                              + + + + + + + + +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + +

                                                                              从dtle 2.x升级到dtle 3.x

                                                                              +

                                                                              dtle 2.x 和 3.x 的数据文件不兼容,直接升级无法保留进行中的job。(若无需保留的job,则可直接升级。)

                                                                              +

                                                                              升级步骤

                                                                              +
                                                                                +
                                                                              1. 确保dtle 2.x运行中。
                                                                              2. +
                                                                              3. 使用导出脚本( 点此下载 )将现有job导出
                                                                                  +
                                                                                • ./dtle-job-2to3.py 127.0.0.1:8190
                                                                                • +
                                                                                • 将在当前目录得到一系列job json文件。需手动填写文件里的密码
                                                                                • +
                                                                                • 导出脚本主要意义在于保存复制进度。
                                                                                • +
                                                                                +
                                                                              4. +
                                                                              5. 卸载dtle 2.x并删除数据目录。
                                                                              6. +
                                                                              7. 安装dtle 3.x。配置/etc/dtle/nomad.hcl, 开启兼容层(设定api_addrnomad_addr)
                                                                              8. +
                                                                              9. 运行 dtle 3.x。将导出的job配置提交到 dtle 兼容层端口
                                                                                  +
                                                                                • curl -XPOST -d @job1.json 127.0.0.1:8190
                                                                                • +
                                                                                • 不要提交到nomad原生端口
                                                                                • +
                                                                                +
                                                                              10. +
                                                                              +

                                                                              dtle 3.x 和 2.x的显著差异

                                                                              +
                                                                                +
                                                                              • 作为nomad插件运行
                                                                              • +
                                                                              • 需要另外启动consul
                                                                              • +
                                                                              • job.json格式差异
                                                                              • +
                                                                              • 默认端口不同
                                                                              • +
                                                                              • 可使用hcl格式job配置文件
                                                                              • +
                                                                              • 查询任务进度
                                                                              • +
                                                                              • "暂停/恢复job"被"删除/添加job"代替
                                                                                  +
                                                                                • 恢复需要根据之前的job.json(或hcl)添加job
                                                                                • +
                                                                                • 会自动从consul中储存的Gtid继续复制
                                                                                • +
                                                                                +
                                                                              • +
                                                                              • 如果要重建同名job(并放弃进度),除了在nomad上删除,还需要在consul上删除
                                                                              • +
                                                                              +

                                                                              allocation/<alloc_id>/stats 接口变更

                                                                              +

                                                                              由于nomad没有提供合适的API #5863 ,我们暂且借用nomad alloc signal接口返回的错误信息来传递stats。

                                                                              +
                                                                              $ nomad alloc signal -s stats b0a227c1 # 或使用curl访问HTTP API
                                                                              +$ curl -XPOST -d '{"Signal": "stats" }' 127.0.0.1:4646/v1/client/allocation/b0a227c1-b910-0eb1-2bb9-b8bfe7607adc/signal
                                                                              +
                                                                              +Error signalling allocation: Unexpected response code: 500 (1 error occurred:
                                                                              +    * Failed to signal task: Dest, err: rpc error: code = Unknown desc = {
                                                                              +    "CurrentCoordinates":{"File":"bin.000075","Position":18716,
                                                                              +    "GtidSet":"acd7d195-06cd-11e9-928f-02000aba3e28:1-143962",
                                                                              +    "RelayMasterLogFile":"","ReadMasterLogPos":0,"RetrievedGtidSet":""},
                                                                              +    "TableStats":null,"DelayCount":null,"ProgressPct":"0.0","ExecMasterRowCount":0,
                                                                              +    "ExecMasterTxCount":0,"ReadMasterRowCount":0,"ReadMasterTxCount":0,"ETA":"N/A",
                                                                              +    "Backlog":"","ThroughputStat":null,"MsgStat":{"InMsgs":2,"OutMsgs":2,"InBytes":299,
                                                                              +    "OutBytes":0,"Reconnects":0},"BufferStat":{"ExtractorTxQueueSize":0,
                                                                              +    "ApplierTxQueueSize":0,"ApplierGroupTxQueueSize":0,"SendByTimeout":0,
                                                                              +    "SendBySizeFull":0},"Stage":"Waiting for slave workers to process their queues",
                                                                              +    "Timestamp":1599130915717858000}
                                                                              +
                                                                              + +
                                                                              + +
                                                                              +
                                                                              +
                                                                              + +

                                                                              results matching ""

                                                                              +
                                                                                + +
                                                                                +
                                                                                + +

                                                                                No results matching ""

                                                                                + +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + + + + + + + + + + + + + + +
                                                                                + + +
                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/4.7_diagnosing.html b/4/4.7_diagnosing.html new file mode 100644 index 0000000..31cf574 --- /dev/null +++ b/4/4.7_diagnosing.html @@ -0,0 +1,977 @@ + + + + + + + 4.7.问题诊断 FAQ · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                + + + + + + + + +
                                                                                + +
                                                                                + +
                                                                                + + + + + + + + +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + +

                                                                                问题诊断 FAQ

                                                                                +

                                                                                通用问题

                                                                                +
                                                                                  +
                                                                                1. dtle.gtid_executed 表中是乱码
                                                                                2. +
                                                                                +

                                                                                该表用uuid以binary储存以提升性能。注意查询方式gtid_executed表

                                                                                +

                                                                                协助诊断

                                                                                +

                                                                                遇到问题,首先确认使用了最新稳定版dtle。

                                                                                +

                                                                                将以下内容提供给爱可生工程师,我们将帮助您诊断故障。

                                                                                +

                                                                                通用

                                                                                +
                                                                                  +
                                                                                • job配置
                                                                                • +
                                                                                • 复制阶段(全量/增量)
                                                                                • +
                                                                                • 日志(请用gzip压缩)
                                                                                • +
                                                                                • 堆栈/内存/运行状态/pprof信息:执行kill -TTIN {dtle_pid},dtle会自动生成信息文件,存放在/tmp/dtle_dump_[date-time]目录下
                                                                                • +
                                                                                +

                                                                                服务无法启动,无日志输出,使用如下命令查看std日志

                                                                                +
                                                                                  +
                                                                                • journalctl _SYSTEMD_UNIT=dtle-consul.service
                                                                                • +
                                                                                • journalctl _SYSTEMD_UNIT=dtle-nomad.service
                                                                                • +
                                                                                +

                                                                                复制停顿、不开始

                                                                                +
                                                                                  +
                                                                                • 任务有无报错
                                                                                • +
                                                                                • 修改日志级别为Debug
                                                                                • +
                                                                                +

                                                                                性能低、延迟大

                                                                                +
                                                                                  +
                                                                                • 确认日志级别为Info。Debug日志会大幅降低性能。
                                                                                • +
                                                                                • 网络(带宽/延迟)
                                                                                • +
                                                                                • 监控项: 队列
                                                                                • +
                                                                                • 数据产生量
                                                                                • +
                                                                                • 部署结构(节点、dtle/mysql所在)
                                                                                • +
                                                                                +

                                                                                数据不一致

                                                                                +
                                                                                  +
                                                                                • 不一致的具体表现、特征
                                                                                • +
                                                                                • consul中保存的dtle进度(gtid)
                                                                                • +
                                                                                • 目标端 dtle.gtid_executed 表的内容 方法参考
                                                                                • +
                                                                                • 源端 show master status 结果
                                                                                • +
                                                                                • 表结构、是否有无PK表
                                                                                • +
                                                                                • 复制过程中是否有DDL
                                                                                • +
                                                                                • 解析源端binlog, 查找不一致数据出现的位置
                                                                                • +
                                                                                • 如为双向复制,需确保业务上无数据冲突
                                                                                • +
                                                                                +

                                                                                binlog purged

                                                                                +

                                                                                即类似如下报错

                                                                                +
                                                                                +

                                                                                ERROR 1236 (HY000): The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.

                                                                                +
                                                                                +
                                                                                  +
                                                                                • 目标端 dtle.gtid_executed 表的内容 方法参考
                                                                                • +
                                                                                • consul中储存的job gtid
                                                                                • +
                                                                                • MySQL show master status;show binary logs;select @@gtid_purged; 的结果
                                                                                • +
                                                                                + + +
                                                                                + +
                                                                                +
                                                                                +
                                                                                + +

                                                                                results matching ""

                                                                                +
                                                                                  + +
                                                                                  +
                                                                                  + +

                                                                                  No results matching ""

                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + + + + + + + + + + +
                                                                                  + + +
                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4/images/4.4.1_execute.png b/4/images/4.4.1_execute.png new file mode 100644 index 0000000..8abc542 Binary files /dev/null and b/4/images/4.4.1_execute.png differ diff --git a/4/images/4.4.1_login.png b/4/images/4.4.1_login.png new file mode 100644 index 0000000..249a059 Binary files /dev/null and b/4/images/4.4.1_login.png differ diff --git a/4/images/4.4.1_response.png b/4/images/4.4.1_response.png new file mode 100644 index 0000000..38d47be Binary files /dev/null and b/4/images/4.4.1_response.png differ diff --git a/4/images/4.4.1_swagger_ui.png b/4/images/4.4.1_swagger_ui.png new file mode 100644 index 0000000..29f2f64 Binary files /dev/null and b/4/images/4.4.1_swagger_ui.png differ diff --git a/4/images/4.4.1_try_it_out.png b/4/images/4.4.1_try_it_out.png new file mode 100644 index 0000000..d23e25e Binary files /dev/null and b/4/images/4.4.1_try_it_out.png differ diff --git a/5/5.1_resource_estimation.html b/5/5.1_resource_estimation.html new file mode 100644 index 0000000..38fbab6 --- /dev/null +++ b/5/5.1_resource_estimation.html @@ -0,0 +1,956 @@ + + + + + + + 5.1.时间/资源估算 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +
                                                                                  + + + + + + + + +
                                                                                  + +
                                                                                  + +
                                                                                  + + + + + + + + +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + +

                                                                                  时间/资源估算

                                                                                  +

                                                                                  ETA (预计完成时间) 估算

                                                                                  +

                                                                                  源端

                                                                                  +
                                                                                    +
                                                                                  • 全量过程, 公式为:
                                                                                      总时间 = 已用时间 / 发送到目标端的行数 * 总行数
                                                                                    +      其中,总行数 = (select count(*) ...)
                                                                                    +  预计完成时间 = 总时间 - 已用时间
                                                                                    +  即:预计完成时间 = 剩余行数 / 当前发送速率
                                                                                    +
                                                                                  • +
                                                                                  • 增量过程, ETA 一直为0s
                                                                                  • +
                                                                                  +

                                                                                  目标端

                                                                                  +
                                                                                    +
                                                                                  • 全量过程. 公式为:
                                                                                      总时间 = 已用时间 / 已写入目标端的行数 * 总行数
                                                                                    +  预计完成时间 = 总时间 - 已用时间
                                                                                    +  即:预计完成时间 = 剩余行数 / 当前写入速率
                                                                                    +
                                                                                  • +
                                                                                  • 增量过程, ETA 一直为0s
                                                                                  • +
                                                                                  +

                                                                                  内存占用估算

                                                                                  +
                                                                                  内存占用估算 = RowSize * ChunkSize * QueueSize * 内存占用系数
                                                                                  +

                                                                                  其中:

                                                                                  +
                                                                                    +
                                                                                  • RowSize为数据行的平均大小 (字节)
                                                                                  • +
                                                                                  • ChunkSize为配置项
                                                                                  • +
                                                                                  • QueueSize为传输队列长度, 硬编码为24
                                                                                  • +
                                                                                  • 内存占用系数 测量约为 常量3.2
                                                                                  • +
                                                                                  +

                                                                                  关于大事务

                                                                                  +

                                                                                  大事务指传输、处理数据量较大的事务,一般由DML组成。DDL事务(QueryEvent)不会太大,尽管某些DDL需要较长的执行时间。

                                                                                  +

                                                                                  对于一个多行的大事务,dtle会按行分开处理、传输并执行(但在目标端仍作为一个事务提交)。

                                                                                  +

                                                                                  当一个job处理大事务时,需要等待该段数据在目标端执行完毕才会获取下一批数据。

                                                                                  +

                                                                                  当同时处理大事务的job数量达到 big_tx_max_jobs时,所有job都会进入等待模式。

                                                                                  +

                                                                                  为了避免MySQL源端超时,等待时间的上限是 @@net_write_timeout / 2

                                                                                  + + +
                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +

                                                                                  results matching ""

                                                                                  +
                                                                                    + +
                                                                                    +
                                                                                    + +

                                                                                    No results matching ""

                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    + + + + + + + + + + +
                                                                                    + + +
                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/5/5.2_architecture.html b/5/5.2_architecture.html new file mode 100644 index 0000000..c13b917 --- /dev/null +++ b/5/5.2_architecture.html @@ -0,0 +1,938 @@ + + + + + + + 5.2 基本架构 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                    +
                                                                                    + + + + + + + + +
                                                                                    + +
                                                                                    + +
                                                                                    + + + + + + + + +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    + +

                                                                                    dtle 架构

                                                                                    +

                                                                                    nomad角色分为 server、client.

                                                                                    +
                                                                                      +
                                                                                    • manager数量应为1、3或5个
                                                                                    • +
                                                                                    • agent数量不限
                                                                                    • +
                                                                                    • 至少需要1个manager和1个agent
                                                                                    • +
                                                                                    • 一个nomad进程可同时扮演 server 和 client
                                                                                    • +
                                                                                    +

                                                                                    任务分为源端任务和目标端任务, 各由agent执行. 通过网络压缩传输数据.

                                                                                    +

                                                                                    + + +
                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    + +

                                                                                    results matching ""

                                                                                    +
                                                                                      + +
                                                                                      +
                                                                                      + +

                                                                                      No results matching ""

                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + +
                                                                                      + + + + + + + + + + + + + + +
                                                                                      + + +
                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/5/5.3_kafka_message_format.html b/5/5.3_kafka_message_format.html new file mode 100644 index 0000000..a3e5800 --- /dev/null +++ b/5/5.3_kafka_message_format.html @@ -0,0 +1,1195 @@ + + + + + + + 5.3 Kafka 消息格式 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                      +
                                                                                      + + + + + + + + +
                                                                                      + +
                                                                                      + +
                                                                                      + + + + + + + + +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + +
                                                                                      + +

                                                                                      Kafka 消息格式

                                                                                      +

                                                                                      dtle Kafka 输出, 消息格式兼容 Debezium

                                                                                      +

                                                                                      其消息格式具体可参考 https://debezium.io/documentation/reference/1.8/tutorial.html

                                                                                      +

                                                                                      此处概要说明

                                                                                      +
                                                                                        +
                                                                                      • 每行数据变更会有一个消息
                                                                                      • +
                                                                                      • 每个消息分为key和value
                                                                                          +
                                                                                        • key是该次变更的主键
                                                                                        • +
                                                                                        • value是该次变更的整行数据
                                                                                        • +
                                                                                        +
                                                                                      • +
                                                                                      • key和value各自又有schema和payload
                                                                                          +
                                                                                        • payload是具体的数据
                                                                                        • +
                                                                                        • schema指明了数据的格式, 即payload的解读方式, 可以理解为“类定义”
                                                                                            +
                                                                                          • 注意和SQL schema含义不同
                                                                                          • +
                                                                                          • 表结构会包含在 Kafka Connect schema 中
                                                                                          • +
                                                                                          +
                                                                                        • +
                                                                                        +
                                                                                      • +
                                                                                      +

                                                                                      DML

                                                                                      +

                                                                                      Key

                                                                                      +

                                                                                      以下是一个消息的key. 只是简单的包含了主键.

                                                                                      +
                                                                                      {
                                                                                      +  "schema": {
                                                                                      +    "type": "struct",
                                                                                      +    "name": "dbserver1.inventory.customers.Key"
                                                                                      +    "optional": false,
                                                                                      +    "fields": [
                                                                                      +      {
                                                                                      +        "field": "id",
                                                                                      +        "type": "int32",
                                                                                      +        "optional": false
                                                                                      +      }
                                                                                      +    ]
                                                                                      +  },
                                                                                      +  "payload": {
                                                                                      +    "id": 1004
                                                                                      +  }
                                                                                      +}
                                                                                      +
                                                                                      +

                                                                                      Value

                                                                                      +

                                                                                      以下是一个消息的value, 其类型为 topic.schema.table.Envelope, 拥有5个字段

                                                                                      +
                                                                                        +
                                                                                      • before, 复杂类型 topic.schema.table.Value, 为该表的表结构.
                                                                                      • +
                                                                                      • after, 复杂类型, 同上
                                                                                      • +
                                                                                      • source, 复杂类型, 为该次变更的元数据
                                                                                      • +
                                                                                      • op: string. 用"c", "d", "u" 分别表达操作类型: 增、删、改
                                                                                      • +
                                                                                      • ts_ms: int64. dtle 处理该行变更的时间.
                                                                                      • +
                                                                                      +
                                                                                      {
                                                                                      +  "schema": {
                                                                                      +    "type": "struct",
                                                                                      +    "fields": [
                                                                                      +      {
                                                                                      +        "type": "struct",
                                                                                      +        "fields": [
                                                                                      +          {
                                                                                      +            "type": "int32",
                                                                                      +            "optional": false,
                                                                                      +            "field": "id"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "first_name"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "last_name"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "email"
                                                                                      +          }
                                                                                      +        ],
                                                                                      +        "optional": true,
                                                                                      +        "name": "dbserver1.inventory.customers.Value",
                                                                                      +        "field": "before"
                                                                                      +      },
                                                                                      +      {
                                                                                      +        "type": "struct",
                                                                                      +        "fields": [
                                                                                      +          {
                                                                                      +            "type": "int32",
                                                                                      +            "optional": false,
                                                                                      +            "field": "id"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "first_name"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "last_name"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "email"
                                                                                      +          }
                                                                                      +        ],
                                                                                      +        "optional": true,
                                                                                      +        "name": "dbserver1.inventory.customers.Value",
                                                                                      +        "field": "after"
                                                                                      +      },
                                                                                      +      {
                                                                                      +        "type": "struct",
                                                                                      +        "fields": [
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": true,
                                                                                      +            "field": "version"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "name"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "int64",
                                                                                      +            "optional": false,
                                                                                      +            "field": "server_id"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "int64",
                                                                                      +            "optional": false,
                                                                                      +            "field": "ts_sec"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": true,
                                                                                      +            "field": "gtid"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": false,
                                                                                      +            "field": "file"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "int64",
                                                                                      +            "optional": false,
                                                                                      +            "field": "pos"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "int32",
                                                                                      +            "optional": false,
                                                                                      +            "field": "row"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "boolean",
                                                                                      +            "optional": true,
                                                                                      +            "field": "snapshot"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "int64",
                                                                                      +            "optional": true,
                                                                                      +            "field": "thread"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": true,
                                                                                      +            "field": "db"
                                                                                      +          },
                                                                                      +          {
                                                                                      +            "type": "string",
                                                                                      +            "optional": true,
                                                                                      +            "field": "table"
                                                                                      +          }
                                                                                      +        ],
                                                                                      +        "optional": false,
                                                                                      +        "name": "io.debezium.connector.mysql.Source",
                                                                                      +        "field": "source"
                                                                                      +      },
                                                                                      +      {
                                                                                      +        "type": "string",
                                                                                      +        "optional": false,
                                                                                      +        "field": "op"
                                                                                      +      },
                                                                                      +      {
                                                                                      +        "type": "int64",
                                                                                      +        "optional": true,
                                                                                      +        "field": "ts_ms"
                                                                                      +      }
                                                                                      +    ],
                                                                                      +    "optional": false,
                                                                                      +    "name": "dbserver1.inventory.customers.Envelope",
                                                                                      +    "version": 1
                                                                                      +  },
                                                                                      +  "payload": {
                                                                                      +    "before": null,
                                                                                      +    "after": {
                                                                                      +      "id": 1004,
                                                                                      +      "first_name": "Anne",
                                                                                      +      "last_name": "Kretchmar",
                                                                                      +      "email": "annek@noanswer.org"
                                                                                      +    },
                                                                                      +    "source": {
                                                                                      +      "version": "0.8.3.Final",
                                                                                      +      "name": "dbserver1",
                                                                                      +      "server_id": 0,
                                                                                      +      "ts_sec": 0,
                                                                                      +      "gtid": null,
                                                                                      +      "file": "mysql-bin.000003",
                                                                                      +      "pos": 154,
                                                                                      +      "row": 0,
                                                                                      +      "snapshot": true,
                                                                                      +      "thread": null,
                                                                                      +      "db": "inventory",
                                                                                      +      "table": "customers"
                                                                                      +    },
                                                                                      +    "op": "c",
                                                                                      +    "ts_ms": 1486500577691
                                                                                      +  }
                                                                                      +}
                                                                                      +
                                                                                      +

                                                                                      DDL (SchemaChangeTopic)

                                                                                      +

                                                                                      dtle会将DDL写入SchemaChangeTopic。该topic值可配置.

                                                                                      +

                                                                                      Schema change消息中,key永远为null, 仅 value部分有值:

                                                                                      +
                                                                                      {
                                                                                      +  "source" : {
                                                                                      +    "server" : "mysql2"
                                                                                      +  },
                                                                                      +  "position" : {
                                                                                      +    "ts_sec" : 1641807976,
                                                                                      +    "file" : "bin.000022",
                                                                                      +    "pos" : 439,
                                                                                      +    "gtids" : "acd7d195-06cd-11e9-928f-02000aba3e28:1-175",
                                                                                      +    "snapshot" : true
                                                                                      +  },
                                                                                      +  "databaseName" : "a",
                                                                                      +  "ddl" : "CREATE TABLE `a` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1",
                                                                                      +  "tableChanges" : [ {
                                                                                      +    "type" : "CREATE",
                                                                                      +    "id" : "\"a\".\"a\"",
                                                                                      +    "table" : {
                                                                                      +      "defaultCharsetName" : "latin1",
                                                                                      +      "primaryKeyColumnNames" : [ "id" ],
                                                                                      +      "columns" : [ {
                                                                                      +        "name" : "id",
                                                                                      +        "jdbcType" : 4,
                                                                                      +        "typeName" : "INT",
                                                                                      +        "typeExpression" : "INT",
                                                                                      +        "charsetName" : null,
                                                                                      +        "length" : 11,
                                                                                      +        "position" : 1,
                                                                                      +        "optional" : false,
                                                                                      +        "autoIncremented" : true,
                                                                                      +        "generated" : true
                                                                                      +      } ]
                                                                                      +    }
                                                                                      +  } ]
                                                                                      +}
                                                                                      +
                                                                                      +

                                                                                      其中:

                                                                                      +
                                                                                        +
                                                                                      • position.snapshot==true表明这是全量初始化时的表结构(通过show create table等生成)。
                                                                                      • +
                                                                                      • position.snapshot==false则表明:这是增量过程中执行的DDL。
                                                                                      • +
                                                                                      +

                                                                                      注:tableChanges结构在dtle中尚未实现。

                                                                                      +

                                                                                      MySQL数据类型到 “Kafka Connect schema types”的转换

                                                                                      +

                                                                                      https://debezium.io/docs/connectors/mysql/#data-types

                                                                                      + + +
                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      + +

                                                                                      results matching ""

                                                                                      +
                                                                                        + +
                                                                                        +
                                                                                        + +

                                                                                        No results matching ""

                                                                                        + +
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + + + + + + + + + + + +
                                                                                        + + +
                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/5/5.4_columns_mapping.html b/5/5.4_columns_mapping.html new file mode 100644 index 0000000..87435b3 --- /dev/null +++ b/5/5.4_columns_mapping.html @@ -0,0 +1,1251 @@ + + + + + + + 5.4 Oracle MySQL 字段映射 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + +

                                                                                        Oracle MySQL 字段映射

                                                                                        +

                                                                                        字段类型

                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        OracleMySQL全量支持增量支持限制后期是否考虑优化/支持
                                                                                        BINARY_FLOATfloat否(insert 支持)mysql 不支持Inf/-Inf/Nan数据,MySQL float类型无法精确匹配)
                                                                                        BINARY_DOUBLEfloatmysql 不支持Inf/-Inf/Nan数据
                                                                                        CHAR(n), CHARACTER(n)CHAR(n), CHARACTER(n)
                                                                                        DATEdatetimeMySQL 最大长度限制为6,Oracle为9
                                                                                        DECIMAL(p,s), DEC(p,s)DECIMAL(p,s), DEC(p,s)
                                                                                        DOUBLE PRECISIONDOUBLE PRECISION
                                                                                        FLOAT(p)DOUBLE
                                                                                        INTEGER, INTINT极值问题
                                                                                        INTERVAL YEAR(p) TO MONTHVARCHAR(30)部分结果异常
                                                                                        INTERVAL DAY(p) TO SECOND(s)VARCHAR(30)同步结果以纳秒保存
                                                                                        NCHAR(n)NCHAR(n)/NVARCHAR(n)
                                                                                        NCHAR VARYING(n)NCHAR VARYING(n)
                                                                                        NUMBER(p,0), NUMBER(p)TINYINT/SMALLINT/INT/BIGINT/DECIMAL(p)
                                                                                        NUMBER(p,s)DECIMAL(p,s)
                                                                                        NUMBER, NUMBER(*)DOUBLE
                                                                                        NUMERIC(p,s)NUMERIC(p,s)
                                                                                        NVARCHAR2(n)NVARCHAR(n)
                                                                                        RAW(n)VARBINARY(n)
                                                                                        REALDOUBLE
                                                                                        ROWIDCHAR(100)
                                                                                        SMALLINTDECIMAL(38)
                                                                                        TIMESTAMP(p)datetime
                                                                                        VARCHAR(n)VARCHAR(n)
                                                                                        VARCHAR2(n)VARCHAR(n)
                                                                                        BLOBBLOB当前解析逻辑无法获取完整数据
                                                                                        CLOBCLOB当前解析逻辑无法获取完整数据
                                                                                        LONGLONGTEXT否(insert 支持)不支持minus查询
                                                                                        LONG RAWLONGBLOB否(insert 支持)
                                                                                        NCLOBNCLOB当前解析逻辑无法获取完整数据
                                                                                        TIMESTAMP(p) WITH TIME ZONEdatetime时区未解析
                                                                                        BFILElogminer不支持
                                                                                        UROWID(n)logminer解析异常
                                                                                        XMLTYPElogminer不支持
                                                                                        +

                                                                                        待支持

                                                                                        + + + + + + + + + + + + + + + +
                                                                                        OracleMySQL是否支持不支持原因后期是否考虑支持
                                                                                        +

                                                                                        不支持

                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        Oracle是否支持不支持原因
                                                                                        BFILElogminer不支持
                                                                                        UROWID(n)logminer解析异常
                                                                                        XMLTYPElogminer不支持
                                                                                        + + +
                                                                                        + +
                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        results matching ""

                                                                                        +
                                                                                          + +
                                                                                          +
                                                                                          + +

                                                                                          No results matching ""

                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + +
                                                                                          + + + + + + + + + + + + + + +
                                                                                          + + +
                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/5/dtle-architecture.png b/5/dtle-architecture.png new file mode 100644 index 0000000..d55a8f2 Binary files /dev/null and b/5/dtle-architecture.png differ diff --git a/6/howto_contribute.html b/6/howto_contribute.html new file mode 100644 index 0000000..52c61de --- /dev/null +++ b/6/howto_contribute.html @@ -0,0 +1,937 @@ + + + + + + + 6.如何参与 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                          +
                                                                                          + + + + + + + + +
                                                                                          + +
                                                                                          + +
                                                                                          + + + + + + + + +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + +
                                                                                          + +

                                                                                          如何参与

                                                                                          +

                                                                                          提交缺陷

                                                                                          +

                                                                                          可直接在github issues页面 新建 issue, 选择 Bug Report 模板, 按格式填写完成后提交即可

                                                                                          +

                                                                                          提交功能

                                                                                          +

                                                                                          可直接在github issues页面 新建 issue, 选择 Feature request 模板, 按格式填写完成后提交即可

                                                                                          +

                                                                                          提交代码

                                                                                          +

                                                                                          按照github的pull request流程即可

                                                                                          +

                                                                                          如何全职参与

                                                                                          +

                                                                                          本项目的维护方(上海爱可生信息技术股份有限公司)一直在招聘 靠谱的研发工程师/靠谱的测试工程师. 如果通过dtle, 您对全职参与类似的项目有兴趣, 请联系我们的研发团队.

                                                                                          + + +
                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          + +

                                                                                          results matching ""

                                                                                          +
                                                                                            + +
                                                                                            +
                                                                                            + +

                                                                                            No results matching ""

                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + +
                                                                                            + + + + + + + + + + + + + + +
                                                                                            + + +
                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/7/7_roadmap.html b/7/7_roadmap.html new file mode 100644 index 0000000..f67fb5d --- /dev/null +++ b/7/7_roadmap.html @@ -0,0 +1,980 @@ + + + + + + + 7.路线图 · dtle manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                            +
                                                                                            + + + + + + + + +
                                                                                            + +
                                                                                            + +
                                                                                            + + + + + + + + +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + +
                                                                                            + +

                                                                                            路线图

                                                                                            +
                                                                                              +
                                                                                            • 生态

                                                                                              +
                                                                                                +
                                                                                              • [ ] 支持MGR Primary切换
                                                                                              • +
                                                                                              • [ ] 对于 MySQL分布式中间件 (如dble) 提供数据扩容方案
                                                                                              • +
                                                                                              • [ ] 复制到Kafka的数据格式支持Avro
                                                                                              • +
                                                                                              • [ ] 支持更多种类的公有云间的数据迁移
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • ETL-E

                                                                                              +
                                                                                                +
                                                                                              • [ ] WHERE 过滤条件 支持更丰富的函数 (目前仅支持关系符和简单函数)
                                                                                              • +
                                                                                              • [ ] oracle
                                                                                              • +
                                                                                              • [ ] 动态增减同步对象
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • ETL-T

                                                                                              +
                                                                                                +
                                                                                              • [ ] 列名变换
                                                                                              • +
                                                                                              • [ ] WHERE 过滤条件 支持更丰富的函数 (目前仅支持关系符和简单函数)
                                                                                              • +
                                                                                              • [ ] 数据变换
                                                                                              • +
                                                                                              • [x] 库.表名变换 (2.19.11.0+)
                                                                                              • +
                                                                                              • [x] 列选择、列顺序变换 (3.20.08.0+)
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • ETL-L

                                                                                              +
                                                                                                +
                                                                                              • [ ] 支持MGR Primary切换 actiontech/dtle#541
                                                                                              • +
                                                                                              • [x] MTS (actiontech/dtle#688)
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • 链路管理

                                                                                              +
                                                                                                +
                                                                                              • [ ] 对链路提供限流参
                                                                                              • +
                                                                                              • [ ] 支持2G级别的大事务
                                                                                              • +
                                                                                              • [ ] 限流
                                                                                              • +
                                                                                              • [ ] 加密
                                                                                              • +
                                                                                              • [ ] IPv6 actiontech/dtle#600
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • 运维

                                                                                              +
                                                                                                +
                                                                                              • [ ] 提供告警功能
                                                                                              • +
                                                                                              • [ ] DTLE 容灾
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            • 非技术指标

                                                                                              +
                                                                                                +
                                                                                              • [ ] 支持2G级别的大事务
                                                                                              • +
                                                                                              • [x] 一致性DDL元数据 (2.19.03.0+ actiontech/dtle#321)
                                                                                              • +
                                                                                              • [ ] 免一致性快照事务的全量复制
                                                                                                  +
                                                                                                • [ ] 全量复制也可断点续传
                                                                                                • +
                                                                                                +
                                                                                              • +
                                                                                              +
                                                                                            • +
                                                                                            + + +
                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            + +

                                                                                            results matching ""

                                                                                            +
                                                                                              + +
                                                                                              +
                                                                                              + +

                                                                                              No results matching ""

                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + +
                                                                                              + + + + + + + + + + +
                                                                                              + + +
                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a612ad9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f03a25d --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +default: gitbook_build publish +default_with_pdf: default gitbook_pdf_commit +publish: publish_prepare publish_push + +gitbook_preview: + docker run --rm -v "${PWD}":/gitbook -p 4000:4000 billryan/gitbook:zh-hans gitbook serve +gitbook_build: + docker run --rm -v "${PWD}":/gitbook -p 4000:4000 billryan/gitbook:zh-hans /bin/bash -c "gitbook install && gitbook build" + +gitbook_pdf: + docker run --rm -v "${PWD}":/gitbook -p 4000:4000 billryan/gitbook:zh-hans gitbook pdf ./ ./dtle-manual.pdf + +gitbook_pdf_commit: gitbook_pdf + git add . + git commit -a -m "Update pdf" + git push + +publish_prepare: + git checkout gh-pages + git pull origin gh-pages --rebase + cp -R _book/* . || true +# git clean -f node_modules + git clean -fx _book + git add . + git commit -a -m "Update docs" + +publish_push: + git push origin gh-pages + git checkout master diff --git a/QR_code.png b/QR_code.png new file mode 100644 index 0000000..ce7f7ae Binary files /dev/null and b/QR_code.png differ diff --git a/dtle-manual.pdf b/dtle-manual.pdf new file mode 100644 index 0000000..161dccf Binary files /dev/null and b/dtle-manual.pdf differ diff --git a/gitbook/fonts/fontawesome/FontAwesome.otf b/gitbook/fonts/fontawesome/FontAwesome.otf new file mode 100644 index 0000000..d4de13e Binary files /dev/null and b/gitbook/fonts/fontawesome/FontAwesome.otf differ diff --git a/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/gitbook/fonts/fontawesome/fontawesome-webfont.eot new file mode 100644 index 0000000..c7b00d2 Binary files /dev/null and b/gitbook/fonts/fontawesome/fontawesome-webfont.eot differ diff --git a/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/gitbook/fonts/fontawesome/fontawesome-webfont.svg new file mode 100644 index 0000000..8b66187 --- /dev/null +++ b/gitbook/fonts/fontawesome/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/gitbook/fonts/fontawesome/fontawesome-webfont.ttf new file mode 100644 index 0000000..f221e50 Binary files /dev/null and b/gitbook/fonts/fontawesome/fontawesome-webfont.ttf differ diff --git a/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/gitbook/fonts/fontawesome/fontawesome-webfont.woff new file mode 100644 index 0000000..6e7483c Binary files /dev/null and b/gitbook/fonts/fontawesome/fontawesome-webfont.woff differ diff --git a/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 new file mode 100644 index 0000000..7eb74fd Binary files /dev/null and b/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 differ diff --git a/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css b/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css new file mode 100644 index 0000000..9f46b97 --- /dev/null +++ b/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css @@ -0,0 +1,29 @@ +.book .book-summary .chapter > .articles { + overflow: hidden; + max-height: 0px; +} + +.book .book-summary .chapter.expanded > .articles { + max-height: 9999px; +} + +.book .book-summary .exc-trigger { + position: absolute; + left: 12px; + top: 12px; +} + +.book .book-summary ul.summary li a, +.book .book-summary ul.summary li span { + padding-left: 30px; + cursor: pointer; +} + +.book .book-summary .exc-trigger:before { + content: "\f054"; +} + +.book .book-summary .expanded > a .exc-trigger:before, +.book .book-summary .expanded > span .exc-trigger:before { + content: "\f078"; +} diff --git a/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.js b/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.js new file mode 100644 index 0000000..19c35d3 --- /dev/null +++ b/gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.js @@ -0,0 +1,69 @@ +require(['gitbook', 'jQuery'], function(gitbook, $) { + var TOGGLE_CLASSNAME = 'expanded', + CHAPTER = '.chapter', + ARTICLES = '.articles', + TRIGGER_TEMPLATE = '', + LS_NAMESPACE = 'expChapters'; + var init = function () { + // adding the trigger element to each ARTICLES parent and binding the event + $(ARTICLES) + .parent(CHAPTER) + .children('a,span') + .append(TRIGGER_TEMPLATE) + .on('click', function(e) { + if (!$(e.target).is('a')) { + e.preventDefault(); + e.stopPropagation(); + toggle($(e.target).closest(CHAPTER)); + } + }); + + expand(lsItem()); + //expand current selected chapter with it's parents + var activeChapter = $(CHAPTER + '.active'); + expand(activeChapter); + expand(activeChapter.parents(CHAPTER)); + + + } + var toggle = function ($chapter) { + if ($chapter.hasClass('expanded')) { + collapse($chapter); + } else { + expand($chapter); + } + } + var collapse = function ($chapter) { + if ($chapter.length && $chapter.hasClass(TOGGLE_CLASSNAME)) { + $chapter.removeClass(TOGGLE_CLASSNAME); + lsItem($chapter); + } + } + var expand = function ($chapter) { + if ($chapter.length && !$chapter.hasClass(TOGGLE_CLASSNAME)) { + $chapter.addClass(TOGGLE_CLASSNAME); + lsItem($chapter); + } + } + var lsItem = function () { + var map = JSON.parse(localStorage.getItem(LS_NAMESPACE)) || {} + if (arguments.length) { + var $chapters = arguments[0]; + $chapters.each(function (index, element) { + var level = $(this).data('level'); + var value = $(this).hasClass(TOGGLE_CLASSNAME); + map[level] = value; + }) + localStorage.setItem(LS_NAMESPACE, JSON.stringify(map)); + } else { + return $(CHAPTER).map(function(index, element){ + if (map[$(this).data('level')]) { + return this; + } + }) + } + } + gitbook.events.bind('page.change', function() { + init() + }); +}); diff --git a/gitbook/gitbook-plugin-fontsettings/fontsettings.js b/gitbook/gitbook-plugin-fontsettings/fontsettings.js new file mode 100644 index 0000000..ff7be71 --- /dev/null +++ b/gitbook/gitbook-plugin-fontsettings/fontsettings.js @@ -0,0 +1,240 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + // Configuration + var MAX_SIZE = 4, + MIN_SIZE = 0, + BUTTON_ID; + + // Current fontsettings state + var fontState; + + // Default themes + var THEMES = [ + { + config: 'white', + text: 'White', + id: 0 + }, + { + config: 'sepia', + text: 'Sepia', + id: 1 + }, + { + config: 'night', + text: 'Night', + id: 2 + } + ]; + + // Default font families + var FAMILIES = [ + { + config: 'serif', + text: 'Serif', + id: 0 + }, + { + config: 'sans', + text: 'Sans', + id: 1 + } + ]; + + // Return configured themes + function getThemes() { + return THEMES; + } + + // Modify configured themes + function setThemes(themes) { + THEMES = themes; + updateButtons(); + } + + // Return configured font families + function getFamilies() { + return FAMILIES; + } + + // Modify configured font families + function setFamilies(families) { + FAMILIES = families; + updateButtons(); + } + + // Save current font settings + function saveFontSettings() { + gitbook.storage.set('fontState', fontState); + update(); + } + + // Increase font size + function enlargeFontSize(e) { + e.preventDefault(); + if (fontState.size >= MAX_SIZE) return; + + fontState.size++; + saveFontSettings(); + } + + // Decrease font size + function reduceFontSize(e) { + e.preventDefault(); + if (fontState.size <= MIN_SIZE) return; + + fontState.size--; + saveFontSettings(); + } + + // Change font family + function changeFontFamily(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var familyId = getFontFamilyId(configName); + fontState.family = familyId; + saveFontSettings(); + } + + // Change type of color theme + function changeColorTheme(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var $book = gitbook.state.$book; + + // Remove currently applied color theme + if (fontState.theme !== 0) + $book.removeClass('color-theme-'+fontState.theme); + + // Set new color theme + var themeId = getThemeId(configName); + fontState.theme = themeId; + if (fontState.theme !== 0) + $book.addClass('color-theme-'+fontState.theme); + + saveFontSettings(); + } + + // Return the correct id for a font-family config key + // Default to first font-family + function getFontFamilyId(configName) { + // Search for plugin configured font family + var configFamily = $.grep(FAMILIES, function(family) { + return family.config == configName; + })[0]; + // Fallback to default font family + return (!!configFamily)? configFamily.id : 0; + } + + // Return the correct id for a theme config key + // Default to first theme + function getThemeId(configName) { + // Search for plugin configured theme + var configTheme = $.grep(THEMES, function(theme) { + return theme.config == configName; + })[0]; + // Fallback to default theme + return (!!configTheme)? configTheme.id : 0; + } + + function update() { + var $book = gitbook.state.$book; + + $('.font-settings .font-family-list li').removeClass('active'); + $('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active'); + + $book[0].className = $book[0].className.replace(/\bfont-\S+/g, ''); + $book.addClass('font-size-'+fontState.size); + $book.addClass('font-family-'+fontState.family); + + if(fontState.theme !== 0) { + $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); + $book.addClass('color-theme-'+fontState.theme); + } + } + + function init(config) { + // Search for plugin configured font family + var configFamily = getFontFamilyId(config.family), + configTheme = getThemeId(config.theme); + + // Instantiate font state object + fontState = gitbook.storage.get('fontState', { + size: config.size || 2, + family: configFamily, + theme: configTheme + }); + + update(); + } + + function updateButtons() { + // Remove existing fontsettings buttons + if (!!BUTTON_ID) { + gitbook.toolbar.removeButton(BUTTON_ID); + } + + // Create buttons in toolbar + BUTTON_ID = gitbook.toolbar.createButton({ + icon: 'fa fa-font', + label: 'Font Settings', + className: 'font-settings', + dropdown: [ + [ + { + text: 'A', + className: 'font-reduce', + onClick: reduceFontSize + }, + { + text: 'A', + className: 'font-enlarge', + onClick: enlargeFontSize + } + ], + $.map(FAMILIES, function(family) { + family.onClick = function(e) { + return changeFontFamily(family.config, e); + }; + + return family; + }), + $.map(THEMES, function(theme) { + theme.onClick = function(e) { + return changeColorTheme(theme.config, e); + }; + + return theme; + }) + ] + }); + } + + // Init configuration at start + gitbook.events.bind('start', function(e, config) { + var opts = config.fontsettings; + + // Generate buttons at start + updateButtons(); + + // Init current settings + init(opts); + }); + + // Expose API + gitbook.fontsettings = { + enlargeFontSize: enlargeFontSize, + reduceFontSize: reduceFontSize, + setTheme: changeColorTheme, + setFamily: changeFontFamily, + getThemes: getThemes, + setThemes: setThemes, + getFamilies: getFamilies, + setFamilies: setFamilies + }; +}); + + diff --git a/gitbook/gitbook-plugin-fontsettings/website.css b/gitbook/gitbook-plugin-fontsettings/website.css new file mode 100644 index 0000000..26591fe --- /dev/null +++ b/gitbook/gitbook-plugin-fontsettings/website.css @@ -0,0 +1,291 @@ +/* + * Theme 1 + */ +.color-theme-1 .dropdown-menu { + background-color: #111111; + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #111111; +} +.color-theme-1 .dropdown-menu .buttons { + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .button { + color: #afa790; +} +.color-theme-1 .dropdown-menu .button:hover { + color: #73553c; +} +/* + * Theme 2 + */ +.color-theme-2 .dropdown-menu { + background-color: #2d3143; + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #2d3143; +} +.color-theme-2 .dropdown-menu .buttons { + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .button { + color: #62677f; +} +.color-theme-2 .dropdown-menu .button:hover { + color: #f4f4f5; +} +.book .book-header .font-settings .font-enlarge { + line-height: 30px; + font-size: 1.4em; +} +.book .book-header .font-settings .font-reduce { + line-height: 30px; + font-size: 1em; +} +.book.color-theme-1 .book-body { + color: #704214; + background: #f3eacb; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section { + background: #f3eacb; +} +.book.color-theme-2 .book-body { + color: #bdcadb; + background: #1c1f2b; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section { + background: #1c1f2b; +} +.book.font-size-0 .book-body .page-inner section { + font-size: 1.2rem; +} +.book.font-size-1 .book-body .page-inner section { + font-size: 1.4rem; +} +.book.font-size-2 .book-body .page-inner section { + font-size: 1.6rem; +} +.book.font-size-3 .book-body .page-inner section { + font-size: 2.2rem; +} +.book.font-size-4 .book-body .page-inner section { + font-size: 4rem; +} +.book.font-family-0 { + font-family: Georgia, serif; +} +.book.font-family-1 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { + color: #704214; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + background: #fdf6e3; + color: #657b83; + border-color: #f8df9c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #f5d06c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { + color: inherit; + background-color: #fdf6e3; + border-color: #444444; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #fbeecb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { + color: #bdcadb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { + color: #3eb1d0; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #fffffa; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { + background-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + color: #9dbed8; + background: #2d3143; + border-color: #2d3143; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: #282a39; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { + color: #b6c2d2; + background-color: #2d3143; + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #35394b; +} +.book.color-theme-1 .book-header { + color: #afa790; + background: transparent; +} +.book.color-theme-1 .book-header .btn { + color: #afa790; +} +.book.color-theme-1 .book-header .btn:hover { + color: #73553c; + background: none; +} +.book.color-theme-1 .book-header h1 { + color: #704214; +} +.book.color-theme-2 .book-header { + color: #7e888b; + background: transparent; +} +.book.color-theme-2 .book-header .btn { + color: #3b3f54; +} +.book.color-theme-2 .book-header .btn:hover { + color: #fffff5; + background: none; +} +.book.color-theme-2 .book-header h1 { + color: #bdcadb; +} +.book.color-theme-1 .book-body .navigation { + color: #afa790; +} +.book.color-theme-1 .book-body .navigation:hover { + color: #73553c; +} +.book.color-theme-2 .book-body .navigation { + color: #383f52; +} +.book.color-theme-2 .book-body .navigation:hover { + color: #fffff5; +} +/* + * Theme 1 + */ +.book.color-theme-1 .book-summary { + color: #afa790; + background: #111111; + border-right: 1px solid rgba(0, 0, 0, 0.07); +} +.book.color-theme-1 .book-summary .book-search { + background: transparent; +} +.book.color-theme-1 .book-summary .book-search input, +.book.color-theme-1 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-1 .book-summary ul.summary li.divider { + background: #7e888b; + box-shadow: none; +} +.book.color-theme-1 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-1 .book-summary ul.summary li.done > a { + color: #877f6a; +} +.book.color-theme-1 .book-summary ul.summary li a, +.book.color-theme-1 .book-summary ul.summary li span { + color: #877f6a; + background: transparent; + font-weight: normal; +} +.book.color-theme-1 .book-summary ul.summary li.active > a, +.book.color-theme-1 .book-summary ul.summary li a:hover { + color: #704214; + background: transparent; + font-weight: normal; +} +/* + * Theme 2 + */ +.book.color-theme-2 .book-summary { + color: #bcc1d2; + background: #2d3143; + border-right: none; +} +.book.color-theme-2 .book-summary .book-search { + background: transparent; +} +.book.color-theme-2 .book-summary .book-search input, +.book.color-theme-2 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-2 .book-summary ul.summary li.divider { + background: #272a3a; + box-shadow: none; +} +.book.color-theme-2 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-2 .book-summary ul.summary li.done > a { + color: #62687f; +} +.book.color-theme-2 .book-summary ul.summary li a, +.book.color-theme-2 .book-summary ul.summary li span { + color: #c1c6d7; + background: transparent; + font-weight: 600; +} +.book.color-theme-2 .book-summary ul.summary li.active > a, +.book.color-theme-2 .book-summary ul.summary li a:hover { + color: #f4f4f5; + background: #252737; + font-weight: 600; +} diff --git a/gitbook/gitbook-plugin-highlight/ebook.css b/gitbook/gitbook-plugin-highlight/ebook.css new file mode 100644 index 0000000..cecaaab --- /dev/null +++ b/gitbook/gitbook-plugin-highlight/ebook.css @@ -0,0 +1,135 @@ +pre, +code { + /* http://jmblog.github.io/color-themes-for-highlightjs */ + /* Tomorrow Comment */ + /* Tomorrow Red */ + /* Tomorrow Orange */ + /* Tomorrow Yellow */ + /* Tomorrow Green */ + /* Tomorrow Aqua */ + /* Tomorrow Blue */ + /* Tomorrow Purple */ +} +pre .hljs-comment, +code .hljs-comment, +pre .hljs-title, +code .hljs-title { + color: #8e908c; +} +pre .hljs-variable, +code .hljs-variable, +pre .hljs-attribute, +code .hljs-attribute, +pre .hljs-tag, +code .hljs-tag, +pre .hljs-regexp, +code .hljs-regexp, +pre .hljs-deletion, +code .hljs-deletion, +pre .ruby .hljs-constant, +code .ruby .hljs-constant, +pre .xml .hljs-tag .hljs-title, +code .xml .hljs-tag .hljs-title, +pre .xml .hljs-pi, +code .xml .hljs-pi, +pre .xml .hljs-doctype, +code .xml .hljs-doctype, +pre .html .hljs-doctype, +code .html .hljs-doctype, +pre .css .hljs-id, +code .css .hljs-id, +pre .css .hljs-class, +code .css .hljs-class, +pre .css .hljs-pseudo, +code .css .hljs-pseudo { + color: #c82829; +} +pre .hljs-number, +code .hljs-number, +pre .hljs-preprocessor, +code .hljs-preprocessor, +pre .hljs-pragma, +code .hljs-pragma, +pre .hljs-built_in, +code .hljs-built_in, +pre .hljs-literal, +code .hljs-literal, +pre .hljs-params, +code .hljs-params, +pre .hljs-constant, +code .hljs-constant { + color: #f5871f; +} +pre .ruby .hljs-class .hljs-title, +code .ruby .hljs-class .hljs-title, +pre .css .hljs-rules .hljs-attribute, +code .css .hljs-rules .hljs-attribute { + color: #eab700; +} +pre .hljs-string, +code .hljs-string, +pre .hljs-value, +code .hljs-value, +pre .hljs-inheritance, +code .hljs-inheritance, +pre .hljs-header, +code .hljs-header, +pre .hljs-addition, +code .hljs-addition, +pre .ruby .hljs-symbol, +code .ruby .hljs-symbol, +pre .xml .hljs-cdata, +code .xml .hljs-cdata { + color: #718c00; +} +pre .css .hljs-hexcolor, +code .css .hljs-hexcolor { + color: #3e999f; +} +pre .hljs-function, +code .hljs-function, +pre .python .hljs-decorator, +code .python .hljs-decorator, +pre .python .hljs-title, +code .python .hljs-title, +pre .ruby .hljs-function .hljs-title, +code .ruby .hljs-function .hljs-title, +pre .ruby .hljs-title .hljs-keyword, +code .ruby .hljs-title .hljs-keyword, +pre .perl .hljs-sub, +code .perl .hljs-sub, +pre .javascript .hljs-title, +code .javascript .hljs-title, +pre .coffeescript .hljs-title, +code .coffeescript .hljs-title { + color: #4271ae; +} +pre .hljs-keyword, +code .hljs-keyword, +pre .javascript .hljs-function, +code .javascript .hljs-function { + color: #8959a8; +} +pre .hljs, +code .hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} +pre .coffeescript .javascript, +code .coffeescript .javascript, +pre .javascript .xml, +code .javascript .xml, +pre .tex .hljs-formula, +code .tex .hljs-formula, +pre .xml .javascript, +code .xml .javascript, +pre .xml .vbscript, +code .xml .vbscript, +pre .xml .css, +code .xml .css, +pre .xml .hljs-cdata, +code .xml .hljs-cdata { + opacity: 0.5; +} diff --git a/gitbook/gitbook-plugin-highlight/website.css b/gitbook/gitbook-plugin-highlight/website.css new file mode 100644 index 0000000..6674448 --- /dev/null +++ b/gitbook/gitbook-plugin-highlight/website.css @@ -0,0 +1,434 @@ +.book .book-body .page-wrapper .page-inner section.normal pre, +.book .book-body .page-wrapper .page-inner section.normal code { + /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + /* Tomorrow Comment */ + /* Tomorrow Red */ + /* Tomorrow Orange */ + /* Tomorrow Yellow */ + /* Tomorrow Green */ + /* Tomorrow Aqua */ + /* Tomorrow Blue */ + /* Tomorrow Purple */ +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title { + color: #8e908c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi, +.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype, +.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype, +.book .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype, +.book .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype, +.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id, +.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-id, +.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class, +.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-class, +.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo, +.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo { + color: #c82829; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-pragma, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-params, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-constant, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-constant { + color: #f5871f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute { + color: #eab700; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-value, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-value, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-header, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-header, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata, +.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata { + color: #718c00; +} +.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor, +.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor { + color: #3e999f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-function, +.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator, +.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator, +.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub, +.book .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub, +.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title { + color: #4271ae; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function, +.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function { + color: #8959a8; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book .book-body .page-wrapper .page-inner section.normal code .hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} +.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript, +.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript, +.book .book-body .page-wrapper .page-inner section.normal pre .javascript .xml, +.book .book-body .page-wrapper .page-inner section.normal code .javascript .xml, +.book .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula, +.book .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .javascript, +.book .book-body .page-wrapper .page-inner section.normal code .xml .javascript, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript, +.book .book-body .page-wrapper .page-inner section.normal code .xml .vbscript, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .css, +.book .book-body .page-wrapper .page-inner section.normal code .xml .css, +.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata, +.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata { + opacity: 0.5; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + /* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + /* Solarized Green */ + /* Solarized Cyan */ + /* Solarized Blue */ + /* Solarized Yellow */ + /* Solarized Orange */ + /* Solarized Red */ + /* Solarized Violet */ +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template_comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template_comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-header, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-header, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctype, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctype, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pi, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pi, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-javadoc, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-javadoc { + color: #93a1a1; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-winutils, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-winutils, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .method, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .method, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-request, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-request, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-status, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-status, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .nginx .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .nginx .hljs-title { + color: #859900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-command, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-command, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag .hljs-value, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag .hljs-value, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-rules .hljs-value, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-rules .hljs-value, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-phpdoc, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-phpdoc, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-hexcolor, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-hexcolor, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_url, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_url { + color: #2aa198; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-localvars, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-localvars, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-chunk, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-chunk, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-decorator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-decorator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-identifier, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-identifier, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .vhdl .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .vhdl .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-id, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-id, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-function, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-function { + color: #268bd2; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-body, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-body, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .smalltalk .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .smalltalk .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-constant, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-parent, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-parent, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .haskell .hljs-type, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .haskell .hljs-type, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_reference, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_reference { + color: #b58900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-shebang, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-shebang, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-change, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-change, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-special, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-special, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr_selector, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr_selector, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-cdata, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-cdata, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .clojure .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .clojure .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-header, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-header { + color: #cb4b16; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-important, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-important { + color: #dc322f; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_label, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_label { + color: #6c71c4; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula { + background: #eee8d5; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + /* Tomorrow Night Bright Theme */ + /* Original theme - https://github.com/chriskempson/tomorrow-theme */ + /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + /* Tomorrow Comment */ + /* Tomorrow Red */ + /* Tomorrow Orange */ + /* Tomorrow Yellow */ + /* Tomorrow Green */ + /* Tomorrow Aqua */ + /* Tomorrow Blue */ + /* Tomorrow Purple */ +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title { + color: #969896; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo { + color: #d54e53; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-constant { + color: #e78c45; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute { + color: #e7c547; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-value, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-value, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-header, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-header, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata { + color: #b9ca4a; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor { + color: #70c0b1; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-function, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-function, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title { + color: #7aa6da; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function { + color: #c397d8; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .xml, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .xml, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .javascript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .javascript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .vbscript, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .css, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .css, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata { + opacity: 0.5; +} diff --git a/gitbook/gitbook-plugin-lunr/lunr.min.js b/gitbook/gitbook-plugin-lunr/lunr.min.js new file mode 100644 index 0000000..6aa6bc7 --- /dev/null +++ b/gitbook/gitbook-plugin-lunr/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 + * Copyright (C) 2015 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;no;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n element for each result + res.results.forEach(function(res) { + var $li = $('
                                                                                            • ', { + 'class': 'search-results-item' + }); + + var $title = $('

                                                                                              '); + + var $link = $('', { + 'href': gitbook.state.basePath + '/' + res.url, + 'text': res.title + }); + + var content = res.body.trim(); + if (content.length > MAX_DESCRIPTION_SIZE) { + content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...'; + } + var $content = $('

                                                                                              ').html(content); + + $link.appendTo($title); + $title.appendTo($li); + $content.appendTo($li); + $li.appendTo($searchList); + }); + } + + function launchSearch(q) { + // Add class for loading + $body.addClass('with-search'); + $body.addClass('search-loading'); + + // Launch search query + throttle(gitbook.search.query(q, 0, MAX_RESULTS) + .then(function(results) { + displayResults(results); + }) + .always(function() { + $body.removeClass('search-loading'); + }), 1000); + } + + function closeSearch() { + $body.removeClass('with-search'); + $bookSearchResults.removeClass('open'); + } + + function launchSearchFromQueryString() { + var q = getParameterByName('q'); + if (q && q.length > 0) { + // Update search input + $searchInput.val(q); + + // Launch search + launchSearch(q); + } + } + + function bindSearch() { + // Bind DOM + $searchInput = $('#book-search-input input'); + $bookSearchResults = $('#book-search-results'); + $searchList = $bookSearchResults.find('.search-results-list'); + $searchTitle = $bookSearchResults.find('.search-results-title'); + $searchResultsCount = $searchTitle.find('.search-results-count'); + $searchQuery = $searchTitle.find('.search-query'); + + // Launch query based on input content + function handleUpdate() { + var q = $searchInput.val(); + + if (q.length == 0) { + closeSearch(); + } + else { + launchSearch(q); + } + } + + // Detect true content change in search input + // Workaround for IE < 9 + var propertyChangeUnbound = false; + $searchInput.on('propertychange', function(e) { + if (e.originalEvent.propertyName == 'value') { + handleUpdate(); + } + }); + + // HTML5 (IE9 & others) + $searchInput.on('input', function(e) { + // Unbind propertychange event for IE9+ + if (!propertyChangeUnbound) { + $(this).unbind('propertychange'); + propertyChangeUnbound = true; + } + + handleUpdate(); + }); + + // Push to history on blur + $searchInput.on('blur', function(e) { + // Update history state + if (usePushState) { + var uri = updateQueryString('q', $(this).val()); + history.pushState({ path: uri }, null, uri); + } + }); + } + + gitbook.events.on('page.change', function() { + bindSearch(); + closeSearch(); + + // Launch search based on query parameter + if (gitbook.search.isInitialized()) { + launchSearchFromQueryString(); + } + }); + + gitbook.events.on('search.ready', function() { + bindSearch(); + + // Launch search from query param at start + launchSearchFromQueryString(); + }); + + function getParameterByName(name) { + var url = window.location.href; + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); + } + + function updateQueryString(key, value) { + value = encodeURIComponent(value); + + var url = window.location.href; + var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'), + hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + } + else { + if (typeof value !== 'undefined' && value !== null) { + var separator = url.indexOf('?') !== -1 ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + else + return url; + } + } +}); diff --git a/gitbook/gitbook-plugin-sharing/buttons.js b/gitbook/gitbook-plugin-sharing/buttons.js new file mode 100644 index 0000000..709a4e4 --- /dev/null +++ b/gitbook/gitbook-plugin-sharing/buttons.js @@ -0,0 +1,90 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + var SITES = { + 'facebook': { + 'label': 'Facebook', + 'icon': 'fa fa-facebook', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://www.facebook.com/sharer/sharer.php?s=100&p[url]='+encodeURIComponent(location.href)); + } + }, + 'twitter': { + 'label': 'Twitter', + 'icon': 'fa fa-twitter', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://twitter.com/home?status='+encodeURIComponent(document.title+' '+location.href)); + } + }, + 'google': { + 'label': 'Google+', + 'icon': 'fa fa-google-plus', + 'onClick': function(e) { + e.preventDefault(); + window.open('https://plus.google.com/share?url='+encodeURIComponent(location.href)); + } + }, + 'weibo': { + 'label': 'Weibo', + 'icon': 'fa fa-weibo', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://service.weibo.com/share/share.php?content=utf-8&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)); + } + }, + 'instapaper': { + 'label': 'Instapaper', + 'icon': 'fa fa-instapaper', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://www.instapaper.com/text?u='+encodeURIComponent(location.href)); + } + }, + 'vk': { + 'label': 'VK', + 'icon': 'fa fa-vk', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://vkontakte.ru/share.php?url='+encodeURIComponent(location.href)); + } + } + }; + + + + gitbook.events.bind('start', function(e, config) { + var opts = config.sharing; + + // Create dropdown menu + var menu = $.map(opts.all, function(id) { + var site = SITES[id]; + + return { + text: site.label, + onClick: site.onClick + }; + }); + + // Create main button with dropdown + if (menu.length > 0) { + gitbook.toolbar.createButton({ + icon: 'fa fa-share-alt', + label: 'Share', + position: 'right', + dropdown: [menu] + }); + } + + // Direct actions to share + $.each(SITES, function(sideId, site) { + if (!opts[sideId]) return; + + gitbook.toolbar.createButton({ + icon: site.icon, + label: site.text, + position: 'right', + onClick: site.onClick + }); + }); + }); +}); diff --git a/gitbook/gitbook.js b/gitbook/gitbook.js new file mode 100644 index 0000000..13077b4 --- /dev/null +++ b/gitbook/gitbook.js @@ -0,0 +1,4 @@ +!function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}};t[s][0].call(l.exports,function(e){var n=t[s][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s0&&t-1 in e)}function o(e,t,n){return de.isFunction(t)?de.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?de.grep(e,function(e){return e===t!==n}):"string"!=typeof t?de.grep(e,function(e){return se.call(t,e)>-1!==n}):je.test(t)?de.filter(t,e,n):(t=de.filter(t,e),de.grep(e,function(e){return se.call(t,e)>-1!==n&&1===e.nodeType}))}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){var t={};return de.each(e.match(qe)||[],function(e,n){t[n]=!0}),t}function a(e){return e}function u(e){throw e}function c(e,t,n){var r;try{e&&de.isFunction(r=e.promise)?r.call(e).done(t).fail(n):e&&de.isFunction(r=e.then)?r.call(e,t,n):t.call(void 0,e)}catch(e){n.call(void 0,e)}}function l(){te.removeEventListener("DOMContentLoaded",l),e.removeEventListener("load",l),de.ready()}function f(){this.expando=de.expando+f.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Ie.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Pe,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n=p(n)}catch(e){}Re.set(e,t,n)}else n=void 0;return n}function d(e,t,n,r){var o,i=1,s=20,a=r?function(){return r.cur()}:function(){return de.css(e,t,"")},u=a(),c=n&&n[3]||(de.cssNumber[t]?"":"px"),l=(de.cssNumber[t]||"px"!==c&&+u)&&$e.exec(de.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do i=i||".5",l/=i,de.style(e,t,l+c);while(i!==(i=a()/u)&&1!==i&&--s)}return n&&(l=+l||+u||0,o=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=o)),o}function g(e){var t,n=e.ownerDocument,r=e.nodeName,o=Ue[r];return o?o:(t=n.body.appendChild(n.createElement(r)),o=de.css(t,"display"),t.parentNode.removeChild(t),"none"===o&&(o="block"),Ue[r]=o,o)}function m(e,t){for(var n,r,o=[],i=0,s=e.length;i-1)o&&o.push(i);else if(c=de.contains(i.ownerDocument,i),s=v(f.appendChild(i),"script"),c&&y(s),n)for(l=0;i=s[l++];)Ve.test(i.type||"")&&n.push(i);return f}function b(){return!0}function w(){return!1}function T(){try{return te.activeElement}catch(e){}}function C(e,t,n,r,o,i){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(a in t)C(e,a,n,r,t[a],i);return e}if(null==r&&null==o?(o=n,r=n=void 0):null==o&&("string"==typeof n?(o=r,r=void 0):(o=r,r=n,n=void 0)),o===!1)o=w;else if(!o)return e;return 1===i&&(s=o,o=function(e){return de().off(e),s.apply(this,arguments)},o.guid=s.guid||(s.guid=de.guid++)),e.each(function(){de.event.add(this,t,o,r,n)})}function j(e,t){return de.nodeName(e,"table")&&de.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e:e}function k(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function E(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function S(e,t){var n,r,o,i,s,a,u,c;if(1===t.nodeType){if(Fe.hasData(e)&&(i=Fe.access(e),s=Fe.set(t,i),c=i.events)){delete s.handle,s.events={};for(o in c)for(n=0,r=c[o].length;n1&&"string"==typeof d&&!pe.checkClone&&nt.test(d))return e.each(function(n){var i=e.eq(n);g&&(t[0]=d.call(this,n,i.html())),A(i,t,r,o)});if(p&&(i=x(t,e[0].ownerDocument,!1,e,o),s=i.firstChild,1===i.childNodes.length&&(i=s),s||o)){for(a=de.map(v(i,"script"),k),u=a.length;f=0&&nC.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[$]=!0,e}function o(e){var t=L.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=n.length;r--;)C.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"form"in t?t.parentNode&&t.disabled===!1?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&je(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),s=i.length;s--;)n[o=i[s]]&&(n[o]=!(r[o]=n[o]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function h(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var o=0,i=n.length;o-1&&(r[c]=!(s[c]=f))}}else x=v(x===s?x.splice(d,x.length):x),i?i(null,s,x,u):K.apply(s,x)})}function x(e){for(var t,n,r,o=e.length,i=C.relative[e[0].type],s=i||C.relative[" "],a=i?1:0,u=d(function(e){return e===t},s,!0),c=d(function(e){return ee(t,e)>-1},s,!0),l=[function(e,n,r){var o=!i&&(r||n!==A)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,o}];a1&&g(l),a>1&&h(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ae,"$1"),n,a0,i=e.length>0,s=function(r,s,a,u,c){var l,f,p,h=0,d="0",g=r&&[],m=[],y=A,x=r||i&&C.find.TAG("*",c),b=B+=null==y?1:Math.random()||.1,w=x.length;for(c&&(A=s===L||s||c);d!==w&&null!=(l=x[d]);d++){if(i&&l){for(f=0,s||l.ownerDocument===L||(O(l),a=!F);p=e[f++];)if(p(l,s||L,a)){u.push(l);break}c&&(B=b)}o&&((l=!p&&l)&&h--,r&&g.push(l))}if(h+=d,o&&d!==h){for(f=0;p=n[f++];)p(g,m,s,a);if(r){if(h>0)for(;d--;)g[d]||m[d]||(m[d]=Q.call(u));m=v(m)}K.apply(u,m),c&&!r&&m.length>0&&h+n.length>1&&t.uniqueSort(u)}return c&&(B=b,A=y),g};return o?r(s):s}var w,T,C,j,k,E,S,N,A,q,D,O,L,H,F,R,I,P,M,$="sizzle"+1*new Date,W=e.document,B=0,_=0,U=n(),z=n(),X=n(),V=function(e,t){return e===t&&(D=!0),0},G={}.hasOwnProperty,Y=[],Q=Y.pop,J=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),le=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ie),pe=new RegExp("^"+re+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ie),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ce=function(){O()},je=d(function(e){return e.disabled===!0&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call(W.childNodes),W.childNodes),Y[W.childNodes.length].nodeType}catch(e){K={apply:Y.length?function(e,t){J.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},O=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:W;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=L.documentElement,F=!k(L),W!==L&&(n=L.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),T.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=o(function(e){return e.appendChild(L.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(L.getElementsByClassName),T.getById=o(function(e){return H.appendChild(e).id=$,!L.getElementsByName||!L.getElementsByName($).length}),T.getById?(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&F){var n=t.getElementById(e);return n?[n]:[]}}):(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&F){var n,r,o,i=t.getElementById(e);if(i){if(n=i.getAttributeNode("id"),n&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if(n=i.getAttributeNode("id"),n&&n.value===e)return[i]}return[]}}),C.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},C.find.CLASS=T.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&F)return t.getElementsByClassName(e)},I=[],R=[],(T.qsa=me.test(L.querySelectorAll))&&(o(function(e){H.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&R.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||R.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+$+"-]").length||R.push("~="),e.querySelectorAll(":checked").length||R.push(":checked"),e.querySelectorAll("a#"+$+"+*").length||R.push(".#.+[+~]")}),o(function(e){e.innerHTML="";var t=L.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&R.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&R.push(":enabled",":disabled"),H.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&R.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),R.push(",.*:")})),(T.matchesSelector=me.test(P=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){T.disconnectedMatch=P.call(e,"*"),P.call(e,"[s!='']:x"),I.push("!=",ie)}),R=R.length&&new RegExp(R.join("|")),I=I.length&&new RegExp(I.join("|")),t=me.test(H.compareDocumentPosition),M=t||me.test(H.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===L||e.ownerDocument===W&&M(W,e)?-1:t===L||t.ownerDocument===W&&M(W,t)?1:q?ee(q,e)-ee(q,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===L?-1:t===L?1:o?-1:i?1:q?ee(q,e)-ee(q,t):0;if(o===i)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===W?-1:u[r]===W?1:0},L):L},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==L&&O(e),n=n.replace(le,"='$1']"),T.matchesSelector&&F&&!X[n+" "]&&(!I||!I.test(n))&&(!R||!R.test(n)))try{var r=P.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,L,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==L&&O(e),M(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==L&&O(e);var n=C.attrHandle[t.toLowerCase()],r=n&&G.call(C.attrHandle,t.toLowerCase())?n(e,t,!F):void 0;return void 0!==r?r:T.attributes||!F?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(D=!T.detectDuplicates,q=!T.sortStable&&e.slice(0),e.sort(V),D){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return q=null,e},j=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=j(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=j(t);return n},C=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:!n||(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(i===r||i.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,p,h,d,g=i!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(m){if(i){for(;g;){for(p=t;p=p[g];)if(a?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&y){for(p=m,f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],h=c[0]===B&&c[1],x=h&&c[2],p=h&&m.childNodes[h];p=++h&&p&&p[g]||(x=h=0)||d.pop();)if(1===p.nodeType&&++x&&p===t){l[e]=[B,h,x];break}}else if(y&&(p=t,f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],h=c[0]===B&&c[1],x=h),x===!1)for(;(p=++h&&p&&p[g]||(x=h=0)||d.pop())&&((a?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++x||(y&&(f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),l[e]=[B,x]),p!==t)););return x-=o,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var o,i=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[$]?i(n):i.length>1?(o=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),s=o.length;s--;)r=ee(e,o[s]),e[r]=!(t[r]=o[s])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=S(e.replace(ae,"$1"));return o[$]?r(function(e,t,n,r){for(var i,s=o(e,null,r,[]),a=e.length;a--;)(i=s[a])&&(e[a]=!(t[a]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){ +return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||j(t)).indexOf(e)>-1}}),lang:r(function(e){return pe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do if(n=F?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=i[0]).type&&9===t.nodeType&&F&&C.relative[i[1].type]){if(t=(C.find.ID(s.matches[0].replace(xe,be),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=he.needsContext.test(e)?0:i.length;o--&&(s=i[o],!C.relative[a=s.type]);)if((u=C.find[a])&&(r=u(s.matches[0].replace(xe,be),ye.test(i[0].type)&&f(t.parentNode)||t))){if(i.splice(o,1),e=r.length&&h(i),!e)return K.apply(n,r),n;break}}return(c||S(e,l))(r,t,!F,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=$.split("").sort(V).join("")===$,T.detectDuplicates=!!D,O(),T.sortDetached=o(function(e){return 1&e.compareDocumentPosition(L.createElement("fieldset"))}),o(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&o(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),o(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);de.find=xe,de.expr=xe.selectors,de.expr[":"]=de.expr.pseudos,de.uniqueSort=de.unique=xe.uniqueSort,de.text=xe.getText,de.isXMLDoc=xe.isXML,de.contains=xe.contains,de.escapeSelector=xe.escape;var be=function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&de(e).is(n))break;r.push(e)}return r},we=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Te=de.expr.match.needsContext,Ce=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,je=/^.[^:#\[\.,]*$/;de.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?de.find.matchesSelector(r,e)?[r]:[]:de.find.matches(e,de.grep(t,function(e){return 1===e.nodeType}))},de.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(de(e).filter(function(){for(t=0;t1?de.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Te.test(e)?de(e):e||[],!1).length}});var ke,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Se=de.fn.init=function(e,t,n){var r,o;if(!e)return this;if(n=n||ke,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ee.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof de?t[0]:t,de.merge(this,de.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:te,!0)),Ce.test(r[1])&&de.isPlainObject(t))for(r in t)de.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return o=te.getElementById(r[2]),o&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):de.isFunction(e)?void 0!==n.ready?n.ready(e):e(de):de.makeArray(e,this)};Se.prototype=de.fn,ke=de(te);var Ne=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};de.fn.extend({has:function(e){var t=de(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&de.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?de.uniqueSort(i):i)},index:function(e){return e?"string"==typeof e?se.call(de(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(de.uniqueSort(de.merge(this.get(),de(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),de.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return be(e,"parentNode")},parentsUntil:function(e,t,n){return be(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return be(e,"nextSibling")},prevAll:function(e){return be(e,"previousSibling")},nextUntil:function(e,t,n){return be(e,"nextSibling",n)},prevUntil:function(e,t,n){return be(e,"previousSibling",n)},siblings:function(e){return we((e.parentNode||{}).firstChild,e)},children:function(e){return we(e.firstChild)},contents:function(e){return e.contentDocument||de.merge([],e.childNodes)}},function(e,t){de.fn[e]=function(n,r){var o=de.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=de.filter(r,o)),this.length>1&&(Ae[e]||de.uniqueSort(o),Ne.test(e)&&o.reverse()),this.pushStack(o)}});var qe=/[^\x20\t\r\n\f]+/g;de.Callbacks=function(e){e="string"==typeof e?s(e):de.extend({},e);var t,n,r,o,i=[],a=[],u=-1,c=function(){for(o=e.once,r=t=!0;a.length;u=-1)for(n=a.shift();++u-1;)i.splice(n,1),n<=u&&u--}),this},has:function(e){return e?de.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return o=a=[],i=n="",this},disabled:function(){return!i},lock:function(){return o=a=[],n||t||(i=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},de.extend({Deferred:function(t){var n=[["notify","progress",de.Callbacks("memory"),de.Callbacks("memory"),2],["resolve","done",de.Callbacks("once memory"),de.Callbacks("once memory"),0,"resolved"],["reject","fail",de.Callbacks("once memory"),de.Callbacks("once memory"),1,"rejected"]],r="pending",o={state:function(){return r},always:function(){return i.done(arguments).fail(arguments),this},catch:function(e){return o.then(null,e)},pipe:function(){var e=arguments;return de.Deferred(function(t){de.each(n,function(n,r){var o=de.isFunction(e[r[4]])&&e[r[4]];i[r[1]](function(){var e=o&&o.apply(this,arguments);e&&de.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,o?[e]:arguments)})}),e=null}).promise()},then:function(t,r,o){function i(t,n,r,o){return function(){var c=this,l=arguments,f=function(){var e,f;if(!(t=s&&(r!==u&&(c=void 0,l=[e]),n.rejectWith(c,l))}};t?p():(de.Deferred.getStackHook&&(p.stackTrace=de.Deferred.getStackHook()),e.setTimeout(p))}}var s=0;return de.Deferred(function(e){n[0][3].add(i(0,e,de.isFunction(o)?o:a,e.notifyWith)),n[1][3].add(i(0,e,de.isFunction(t)?t:a)),n[2][3].add(i(0,e,de.isFunction(r)?r:u))}).promise()},promise:function(e){return null!=e?de.extend(e,o):o}},i={};return de.each(n,function(e,t){var s=t[2],a=t[5];o[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),i[t[0]]=function(){return i[t[0]+"With"](this===i?void 0:this,arguments),this},i[t[0]+"With"]=s.fireWith}),o.promise(i),t&&t.call(i,i),i},when:function(e){var t=arguments.length,n=t,r=Array(n),o=re.call(arguments),i=de.Deferred(),s=function(e){return function(n){r[e]=this,o[e]=arguments.length>1?re.call(arguments):n,--t||i.resolveWith(r,o)}};if(t<=1&&(c(e,i.done(s(n)).resolve,i.reject),"pending"===i.state()||de.isFunction(o[n]&&o[n].then)))return i.then();for(;n--;)c(o[n],s(n),i.reject);return i.promise()}});var De=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;de.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&De.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},de.readyException=function(t){e.setTimeout(function(){throw t})};var Oe=de.Deferred();de.fn.ready=function(e){return Oe.then(e).catch(function(e){de.readyException(e)}),this},de.extend({isReady:!1,readyWait:1,holdReady:function(e){e?de.readyWait++:de.ready(!0)},ready:function(e){(e===!0?--de.readyWait:de.isReady)||(de.isReady=!0,e!==!0&&--de.readyWait>0||Oe.resolveWith(te,[de]))}}),de.ready.then=Oe.then,"complete"===te.readyState||"loading"!==te.readyState&&!te.documentElement.doScroll?e.setTimeout(de.ready):(te.addEventListener("DOMContentLoaded",l),e.addEventListener("load",l));var Le=function(e,t,n,r,o,i,s){var a=0,u=e.length,c=null==n;if("object"===de.type(n)){o=!0;for(a in n)Le(e,t,a,n[a],!0,i,s)}else if(void 0!==r&&(o=!0,de.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(de(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each(function(){Re.remove(this,e)})}}),de.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Fe.get(e,t),n&&(!r||de.isArray(n)?r=Fe.access(e,t,de.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=de.queue(e,t),r=n.length,o=n.shift(),i=de._queueHooks(e,t),s=function(){de.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,s,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Fe.get(e,n)||Fe.access(e,n,{empty:de.Callbacks("once memory").add(function(){Fe.remove(e,[t+"queue",n])})})}}),de.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ve=/^$|\/(?:java|ecma)script/i,Ge={option:[1,""],thead:[1,"","
                                                                                              "],col:[2,"","
                                                                                              "],tr:[2,"","
                                                                                              "],td:[3,"","
                                                                                              "],_default:[0,"",""]};Ge.optgroup=Ge.option,Ge.tbody=Ge.tfoot=Ge.colgroup=Ge.caption=Ge.thead,Ge.th=Ge.td;var Ye=/<|&#?\w+;/;!function(){var e=te.createDocumentFragment(),t=e.appendChild(te.createElement("div")),n=te.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),pe.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Qe=te.documentElement,Je=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;de.event={global:{},add:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.get(e);if(m)for(n.handler&&(i=n,n=i.handler,o=i.selector),o&&de.find.matchesSelector(Qe,o),n.guid||(n.guid=de.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return"undefined"!=typeof de&&de.event.triggered!==t.type?de.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(qe)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h&&(f=de.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=de.event.special[h]||{},l=de.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&de.expr.match.needsContext.test(o),namespace:d.join(".")},i),(p=u[h])||(p=u[h]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,d,s)!==!1||e.addEventListener&&e.addEventListener(h,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,l):p.push(l),de.event.global[h]=!0)},remove:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.hasData(e)&&Fe.get(e);if(m&&(u=m.events)){for(t=(t||"").match(qe)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){for(f=de.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=i=p.length;i--;)l=p[i],!o&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(p.splice(i,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||de.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)de.event.remove(e,h+t[c],n,r,!0);de.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,i,s,a=de.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=de.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||c.disabled!==!0)){for(i=[],s={},n=0;n-1:de.find(o,this,null,[c]).length),s[o]&&i.push(r);i.length&&a.push({elem:c,handlers:i})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;de.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,o,i,s,a=e.cloneNode(!0),u=de.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||de.isXMLDoc(e)))for(s=v(a),i=v(e),r=0,o=i.length;r0&&y(s,!u&&v(e,"script")),a},cleanData:function(e){for(var t,n,r,o=de.event.special,i=0;void 0!==(n=e[i]);i++)if(He(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)o[r]?de.event.remove(n,r):de.removeEvent(n,r,t.handle);n[Fe.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),de.fn.extend({detach:function(e){return q(this,e,!0)},remove:function(e){return q(this,e)},text:function(e){return Le(this,function(e){return void 0===e?de.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.appendChild(e)}})},prepend:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(de.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return de.clone(this,e,t)})},html:function(e){return Le(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Ge[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=de.htmlPrefilter(e);try{for(;n1)}}),de.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||de.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(de.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=de.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=de.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){de.fx.step[e.prop]?de.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[de.cssProps[e.prop]]&&!de.cssHooks[e.prop]?e.elem[e.prop]=e.now:de.style(e.elem,e.prop,e.now+e.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},de.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},de.fx=I.prototype.init,de.fx.step={};var ht,dt,gt=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;de.Animation=de.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){de.isFunction(e)?(t=e,e=["*"]):e=e.match(qe);for(var n,r=0,o=e.length;r1)},removeAttr:function(e){return this.each(function(){de.removeAttr(this,e)})}}),de.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return"undefined"==typeof e.getAttribute?de.prop(e,t,n):(1===i&&de.isXMLDoc(e)||(o=de.attrHooks[t.toLowerCase()]||(de.expr.match.bool.test(t)?vt:void 0)),void 0!==n?null===n?void de.removeAttr(e,t):o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=de.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&de.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(qe);if(o&&1===e.nodeType)for(;n=o[r++];)e.removeAttribute(n)}}),vt={set:function(e,t,n){return t===!1?de.removeAttr(e,n):e.setAttribute(n,n),n}},de.each(de.expr.match.bool.source.match(/\w+/g),function(e,t){var n=yt[t]||de.find.attr;yt[t]=function(e,t,r){var o,i,s=t.toLowerCase();return r||(i=yt[s],yt[s]=o,o=null!=n(e,t,r)?s:null,yt[s]=i),o}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;de.fn.extend({prop:function(e,t){return Le(this,de.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[de.propFix[e]||e]})}}),de.extend({prop:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&de.isXMLDoc(e)||(t=de.propFix[t]||t,o=de.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=de.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),pe.optSelected||(de.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),de.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){de.propFix[this.toLowerCase()]=this}),de.fn.extend({addClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).addClass(e.call(this,t,X(this)))});if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).removeClass(e.call(this,t,X(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):de.isFunction(e)?this.each(function(n){de(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,r,o,i;if("string"===n)for(r=0,o=de(this),i=e.match(qe)||[];t=i[r++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(X(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;de.fn.extend({val:function(e){var t,n,r,o=this[0];{if(arguments.length)return r=de.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,de(this).val()):e,null==o?o="":"number"==typeof o?o+="":de.isArray(o)&&(o=de.map(o,function(e){return null==e?"":e+""})),t=de.valHooks[this.type]||de.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))});if(o)return t=de.valHooks[o.type]||de.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(wt,""):null==n?"":n)}}}),de.extend({valHooks:{option:{get:function(e){var t=de.find.attr(e,"value");return null!=t?t:z(de.text(e))}},select:{get:function(e){var t,n,r,o=e.options,i=e.selectedIndex,s="select-one"===e.type,a=s?null:[],u=s?i+1:o.length;for(r=i<0?u:s?i:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),de.each(["radio","checkbox"],function(){de.valHooks[this]={set:function(e,t){if(de.isArray(t))return e.checked=de.inArray(de(e).val(),t)>-1}},pe.checkOn||(de.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Tt=/^(?:focusinfocus|focusoutblur)$/;de.extend(de.event,{trigger:function(t,n,r,o){var i,s,a,u,c,l,f,p=[r||te],h=ce.call(t,"type")?t.type:t,d=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||te,3!==r.nodeType&&8!==r.nodeType&&!Tt.test(h+de.event.triggered)&&(h.indexOf(".")>-1&&(d=h.split("."),h=d.shift(),d.sort()),c=h.indexOf(":")<0&&"on"+h,t=t[de.expando]?t:new de.Event(h,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=d.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:de.makeArray(n,[t]),f=de.event.special[h]||{},o||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!o&&!f.noBubble&&!de.isWindow(r)){for(u=f.delegateType||h,Tt.test(u+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||te)&&p.push(a.defaultView||a.parentWindow||e)}for(i=0;(s=p[i++])&&!t.isPropagationStopped();)t.type=i>1?u:f.bindType||h,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),l=c&&s[c],l&&l.apply&&He(s)&&(t.result=l.apply(s,n),t.result===!1&&t.preventDefault());return t.type=h,o||t.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!He(r)||c&&de.isFunction(r[h])&&!de.isWindow(r)&&(a=r[c],a&&(r[c]=null),de.event.triggered=h,r[h](),de.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=de.extend(new de.Event,n,{type:e,isSimulated:!0});de.event.trigger(r,null,t)}}),de.fn.extend({trigger:function(e,t){return this.each(function(){de.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return de.event.trigger(e,t,n,!0)}}),de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){de.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),de.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||de.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){de.event.simulate(t,e.target,de.event.fix(e))};de.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=Fe.access(r,t);o||r.addEventListener(e,n,!0),Fe.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=Fe.access(r,t)-1;o?Fe.access(r,t,o):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}});var Ct=e.location,jt=de.now(),kt=/\?/;de.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||de.error("Invalid XML: "+t),n};var Et=/\[\]$/,St=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;de.param=function(e,t){var n,r=[],o=function(e,t){var n=de.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(de.isArray(e)||e.jquery&&!de.isPlainObject(e))de.each(e,function(){o(this.name,this.value)});else for(n in e)V(n,e[n],t,o);return r.join("&")},de.fn.extend({serialize:function(){return de.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=de.prop(this,"elements");return e?de.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!de(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!ze.test(e))}).map(function(e,t){var n=de(this).val();return null==n?null:de.isArray(n)?de.map(n,function(e){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}});var qt=/%20/g,Dt=/#.*$/,Ot=/([?&])_=[^&]*/,Lt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ft=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Pt={},Mt="*/".concat("*"),$t=te.createElement("a");$t.href=Ct.href,de.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Ht.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Mt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":de.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Q(Q(e,de.ajaxSettings),t):Q(de.ajaxSettings,e)},ajaxPrefilter:G(It),ajaxTransport:G(Pt),ajax:function(t,n){function r(t,n,r,a){var c,p,h,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),o=void 0,s=a||"",C.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=J(d,C,r)),b=K(d,b,C,c),c?(d.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(de.lastModified[i]=w),w=C.getResponseHeader("etag"),w&&(de.etag[i]=w)),204===t||"HEAD"===d.type?T="nocontent":304===t?T="notmodified":(T=b.state,p=b.data,h=b.error,c=!h)):(h=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(n||T)+"",c?v.resolveWith(g,[p,T,C]):v.rejectWith(g,[C,T,h]),C.statusCode(x),x=void 0,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[C,d,c?p:h]),y.fireWith(g,[C,T]),f&&(m.trigger("ajaxComplete",[C,d]),--de.active||de.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var o,i,s,a,u,c,l,f,p,h,d=de.ajaxSetup({},n),g=d.context||d,m=d.context&&(g.nodeType||g.jquery)?de(g):de.event,v=de.Deferred(),y=de.Callbacks("once memory"),x=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Lt.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return o&&o.abort(t),r(0,t),this}};if(v.promise(C),d.url=((t||d.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(qe)||[""],null==d.crossDomain){c=te.createElement("a");try{c.href=d.url,c.href=c.href,d.crossDomain=$t.protocol+"//"+$t.host!=c.protocol+"//"+c.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=de.param(d.data,d.traditional)),Y(It,d,n,C),l)return C;f=de.event&&d.global,f&&0===de.active++&&de.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Ft.test(d.type),i=d.url.replace(Dt,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(qt,"+")):(h=d.url.slice(i.length),d.data&&(i+=(kt.test(i)?"&":"?")+d.data,delete d.data),d.cache===!1&&(i=i.replace(Ot,"$1"),h=(kt.test(i)?"&":"?")+"_="+jt++ +h),d.url=i+h),d.ifModified&&(de.lastModified[i]&&C.setRequestHeader("If-Modified-Since",de.lastModified[i]),de.etag[i]&&C.setRequestHeader("If-None-Match",de.etag[i])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Mt+"; q=0.01":""):d.accepts["*"]);for(p in d.headers)C.setRequestHeader(p,d.headers[p]);if(d.beforeSend&&(d.beforeSend.call(g,C,d)===!1||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),o=Y(Pt,d,n,C)){if(C.readyState=1,f&&m.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(u=e.setTimeout(function(){C.abort("timeout")},d.timeout));try{l=!1,o.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return C},getJSON:function(e,t,n){return de.get(e,t,n,"json")},getScript:function(e,t){return de.get(e,void 0,t,"script")}}),de.each(["get","post"],function(e,t){de[t]=function(e,n,r,o){return de.isFunction(n)&&(o=o||r,r=n,n=void 0),de.ajax(de.extend({url:e,type:t,dataType:o,data:n,success:r},de.isPlainObject(e)&&e))}}),de._evalUrl=function(e){return de.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},de.fn.extend({wrapAll:function(e){var t;return this[0]&&(de.isFunction(e)&&(e=e.call(this[0])),t=de(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return de.isFunction(e)?this.each(function(t){de(this).wrapInner(e.call(this,t))}):this.each(function(){var t=de(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=de.isFunction(e);return this.each(function(n){de(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){de(this).replaceWith(this.childNodes)}),this}}),de.expr.pseudos.hidden=function(e){return!de.expr.pseudos.visible(e)},de.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},de.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=de.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,de.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(o,i){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?i(0,"error"):i(a.status,a.statusText):i(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),de.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),de.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return de.globalEval(e),e}}}),de.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),de.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,o){t=de(" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4e434a0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "gitbook-plugin-expandable-chapters": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/gitbook-plugin-expandable-chapters/-/gitbook-plugin-expandable-chapters-0.2.0.tgz", + "integrity": "sha1-RdcIeuaQekH0gSjFT+ViJKnBraI=" + }, + "gitbook-plugin-yahei": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitbook-plugin-yahei/-/gitbook-plugin-yahei-1.0.0.tgz", + "integrity": "sha512-7Mz/I5sgT1Vn1R5ezRhKidgHbqDqJOdpHHkCSNsGoQxmngA04uka13ZuVHtGOZxut8sq/Wxet155FEJRqF7Yhw==" + } + } +} diff --git a/search_index.json b/search_index.json new file mode 100644 index 0000000..9fa8045 --- /dev/null +++ b/search_index.json @@ -0,0 +1 @@ +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["13540040119,","13910506562,","18503063188,","18930110869,","400","6580","820","852990221","86","actiontech.github.io/dtl","cn","doc","dtle","gitbook","github","github.com/actiontech/dtl","github:","group:","introduct","pages:","pdf下载","qq","summary.md","中文技术参考手册","代码库","全国支持:","华东地区:","华北地区:","华南地区:","参考","如果想获得","官方技术支持","左侧目录区","开源社区微信公众号","您可以联系我们:","或","文档库","曹先生","梁先生","汪先生","洪先生","的商业支持,","目录","网站:爱可生开源社区","联系我们","西南地区:"],"0/0_overview.html":["(data","0.概述","actiondb的数据传输","cdc","dtle","kafka的数据传输","le)","mysql的数据传输","transform","其功能特点是:","可进行自动任务分配","多种数据传输模式","多种数据处理模式","多种数据通道模式","多种源/目标端","工具.","开发并开源的","提供可靠的元数据存储","支持mysql","支持oracl","支持同构传输和异构传输","支持回环传输","支持多对多的数据传输","支持库/表/行级别","支持自动故障转移","支持跨网络边际的传输","支持链路压缩","数据过滤","是上海爱可生信息技术股份有限公司","概述","集群模式"],"1/1.0_mysql_replication.html":["(可使用","1.0","1.0.mysql的单向复制/聚合/分散","dtle","dtle集群","兼容mysql的","兼容mysql的单向复制/聚合/分散","单一dtle实例","单一数据通道","单向数据复制的常见场景如下:","可配置","同一个数据目标","处理","多个数据目标","多个数据通道","如下图,","将一个数据源的数据","将多个数据源的数据","拆分到","按数据源/数据目标的映射关系划分","按网络类型划分","按集群规模划分","支持","支持1:1的复制","支持1:n的数据拆分,","支持n:1的数据汇聚,","支持网络内的数据传输","支持跨网络边际的数据传输","等功能)","聚合到","链路压缩/链路限流"],"1/1.1_bidirectional_replication.html":["1.1","1.1.跨数据中心的双向复制","dtle","dtle支持mysql间的双向复制,","不会重复传输同一事务.","会对数据的回环状况进行判断,","其中:","其普遍场景是用于跨数据中心的数据双向同步.","可使用压缩/限速等功能,","在传输过程中维持数据的事务性,","在数据目标端是以相同的事务方式进行回放.","在数据链路上,","如下图,","对于双写的场景,","对于数据源的事务产生的数据,","更适合于跨数据中心的场景.","目标端不会受到不完整的事务的影响.","跨数据中心的双向复制"],"1/1.2_sync_between_cloud.html":["(如阿里云rds会增加隐式主键列,","1.0","1.1","1.2","1.2.公有云间的数据同步",">","binlog中的数据与表结构不符)","dtle","mysql","不需高权限即可实现数据复制","两节介绍的方式.","京东云","公有云间的数据同步","其中的不同之处在于:","可支持的部署方式同","可用于公有云间的数据同步,","可部署于公有云的云主机服务上","和","对公有云上rds服务给予的权限进行了适配,","对公有云的","导致","目前支持的公有云同步通道:","进行了适配","阿里云","非官方版"],"1/1.3_mysql_kafka.html":["1.3","1.3.mysql到kafka的数据变更通知","dtle支持mysql到kafka的数据变更通知,","mysql到kafka的数据变更通知","其普遍场景是:","如下图,","当数据变更时,","数据后处理件","缓存件","进行数据扫描","进行缓存刷新","通知"],"1/1.4_oracle_mysql.html":["1.4","1.4.oracle到mysql的数据同步","dtle支持oracle到mysql的数据同步通知,","oracle到mysql的数据同步","其场景是:","同步库/表结构到mysql","如下图,","当oracle执行ddl时,","当oracle执行dml时,同步字段变更到mysql"],"2/2.0_mysql_replication_1_1.html":["\"\",","\"127.0.0.1:4646/v1/nodes\"","\"config\":","\"datacenters\":","\"demo\",","\"demo_tbl\"","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle","\"dtle\",","\"gtid\":","\"host\":","\"http://127.0.0.1:4646/v1/job/dtl","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":","\"job\":","\"mysql","\"mysql\"","\"name\":","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"root\",","\"select","\"src\",","\"srcconnectionconfig\":","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"user\":","#","'.status'","127.0.0.1","2.0.mysql的单向复制","2.x","3306,","33061","33061:3306","33062","33062:3306","4646:4646","8190:8190","8500:8500",">","@@version\\g\"","@job.json","[\"dc1\"],","[{","actiontech/dtl","api兼容层,则需要额外映射8190端口:","bin=bin","consistency=1","consul","consul:latest","creat","curl","d","demo\"","demo\",","docker","dst","dst\",","dtle","e","enforc","gtid","gtid点位为空,","h","http","id=1","id=2","jq","log","mode=on","mysql","mysql:5.7","mysql_root_password=pass","name","net","network","network=dtl","p","ppass","run","s","server","src","src\",","uroot","xget","xpost","{","|","}","},","}]","}],","也可不提前建表.","以下步骤以docker容器的方式快速演示如何搭建mysql的单向复制环境.","以体验全量复制过程.","全量+增量","其中定义了:","内容如下:","准备作业定义文件","准备文件job.json,","准备测试数据","创建","创建复制任务","创建源端/目标端","创建网络","可在源端准备提前建表demo.demo_tbl,","可指定合法的gtid","如只测试增量复制,","如需要使用dtle","并插入数据,","查看作业状态","查看目标端数据是否一致","检查是否正常:","检查是否联通:","此时可在源端对表demo.demo_tbl进行ddl/dml等各种操作,","测试","源端/目标端的连接字符串","的单向复制","的复制.","表示此复制是","要复制的表为demo.demo_tbl"],"2/2.0.1_interface.html":["\"127.0.0.1:8500/v1/kv/dtle/aa/gtid?raw","\"http://127.0.0.1:4646/v1/jobs\"","#","'.status'","2.0.1.http","@job.json","address=\"http://192.168.1.1:4646\"","agent端。","agent端的http接口,将本地的job.json提交到nomad","api","api、nomad","api的封装。","consul","curl","curl命令实际上是调用nomad","d","dtle","export","http","http://127.0.0.1:4646,","http://127.0.0.1:4646,为","https://stedolan.github.io/jq/tutorial/","job","job1.hcl","job,可运行hcl或json格式的job。","jq","jq是一款格式化、提取json内容的工具。一般需使用linux包管理器安装。","nomad","nomad_addr=\"http://192.168.1.1:4646\"","rpm安装包提供了json和hcl格式的job样例。","run","s","some_command_print_json","web","web界面","xget","xpost","|","为","使用","使用hcl格式:","具体参考","典型用法","命令行工具","命令行工具运行job,","和","在jobs界面,点击run","或","提取字段(status):","插件使用consul进行任务元数据储存","本体使用consul进行多节点注册和发现","格式化json内容:","此外还可以使用nomad命令行工具。nomad将命令行工具和agent端放在了同一个可执行文件中。","浏览器访问","界面","界面。可查看jobs、servers和clients。","界面。可查看kv中的job进度(gtid)。","该用法本质上是对http"],"2/2.1_mysql_replication_n_1.html":["\"127.0.0.1:4646/v1/jobs\"","\"127.0.0.1:4646/v1/nodes\"","\"config\":","\"creat","\"datacenters\":","\"demo\",","\"demo_tbl\"","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle","\"dtle\",","\"executed_gtid_set\"","\"f6def853","\"f74aacb5","\"gtid\":","\"host\":","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":","\"insert","\"job\":","\"mysql","\"mysql\"","\"name\":","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"root\",","\"select","\"show","\"src\",","\"srcconnectionconfig\":","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"user\":","'.[]","*",".id,",".status'","0242ac120003:1","0242ac120004:1","11e8","127.0.0.1","2.1.mysql的聚合复制","3306,","33061","33061:3306","33062","33062:3306","33063","33063:3306","4646:4646","7\",","8500:8500","8aeb",">","@@version\\g\"","@src1_dst.json","@src2_dst.json","[\"dc1\"],","[{","actiontech/dtl","bdd1","bin=bin","cbaa","consistency=1","consul","consul:latest","creat","curl","d","databas","demo","demo.demo_tbl","demo.demo_tbl\"","demo.demo_tbl(a","demo;","docker","dst","dst\",","dtle","e","enforc","grep","gtid","gtid点位为","h","id=1","id=2","id=3","int","jq","key)\"","log","master","mode=on","mysql","mysql:5.7","mysql_root_password=pass","name","net","network","network=dtl","p","ppass","primari","run","s","server","src1","src1\",","src1到dst的复制定义文件","src2","src2\",","src2到dst的复制定义文件","status\\g\"","tabl","uroot","values(1),(2),(3)\"","values(11)\"","values(12)\"","values(4),(5),(6)\"","xget","xpost","{","|","}","},","}]","}],","以下步骤以docker容器的方式快速演示如何搭建mysql的汇聚复制环境.","其中与src1_dst.json不同的是:","其中定义了:","内容如下:","准备src1_dst.json,","准备src2_dst.json,","准备作业定义文件","准备数据阶段","创建","创建复制任务","创建源端(2个)和目标端(1个)","创建网络","在src1和src2中分别插入数据,","在源端mysql中创建表结构,","在目标端mysql中创建表结构","并插入数据","插入数据之前的src1上的gtid点位","插入数据之前的src2上的gtid点位","查看dst中的数据,","查看作业id和状态:","检查是否正常:","检查是否联通:","测试","源端/目标端的连接字符串","源端的连接字符串","的汇聚复制","获取gtid点位,","要复制的表为demo.demo_tbl","验证全量和增量的数据均存在"],"2/2.2_mysql_replication_1_n.html":["\"\",","\"127.0.0.1:4646/v1/jobs\"","\"127.0.0.1:4646/v1/nodes\"","\"config\":","\"creat","\"datacenters\":","\"demo\",","\"demo_tbl\",","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle","\"dtle\",","\"executed_gtid_set\"","\"gtid\":","\"host\":","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":","\"insert","\"job\":","\"mysql","\"mysql\"","\"name\":","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"root\",","\"select","\"show","\"src\",","\"srcconnectionconfig\":","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"user\":","\"where\":\"a>=5\"","\"where\":\"a其中定义了:","'.[]","*",".id,",".status'","127.0.0.1","2.2.mysql的数据分散","3306,","33061","33061:3306","33062","33062:3306","33063","33063:3306","4646:4646","8500:8500",">","@@version\\g\"","@src_dst1.json","@src_dst2.json","[\"dc1\"],","[{","actiontech/dtl","bin=bin","consistency=1","consul","consul:latest","creat","curl","d","databas","demo","demo.demo_tbl","demo.demo_tbl\"","demo.demo_tbl(a","demo;","demo_tbl的复制数据条件","demo_tbl的复制数据条件为a","demo_tbl的复制数据条件为a>=5","docker","dst1","dst1\",","dst2","dst2\",","dtle","e","enforc","grep","gtid","h","id=1","id=2","id=3","int","jq","key)\"","log","master","mode=on","mysql","mysql:5.7","mysql_root_password=pass","name","net","network","network=dtl","p","ppass","primari","run","s","server","src","src\",","src到dst1的复制定义文件","src到dst2的复制定义文件","status\\g\"","tabl","uroot","values(0),(10)\"","values(1),(2),(3)\"","xget","xpost","{","|","}","},","}]","}],","主键>=5的行复制到目标库2.","主键的行复制到目标库1,","以下步骤以docker容器的方式快速演示如何搭建mysql的数据分散环境.","其中与src1_dst.json不同的是:","其中定义了:","内容如下:","准备src_dst1.json,","准备src_dst2.json,","准备作业定义文件","创建","创建复制任务","创建源端(1个)和目标端(2个)","创建网络","在src中插入数据,","在源端mysql中创建表结构,","在目标端mysql中创建表结构","将源表中的数据中,","并插入数据","数据分散复制,","查看dst1/dst2中的数据,","查看作业id和状态:","检查是否正常:","检查是否联通:","测试","源端/目标端的连接字符串","源端的连接字符串","的数据分散","获取gtid点位,","要复制的表为demo.demo_tbl","验证全量和增量的数据均存在"],"2/2.3_dc_to_dc_bidirectional.html":["\"${node.unique.name}\",","\"127.0.0.1:4646/v1/job/dtl","\"127.0.0.1:4646/v1/nodes\"","\"172.22.0.2\"","\"172.22.0.2:4646\"","\"172.22.0.2:8193\"","\"172.22.0.3\"","\"172.22.0.3:4646\"","\"172.22.0.3:8193\"","\"=\"","\"config\":","\"constraints\":","\"datacenters\":","\"demo\",","\"demo_tbl\"","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle\"","\"dtle\",","\"executed_gtid_set\"","\"gtid\":\"41f102d4","\"host\":\"mysql","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":\"dtl","\"job\":","\"ltarget\":","\"mysql\"","\"name\":","\"nomad1\"","\"nomad1\",","\"nomad2\"","\"nomad2\",","\"operand\":","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"root\",","\"rtarget\":","\"select","\"show","\"src\",","\"srcconnectionconfig\":","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"user\":","#","'.status'","(与mysql通信的内网dtl","(双向复制","(省略未更改项目)","(通过","...","/dtle/etc/dtle/nomad.hcl","/dtle/var/lib/nomad","0242ac130002:1","0242ac130002:6","0242ac150002:1","1","11e8","127.0.0.1","2","2.3.mysql的跨数据中心的双向复制","3306,","33061","33061:3306","33062","33062:3306","4646:4646","5\",","5646:4646","7,42158e2f","8500:8500","8de7","=",">","@@version\\g\"","@job","[\"dc1\"],","[{","actiontech/dtl","advertis","b322","bin=bin","bind_addr","client","client.","config","connect","consistency=1","constraint","consul","consul:latest","creat","curl","d","d29f","dc1","dc1\"","dc1\",","dc1,","dc1.json","dc1.json,","dc1内的配置并重启","dc1内的配置并重启:","dc1到dc2的复制任务","dc1容器存在两个网络","dc1的gtid:","dc1通信的公网dtle","dc2","dc2\"","dc2\",","dc2,","dc2.","dc2.json","dc2.json,","dc2内的配置并重启","dc2内的配置并重启:","dc2容器存在两个网络","dc2的gtid:","dc2通信的公网dtle","demo","docker","dtle","dtle不检测数据冲突。如果回放报错(如应数据冲突导致update了不存在的列),则job报错。","e","each","enabl","enforc","exec","fals","grep","gtid","gtid点位","gtid点位,","h","http","id=1","id=2","insert使用replace回放,故insert冲突时,效果是last","jq","log","master","mode=on","mysql","mysql:5.7","mysql_root_password=pass","mysql的跨数据中心的双向复制","name","nats_advertis","nats_bind","need","net","network","network=dtl","node","nomad_addr","only.","p","plugin","ppass","public","public),","public的网络地址,","renam","restart","rf","rm","root","rpc","run","s","serf","server","start","status\\g\"","u","ui,确定我们构建了一个","uroot","vi","win。","work","xget","xpost","{","|","}","},","}]","}],","不同的是:","仅作为","以下步骤以docker容器的方式快速演示如何搭建mysql的跨数据中心的双向复制.","作为server.","修改dtle的配置","修改容器dtle","其中:","其中与","其中定义了:","其中,dml","内容如下:","准备文件job","创建dc1到dc2的复制任务","创建dc2到dc1的复制任务","创建两个网络","只支持增量复制)","只有","和与dtle","在两个网络中分别创建dtle","在两个网络中分别创建mysql","增量复制","将两个dtle通过公网连通","建议由业务端确保数据不会冲突。","或查看web","指定)","数据冲突","查看作业状态","查看目标端数据是否一致","检查mysql是否启动成功:","检查是否正常","此处为172.22.0.2","此处为172.22.0.3","此时可在任一端对表demo.demo_tbl进行ddl/dml等各种操作,","测试","源任务(src)配置在dc1的dtle节点上执行","源任务(src)配置在dc2的dtle节点上执行","源端/目标端的连接字符串","由于dtle","的nomad部署。","目标任务(dest)配置在dc1的dtle节点上执行","目标任务(dest)配置在dc2的dtle节点上执行","获取mysql","表示此复制是","要复制的表为demo.demo_tbl","配置/dtle/etc/dtle/nomad.hcl修改的内容如下:","配置dc1到dc2的复制","配置dc2到dc1的复制","重要!","需要指定bind_addr和advertise.rpc为本机的dtl"],"2/2.4_ali_to_jd.html":["\"192.168.0.17\"","\"192.168.0.17:4646/v1/job/ali","\"192.168.0.17:4646/v1/jobs\"","\"actiontech\",","\"config\":","\"datacenters\":","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle\",","\"gtid\":\"\",","\"host\":\"mysql","\"host\":\"rm","\"id\":\"ali","\"job\":","\"mysql\"","\"name\":","\"password\":\"acti0ntech\"","\"port\":\"3306\",","\"replicatedodb\":","\"src\",","\"srcconnectionconfig\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"user\":\"actiontech\",","\"user\":\"root\",","#","'.status'","'actiontech'@'%'","'actiontech'@'%';","'root'@'%'","(0.00","(0.02","***************************","*.*","+","/etc/dtle/nomad.hcl:","1","1.","2","2.4.阿里云到京东云的mysql复制","=","@job.json","[\"dc1\"],","[]","[{","\\g","`actiontech`.*","actiontech@%","actiontech@180.169.60.146","advertis","alter","alter,","bind_addr","client,","client_addr","cn","consul","creat","create,","curl","d","delete,","demo\"","demo\",","drop,","dtle","dtle(存储dtle元数据)","east","event,","execute,","grant","http","index,","insert,","ivh","jd","job.json","jq","lock","mysql>","mysql版本为5.7.18","mysql版本为5.7.21","nomad","option","privileg","process,","references,","reload,","replic","root@%:","root@180.169.60.146","routine,","row","rpc","rpm","s","sec)","select","select,","serf","set","show","slave,","start","systemctl","tables,","temporari","trigger","update,","usag","user()","user();","user,","view,","xget","xpost","xxx.rpm","xxxx.mysql.rds.aliyuncs.com\",","yyyy.public.jcloud.com\",","{","|","}","},","}]","}],","。","京东云rds实例的用户权限是以schema为基础的.","以下步骤演示如何搭建从阿里云rds到京东云rds的mysql复制.","其他","内容如下:","可参照mysql的跨数据中心的双向复制","向dtle发布任务:","启动dtle:","和","增加复制任务","复制配置文件","如要使用链路压缩等功能,","安装dtle:","安装并配置dtle","并相应配置nomad.hcl。","检查京东云rds的环境","检查任务运行状态:","检查权限:","检查阿里云rds的环境","注意:","用于","申请京东云ec","省略未修改配置","示例主机ip为192.168.0.17,","规格是1c4g40g","迁移的目标库","配置","阿里云到京东云的mysql复制","需要在创建迁移job前,通过京东云rds为该mysql实例创建两个schema:","需要申请京东云ecs,","默认只能从从本机查询。若要从外部访问kv,请更改/etc/dtle/consul.hcl中的"],"2/2.5_mysql_kafka.html":["\"\",","\"127.0.0.1:4646/v1/job/dtl","\"127.0.0.1:4646/v1/nodes\"","\"brokers\":","\"config\":","\"converter\":","\"creat","\"datacenters\":","\"demo","\"demo\",","\"demo_tbl\"","\"dest\",","\"desttype\":","\"driver\":","\"dtle","\"dtle\",","\"gtid\":","\"host\":","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":","\"insert","\"job\":","\"json\"","\"kafka\"","\"kafkaconfig\":","\"mysql","\"name\":","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"root\",","\"select","\"src\",","\"srcconnectionconfig\":","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"topic\":","\"user\":","'.status'","...","127.0.0.1","2.5.mysql到kafka的数据变更通知","2181:2181","3306,","33061","33061:3306","4646:4646","8500:8500","9092:9092",">","@@version\\g\"","@job.json","[\"dc1\"],","[\"kafka","[{","\\","actiontech/dtl","allow_anonymous_login=y","allow_plaintext_listener=y","begin","bin=bin","bitnami/kafka","bitnami/kafka:latest","bitnami/zookeep","bootstrap","broker","consistency=1","consol","consul","consul:latest","consumer.sh","creat","curl","d","databas","demo","demo\"","demo\",","demo.demo_tbl","demo.demo_tbl(a","demo;","docker","dst","dst:9092","dst:9092\"],","dtle","e","enforc","gtid","gtid点位为空,","h","id=1","int","jq","kafka","kafka_zookeeper_connect=kafka","key)\"","list","log","mode=on","mysql","mysql:5.7","mysql_root_password=pass","mysql到kafka的数据变更通知","name","net","network","network=dtl","p","ppass","primari","rm","run","s","server","src","src\",","tabl","topic","topic\",","topic.demo.demo_tbl","topics.sh","uroot","values(1)\"","xget","xpost","zookeep","zookeeper:2181","{","|","}","},","}]","}],","以下步骤以docker容器的方式快速演示如何搭建mysql的单向复制环境.","全量+增量","关于kafka的消息格式,","其中定义了:","内容如下:","准备作业定义文件","准备文件job.json,","创建","创建复制任务","创建源端","创建源端表结构","创建目标端","创建网络","参看5.3","可指定合法的gtid","在源端写入数据:","如只测试增量复制,","查看作业状态:","查看目标端数据是否一致","检查是否正常:","检查是否联通:","此时可在源端对表demo.demo_tbl进行ddl/dml等各种操作,","测试","消息格式","源端","的","的复制.","的连接字符串","目标端","表示此复制是","要复制的表为demo.demo_tbl","访问地址","验证数据:","验证相关的topic存在:"],"2/2.6_oracle_mysql.html":["\"127.0.0.1:4646/v1/job/dtl","\"127.0.0.1:4646/v1/nodes\"","\"config\":","\"datacenters\":","\"dest\",","\"destconnectionconfig\":","\"desttype\":","\"driver\":","\"dtle","\"dtle\",","\"host\":","\"http://127.0.0.1:4646/v1/jobs\"","\"id\":","\"job\":","\"mysql","\"mysql\"","\"name\":","\"oracl","\"oracle\",","\"pass\"","\"password\":","\"port\":","\"replicatedodb\":","\"roma_logminer\",","\"root\",","\"scn\":","\"select","\"servicename\":","\"src\",","\"srcoracleconfig\":","\"t1\"","\"tablename\":","\"tables\":","\"tableschema\":","\"taskgroups\":","\"tasks\":","\"test\",","\"user\":","\"xe\",","#","'.status'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo01.log'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo02.log'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo03.log'","(all)","(id","/u01/app/oracle/oradata/archive_log","0","10g;","11g","127.0.0.1","1521,","1521:1521","2.6.oracle到mysql的数据同步","2.x","3","3306,","33061","33061:3306","4","4646:4646","5","5.4","500m;","8190:8190","8500:8500","=",">","@@version\\g\"","@job.json","[\"dc1\"],","[{","actiontech/dtl","add","alter","api兼容层,则需要额外映射8190端口:","archivelog;","bash","bin=bin","chown","columns;","commit;","connect,resourc","consistency=1","consul","consul:latest","creat","curl","d","data","databas","db_recovery_file_dest_s","default","demo\"","demo\",","dictionari","docker","dst","dst\",","dtle","e","enforc","exec","export","grant","group","gtid","h","http","id=1","identifi","immediate;","insert","int,nam","jq","log","log_archive_dest_1='location=/u01/app/oracle/oradata/archive_log'","logfil","mkdir","mode=on","mount;","mysql","mysql:5.7","mysql_root_password=pass","name","net","network","network=dtl","open;","oracl","oracle;","oracle_allow_remote=tru","oracle_home=/u01/app/oracle/product/11.2.0/x","oracle_sid=x","oracle到mysql的数据同步","p","path=$oracle_home/bin:$path","ppass","quota","r2","role","roma_logmin","roma_logminer;","roma_logminer_priv","roma_logminer_privs;","run","s","scn点位为0,","scope=spfile;","select","server","servic","session,execute_catalog_role,select","set","shutdown","size","sqlplu","src","src\",","start","startup","supplement","sys/oracl","sysdba","system","system.logmnr_col$","system.logmnr_obj$","system.logmnr_uid$","system.logmnr_user$","tabl","tablespac","test","test.\"t1\"","test;","transaction,select_catalog_role,select","unlimit","uroot","user","users;","values(1,'ryan');","varchar(255));","wnameless/oracl","xe","xget","xpost","{","|","}","},","}]","}],","以下步骤以docker容器的方式快速演示如何搭建oracle到mysql的单向复制环境.","其中定义了:","内容如下:","准备作业定义文件","准备文件job.json,","创建","创建同步账号","创建复制任务","创建源端","创建目标端","创建网络","可指定合法的scn","启动oracle镜像","在源端写入数据:","如需测试指定位置增量复制,","如需要使用dtle","字段映射","字段映射关系参看","查看作业状态:","查看目标端数据是否一致","检查是否正常:","检查是否联通:","测试","源端","环境配置并启动oracl","的连接配置","目标端","表示此复制是从任务启动时间点开始复制.","要复制的表为test.t1","设置同步配置","验证目标端数据"],"2/2.7_multi_node.html":["\"0.0.0.0\"","\"127.0.0.1\"","\"127.0.0.1:4646\"","\"127.0.0.1:4647\"","\"127.0.0.1:4648\"","\"127.0.0.1:8193\"","\"127.0.0.1:8500\"","\"127.0.0.2\",","\"127.0.0.3\"]","\"consul1\"","\"dtle\"","\"nomad1\"","#","...","/etc/dtle/consul.hcl","/etc/dtle/nomad.hcl:","2.7.多nomad","3","=","[\"127.0.0.1\",","access","address","advertis","advertise_addr","api","bind","bind_addr","bootstrap_expect","bound","client","client_addr","client数量任意","client(运行dtle插件)执行job","cluster","commun","compat","config","consul","consul配置","default","dn","dtle","each","enabl","http","includ","interfaces,","intern","name","nats_advertis","nats_bind","need","node","node_nam","nomad","nomad_addr","nomad可以配置成","nomad将自动向consul注册,组成集群:","nomad配置","plugin","port","renam","retry_join","rpc","serf","server","server和client可运行于同一进程,也可单独启动server或cli","server搭配一个consul","server数量为奇数,一般使用1或3个,不超过5个。","server管理job数据","server部署","server,两者运行于同一台主机。","true","ui中可以看出,组成了3节点consul,其中一个为leader。","us","{","}","。","一般每个nomad","下面描述","为另外两个节点也做出修改。","保存运行信息","修改","全部启动后,","全部启动后,从web","其中","单server,单cli","单server,多cli","多server多client配置","多server部署配置","多server,多cli","服务发现(多节点自动注册)","省略未更改项","配置ip","需另外运行consul,用于"],"3/3.0_function_scenario_mapping.html":["#361","3.0.功能/场景的映射列表","agent","binlog)","exist","sql)","不支持","不支持建表语句包含if","不支持按函数分发","任务暂停/恢复","公有云间的数据同步","分发","分发到","到","功能/场景的映射列表","单个mysql","单个mysql复制到kafka","单个mysql的不同表","单个mysql的同一表的不同记录","单向复制到","双向复制到","合并到","回访模式(并行回放)","场景","复制对象(按条件复制部分记录)","复制对象(整库复制)","复制对象(整表复制)","复制手段(binlog","复制模式(全量+增量)","复制模式(增量)","复制链路(跨网络边际)","复制链路(链路压缩)","多个mysql","多个mysql复制到kafka","多个mysql的表","支持","支持;","支持ddl","支持按主键分发;","水平扩展","监控","自动创建表结构","高可用(故障转移)","高可用(断点续做)"],"3/3.1_limitation.html":["'binlog_format';","'binlog_row_image';","'gtid_mode';","'log_bin'","'log_slave_updates';","(foreign","(lower_case_table_names)","(my.cnf中填写合法文件名)","3.1.使用限制","5.6/5.7","5.7)和caching_sha2_password(mysql","8.0),其他认证方式不详","@@foreign_key_checks=off。外键的级连操作(如on","@@foreign_key_checks=on。可以触发外键级连操作。","_utf32\"...\")","auto_increment值和源端不一致(mysql","binari","binlog","binlog_format","binlog_row_imag","bug#83030)","cascade)将无法生效。","default","drop","dtle支持的值为0或1。","entry冲突insert语句,可能导致目标端的","foreign","full","gb18030","gb2312,","gbk,","global","gtid","gtid_mod","imag","innodb","into语句或者执行产生dupl","key)","key后,原外键父表依然会被认为是外键父表。","latin1","latin2","log_bin","log_slave_upd","lower_case_table_names参数,","mysql","mysql_native_password(mysql","option)","row","show","tabl","trigger","updat","utf32","utf8,","utf8mb4","varchar","variabl","view","不支持","且job存续期间,mysql上该参数的值不可改变。","仅支持","仅支持full模式","仅支持row模式","仅支持以下字符集:","从3.21.10.0开始,dtle增量回放时,默认set","但不支持大小写混用。","使用限制","值","允许设置参数值2,","关于外键","原则上要求源端和目标端设置相同。","参数","在3.21.10.0以前,dtle回放时会设置set","在dtle的增量复制过程中,如果源端执行replac","在latin1/2表中,不支持非latin字符(如中文)(#388)","对于","对于存在外键关系的一系列表,需要这些表在同一个job的复制范围内,才能正常执行。","对于非utf8编码执行的ddl,不支持ddl中含有混合编码字符串,如(col","引擎","支持mysql认证方式","支持procedure,function,event的增量部分迁移(须创建库级别的迁移job),但存在源端与目标端字符集不完全一致的问题#357","支持user增量部分的迁移(须创建实例级别的迁移job),且支持grant,revoke(要求回放用户有gr","暂不支持","检查方式","涉及外键引用父表的事务,回放时会单独回放,不能并行。","源端","源端和目标端大小写敏感配置","版本","该行为可用job配置中dest部分foreignkeychecks控制,默认为true。如有必要,可将其设为false。","遗留问题:在外键子表上alter","限制","需保持一致","需要开启","需配置如下参数"],"3/3.2_ports.html":["2.x","3.2.端口使用说明","4646","4647","4648","8190","8193","8500","api兼容层的端口","consul","consul的传输/通信会使用如下端口:","dtle","http","nomad","rpc","serf端口","和","如何修改","数据传输的端口","端口","端口使用说明","端口号","端口配置可在/etc/dtle/nomad.hcl中修改","说明","默认情况下,"],"3/3.3_impact_on_dest.html":["(","(job_name,",");","100:200:300","3.3.对目标端数据库的影响(gtid_executed表)","400","binary(16)","creat","dtle.gtid_executed_v4","dtle.gtid_executed_v4;","dtle.gtid_executed_v4的建表语句如下:","dtle会在目标端自动创建表dtle.gtid_executed_v4,","exist","gno编号。若某行该列为0,则表明这是一个汇总行","gtid","gtid)","gtid,","gtid:","gtid_next=...","gtid_set","gtid_set:","hex(source_uuid),","int","job_nam","job_name,","job_name:","key","longtext,","null,","primari","select","set","source_uuid","source_uuid,","source_uuid:","super","tabl","varchar(64)","使用表dtle.gtid_executed_v4模仿gtid机制,","典型的查询方法","在回放时,","对于gtid=0的汇总行,该列批量储存gno编号,如1","对目标端数据库的影响(gtid_executed表)","当目标端是mysql数据库时,","执行同步的任务名","执行过的gtid","数据库用户可能无法拥有","权限,","权限.","注意source_uuid以binary储存,直接查询会乱码,需要hex()转换","源端数据库uuid号","用作断点续传/数据检查等.","目标端的用于回放数据的数据库用户需要对这张表有相应权限.","而不使用mysql原生gtid机制的原因是:","而云环境下,","行数过多时,会触发汇总机制","表","表dtle.gtid_executed_v4的作用是存储已经回放的事务的gtid,","表结构说明:","语句需要"],"3/3.4_metrics.html":["\"127.0.0.1:4646\"","\"127.0.0.1:8190\"","\"dtle\"","...","127.0.0.1:8190/metric","15","3.4.监控项说明","=","api_addr","buffer.dest_queue_s","buffer.send_by_size_ful","buffer.send_by_timeout","buffer.src_queue_s","config","delay.tim","dest_applied_incr_query_count","dest_applied_incr_tx_count","dtle在传输/回放事务时,取时间戳和当前时间的差值为延迟值","dtle根据数据量(内存计数值)来估计内存占用。因程序处理,实际使用的内存有放大效应","memory.full_kb_count","memory.full_kb_est","memory.incr_kb_count","memory.incr_kb_est","network.in_byt","network.in_msg","network.out_byt","network.out_msg","nomad_addr","nomad原生metrics可访问:http://127.0.0.1:4646/v1/metrics?format=prometheu","plugin","plugin并不能访问nomad监控接口,dtle有关的监控需要通过api兼容层访问。","publish_metr","sql执行量统计","src_extracted_incr_query_count","src_extracted_incr_tx_count","stats_collection_interv","table.delet","table.insert","table.upd","throughput.num","throughput.tim","true","true。","x","{","为了便于查看延迟曲线以及跟踪高延迟情况,可用prometheus抓取dtle的监控项并使用alertmanager发送告警,","事务统计","任务延迟","全量估计值","全量计数值","内存估计值","内存使用","内存使用估计","内存计数值","可查看监控项,或在prometheus中配置从此地址获取监控项。","吞吐统计(未实现)","增量估计值","增量计数值","增量阶段中源端完成抽取并解析的dml/ddl数量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_src_extracted_query_count[1m])","增量阶段中源端完成抽取并解析的事务总量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_src_extracted_tx_count[1m])","增量阶段中目标端完成回放的事务总量。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_dest_applied_tx_count[1m])","增量阶段中目标端执行的ddl/dml总量(未commit前也算)。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_dest_applied_query_count[1m])","如果一段时间(15s)没有事务,则重置延迟值为0","延迟告警示例。","延迟统计","延迟统计仅对增量(含kafka输出)有效,其原理为:","放大系数","效果图:","根据go内存分配器原理,job处理完后,内存可能不会立刻被释放给操作系统","步骤可参考","注意事项","注意:通过兼容层只能看到本节点运行的任务的监控项。","源端mysql在执行事务时,binlog中记录了时间戳","源端和目标端都有延迟统计,取两者中大值为延迟","由于nomad","监控项","监控项说明","类别","缓存/队列状态","网络流量状态","表统计(未实现)","访问","说明","配置","需要mysql和dtle主机的时间基本正确","首先配置nomad.hcl中打开api兼容层,并配置publish_metr"],"3/3.4.1_delay_alert.html":["\"task","#","$labels.inst","$labels.task_nam","${pwd}/alertmanager.yml:/etc/alertmanager/alertmanager.yml","${pwd}/prometheus.yml:/etc/prometheus/prometheus.yml","${pwd}/prometheus_rule.yml:/etc/prometheus/prometheus_rule.yml","'dtle'","'email","'prometheus_rule.yml'","'receiver@actionsky.com'","'repeat_interval'","'sender_account'","'smtp.gmail.com:587'","'team","1","10","1m","3.4.1.延迟监控告警","5","5s","9090:9090","9093:9093",":","=",">",">1","[\"127.0.0.1:9093\"]","['127.0.0.1:8190','127.0.0.2:8190']","[1]","\\","alert","alert:","alerting:","alertmanag","alertmanager.yml","alertmanagers:","alertmanager配置","alertnam","annot","annotations:","default","delay","delay\"","descript","description:","dest","docker","dtle","dtle_delay_tim","email_configs:","expr:","fail","fals","fire","for:","global","global:","groups:","host","http://127.0.0.1:9090,","instanc","job","job_name:","label","labels:","localhost.localdomain","mail","mails'","migration_src","minutes.","minutes.\"","more","name:","overrid","p","password'","prom/alertmanag","prom/prometheu","prometheus.yml","prometheus_rule.yml","prometheus可直观查看监控项并记录历史值,","prometheus配置","receiv","receiver:","receivers:","repeat_interval:","resend","route:","rule_files:","rules:","run","scrape","scrape_configs:","scrape_interval:","seconds.","sent,","sever","severity:","simple_exampl","smtp","smtp_auth_password:","smtp_auth_username:","smtp_from:","smtp_require_tls:","smtp_smarthost:","sourc","static_configs:","successfulli","summari","summary:","target","targets:","task","task_nam","taskdelay","team","them.","to:","v","verifi","wait","warn","{{","}}","使用docker运行prometheus:","准备告警规则文件","准备配置文件","创建配置文件","可通过搭建prometheus查看延迟情况,","可针对异常监控项及时发出告警信息,","启动alertmanagerdock","告警规则文件","填写dtle兼容层的地址。可填多个。","并查询(prometheus提供补全)需要的监控项。","延迟监控告警示例","查看监控项并记录历史值","根据配置延迟5s以上并持续1min时,receiver@actionsky.com","然后浏览器访问","获取当前告警规则/内容","设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口","访问http://127.0.0.1:9090/alerts,","通过配置alertmanager对延迟异常任务发出告警","邮箱收到告警如下:","配置示例如下","针对任务延迟异常发送告警"],"3/3.4.2_monitor.html":["\"/opt/dtle/var/lib/nomad\"","\"10.186.63.20:4646\"","\"10.186.63.20:8190\"","\"10.186.63.20:8193\"","\"10.186.63.76:8500\"","\"15s\"","\"dtle\"","#","&","'/metrics'","'/v1/metrics'","'dtle'","'nomad'",")","*","/","/1024","/1024)","/30","/path/to/prometheus.yml","/path/to/prometheus.yml:/etc/prometheus/prometheus.yml","/percent(0","1","1\"}","1\"})","1\"}[30s])","1\"}[60s])","1\"}[60s]))","100","100)","15","1的配置为例,具体配置参考节点配置:","3.21.07.0中nomad升级为1.1.2,需要添加如下配置使nomad提供监控数据","3.21.07.0来搭建一个dtle的监控系统。","3.4.2.搭建监控系统","3000:3000","8","9090:9090","=","['10.186.63.20:4646']","['10.186.63.20:8190']","['10.186.63.76:4646']","['10.186.63.76:8190']","['prometheus']","above.","access","address","admin/admin登录","api","api_addr","buffer(源端)","buffer(目标端)","cat","cn/3/3.4_metrics.html","collection_interv","compat","config","consul","cpu使用率(dtl","cpu使用率(nomad)","cpu使用率(总计)","d","data","data_dir","default","default,","dest","disabled.","doc","docker","dtle","dtle_buffer_dest_queue_s","dtle_buffer_src_queue_s","dtle_delay_time{host=\"dtl","dtle所有监控项:https://actiontech.github.io/dtl","dtle监控labels:instance的值建议设置为dtle服务器的hostnam","evalu","evaluation_interval:","format:","global:","grafana/grafana","hostname=prometheu","http://${grafana_server_ip}:3000","http://${prometheus_server_ip}:9090/target","https://www.nomadproject.io/docs/operations/metr","increase(dtle_network_in_bytes{host=\"dtl","increase(dtle_network_out_bytes{host=\"dtl","instance:","interv","irate(dtle_dest_applied_incr_query_count[30s])","irate(dtle_dest_applied_incr_tx_count[30s])","irate(dtle_src_extracted_incr_query_count[30s])","irate(dtle_src_extracted_incr_tx_count[30s])","itd","job_name:","kibibits/sec","labels:","layer","mebibyt","metrics_path:","minute.","misc","name=grafana","name=prometheu","nats_advertis","nats_bind","need","nomad","nomad_addr","nomad所有监控项:","none","p","params:","percent(0","plugin","process_resident_memory_bytes{instance=\"dtl","process_resident_memory_bytes{instance=\"nomad","prom/prometheu","prometheus_metr","publish_metr","qps(源端)","qps(目标端)","rate","rate(process_cpu_seconds_total{instance=\"dtl","repeat","restart=alway","rule","run","scrape","scrape_configs:","scrape_interval:","seconds(s)","seconds.","server","set","shell>","src","static_configs:","stats_collection_interv","sum(increase(dtle_network_in_bytes{host=\"dtl","sum(increase(dtle_network_out_bytes{host=\"dtl","sum(process_resident_memory_bytes{instance=~\"nomad","sum(rate(process_cpu_seconds_total{instance=~\"nomad","targets:","telemetri","test”按钮","time","tps(源端)","tps(目标端)","true","v","{","|","}","一、搭建dtle运行环境","三、部署grafana","之前版本的dtle无需添加此配置","二、部署prometheu","五、最后创建多个panel同时展示","以添加一个cpu使用率监控为例配置一个panel","公式示例","内存使用(dtle","内存使用(nomad)","内存使用(总计)","准备prometheus配置文件同时接收nomad和dtle的metr","利用docker部署grafana服务","利用docker部署prometheus服务","单位","只需将promethues的访问地址添加到url中,点击“sava","四、常用的监控项","在修改dtle配置文件的时候需要注意以下两点:","在浏览器上访问grafana的页面","在浏览器上访问prometheus的页面","如何搭建dtle的监控系统","带宽(总计","带宽(按task分组","开启dtle的监控,确保publish_metrics的值为tur","开启nomad的监控,确保正确配置telemetri","数据延迟(源端)","数据延迟(目标端)","添加panel","添加两个job模拟两个mysql实例之间传输数据","源端发送)","目标端接收)","背景:","虽然在dtle的文档里提供各种监控项的介绍,但是对于不熟悉prometheus和grafana配置的同学来说上手还是有些难度的。今天我就来dtl","说明","这里以dtle","选择添加promethu","配置两个节点的dtle集群来演示,其拓扑如下:","配置添加数据源","验证配置生效",",使用默认用户"],"3/3.5_deployment.html":["(执行节点,运行dtle插件)","(管理节点)和client","(运行dtle插件)支持多种不同的部署结构,","(需要server集群存活一半以上)","3.5","3.5.部署结构","client","client,","client需部署在网络边界上","consul","nomad","server","server集群可部署在任一数据中心,","一个","一个节点可同时处理多个传输链路","不必要保障","也可将","任务元数据信息在集群中同步","传输任务会转移到其他client执行","传输任务会转移到其他server执行","其中:","分开部署","和","如上图,","将","当client发生故障时,","当server发生故障时,","或第三方数据中心","源数据库和目标数据库","用一个nomad节点同时作为serv","直接网络连通","简单的部署结构:","节点可同时作为","跨dc的部署结构","进行三节点集群部署,","适用于多个数据中心间的数据同步","适用于对可用性较高的场景,","适用于简单的场景,","部署结构","高可用的部署结构:"],"3/3.6_DDL.html":["\"\"action_db_1\"\",","\"\"old_1\"\"","\"\"replicate_do_db\"\":","\"\"table_name\"\":","\"\"table_schema\"\":","\"\"tables\"\":","\"action_db_1\",","\"new_1\"","\"new_3\"","\"old_1\"","\"old_2\"","\"replicate_do_db\":","\"table_name\":","\"table_schema\":","\"tables\"\":","\"tables\":","##","''","'');","'';","'t10',","'t7',","'test","(","(1,","(1991),","(2,","(20,10),","(2020),","(3,","(4,","(50,maxvalue),","(65,maxvalue),","(a","(a(2));","(a(3));","(a);","(a,","(c","(c_varchar_1","(col1","(col_nam","(col_name)","(column_list)","(d","(id","(id)","(id));","(id);","(key_part(prefix","(key_part));","(key_part);","(key_part,","(maxvalue));","(maxvalue,maxvalue));","(partit","(sidea","(sqrt(sidea","(year_col","(year_col)",");","*","+","/","1","1.","1.不支持复制event","1.不支持复制trigger","1.目标端数据库@@foreign_key_check","10,","11,","12,","13,","14,","15,","16,","17,","18,","19,","2.","2.dtle","2.源端event产生的数据会复制到目标端","20,","21),","22),","23),","24));","3.","3.6.ddl支持度","4.","4;","5,","5;","5]目标端账户需要creat","6,","7,","8,","8]","9,","961786003","=","[","[if","[mysql","]","ad","add","alter","alway","attribut","auto_incr","auto_increment,","auto_increment=100;","b","b);","b,","b;","basic","befor","bigint","binary;","btree;","c","c));","c;","c_varchar_2","cascade;","chang","char(20)","char(20))","char(20),","char(20);","char(5))","char(5),","charact","characterist","check","check(expr));","checksum","checksum=1;","col2","col3","collat","collate=gbk_chinese_ci;","collate=latin1_swedish_ci;","collate=utf8_general_ci;","column","column_definit","column_definition);","columns(a,b)","comment","comment';","comment='';","compress","compression='zlib';","constraint","convert","creat","d","data","databas","date)","datetime)","db_name","db_name;","ddl支持度","ddl类型","ddl语句示例","default","definer;","delet","doubl","double,sideb","double,sidec","drop","e","each","engin","engine=innodb;","event","event_body;","event_nam","event_name;","event_name_new;","exist","exists]","first","first;","fk_child_5_1;","foreign","full_t7_1","fulltext","function","gener","global","hash","hash(col1);","hash(expr)","https://github.com/actiontech/dtle/issues/787","https://github.com/actiontech/dtle/issues/795#issuecom","id;","index","index(key_part,","index_nam","index_name;","index_name_new;","index_name_old","index_typ","insert","int","int(11)","int(11));","int)","int,","job","job配置expandsyntaxsupport=tru","key","key(col3)","key(id,","key)","key);","key;","key_part));","key_part));\"","key_part);","key_t1_1","key_t2_1","key_t3_1","key_t4_1","key_t5_1","key_t6_1","key_t8_1","key_t9_1","latin2_general_ci;","less","linear","list","log","log_bin_trust_function_cr","maxvalue);","modifi","multipl","name","new_1","new_1;","new_2","new_2;","new_3","new_3;","new_4","new_4;","new_5,","new_6;","not_exists_event_name;","not_exists_sp_name;","not_exists_tbl_nam","not_exists_tbl_name;","null","null)","null);","null,","null;","num;","old","old_1","old_1;","old_2","old_2;","old_3","old_3;","old_3不在目标端,无法执行该语句","old_4","old_4;","old_5","old_6","on;","option","p0","p1","p2","p3","p4","p5","parent_id","partit","partition_nam","partition_names;","prefix","primari","procedur","r0","r1","r2","r3","rang","redefining,","refer","reference_opt","reference_option);","reference_option;","renam","renaming,","reorder","replac","restrict;","return","routine,","routine_body;","row","schedul","schema","schema_name.trigger_name;","secur","select_statement;","select_statement;\"","set","set=gbk","set=latin1","set=utf8;","set_user_id,","sidea","sideb","sideb)));","some_data","sp_name","sp_name()","sp_name(func_parameters)","sp_name(proc_parameters)","sp_name;","sql","statement","super权限","symbol","system_user权限,","t1","t1;","t2","t3","t4","t5","t6","t7","t8","t9","tabl","tbl_name","tbl_name(key_part)","tbl_name(key_part);","tbl_name;","tbl_name_1,","tbl_name_2,","text","toindex_name_new;","track","trigger","trigger_body;","trigger_nam","trigger_name;","trigger、ev","true","truncat","type","uniqu","updat","us","utf8","utf8;","utf8_bin);","utf8_general_ci","utf8_general_ci;","utf8mb4","utf8mb4_general_ci;","valu","value)));","varchar(255),","varchar(35))","view","view_nam","view_name_1,","view_name_2;","year(col3)","{","}","}\"","},","不支持","中foreignkeycheck","以database为对象的ddl","以index为对象的ddl","以table为对象的ddl","全量","全量不复制function","全量不复制创建procedur","关于不支持","其他对象ddl","因目标端没有改名前的表,会有error","增量","备注","应满足一下配置,否则在开启mts的情况下不能保证数据一致性","建表语句支持,但是数据复制有缺陷","支持","支持server级默认字符集不一致情形","支持字符集latin1、latin2、gbk、utf8、utf8mb4、binari","新表不会在目标端创建","新表不会在目标端创建,dtle会报错重启","新表在目标端创建,后续数据传输正常","无法和mts同时使用:","源端trigger产生的数据会复制到目标端","由于trigger或event可能会更改表数据,目标端存在trigger或event时,存在二次触发的问题(源端已经触发过一次),会引起数据不一致,故dtle不复制trigger和event。源端trigger/event变更的数据,会被写进binlog,并由dtle复制到目标端。","目标端不会有重命名后的表","目标端账户需要creat","重命名成功,后续数不应据传到目标端","重命名成功,后续数据传输正常","(默认值为1)","(默认值为true)"],"3/3.7_DCL.html":["\"dcl_expand_syntax_support_true\",","\"dest\",","\"dest_task\":","\"expand_syntax_support\":","\"expandsyntaxsupport\":","\"job_id\":","\"mysql_src_task_config\":","\"replicate_do_db\":","\"src\",","\"src_task\":","\"task_name\":","'test'@'%';",".","...","...='...';","...identifi","3.7.dcl支持度","[],","alter","creat","dcl支持度","dcl类型","grant","insert","option’,回放用户需要有被赋权的权限","password","renam","revok","set","true","user","{","}","},","全量部分是否需要支持?即,创建job前,源端已存在的用户是否需要被迁移至目标端?#358","创建实例级别迁移","增量部分dcl的操作会被支持","实例级别job.json配置样例:","支持","是否支持","条件及限制","若需要执行grant和revoke,则回放用户需要有‘gr","语句示例"],"3/3.8_dtle_mapping.html":["\"a\",","\"b\",","\"colmap\",","\"columnmapfrom\":","\"columnmapto\":","\"droptableifexists\":","\"replicatedodb\":","\"replicatedodb\":[","\"skipcreatedbtable\":","\"tablename\":","\"tablename\":\"testdemo\",","\"tableregex\":\"(\\\\w*)shard(\\\\w*)\",","\"tablerename\":","\"tablerename\":\"${1}rename\"","\"tablerename\":\"renamedemo\"","\"tables\":[","\"tables\":[{","\"tableschema\":\"demo\",","\"tableschemaregex\":\"(\\\\w*)src(\\\\w*)\",","\"tableschemarename\":\"demorename\"","\"tableschemarename\":\"rename${1}\",","(id","3.8.dtle",":","[\"a\"],","[\"b\"],","[\"val\"]","[{","]","],","auto_increment,","b","columnmapfrom","columnmapfrom:","columnmapto:","columnmapto参数,将表a和表b合并到表colmap。忽略原id,使用新的自增id作为主键。","creat","demo","demo.a","demo.b","demo.colmap","demo.renamedemo","demo.test1rename,demo.test2rename,demo.test3renam","demo.test1shard,demo.test2shard,demo.customer,demo.test3shard","demo.testdemo","demorenam","dest:","dst","dtle","false,","from和to的列数量必须相等.","int","int);","job.json中replicatedodb配置:","key","key,","map","mapping支持","primari","renametest1,","renametest2,","renametest3","schema","src","tabl","test1src,test2src,test3src,cust","true,","val","{","}","},","}]","}],","从源表中,","作业配置,使用方法如下","使用","依照指定的顺序,","写入目标表时,","列map","单库map","单库mapping结果","单表map","单表mapping结果","参数说明","反向任务会交换正向任务的columnmapfrom/columnmapto","只填写columnmapfrom的用法现已deprecated.","可为目标表全部列或部分列.","和","在job配置文件中,table字段增加若干参数,详情参考4.3","多库map","多库mapping结果","多表map","多表mapping结果","对于twowaysync双向任务,","指定写入的列.","提取全部列或部分列.","暂不支持使用正则表达式匹配列。","注意:不支持自动创建目标表,需预先手动创建。"],"3/3.9_binlog_relay.html":["\"\",","\"binlogrelay\":","\"config\":","\"gtid\":","\"src\",","\"type\":","(中继)","3.9.binlog","binlog","binlog储存位置为","binlog暂存到dtle本地","dtle全量标记增量开始位置,","dtle增量复制依赖binlog,如果binlog被清除则复制会出错","nomad_data_dir/binlog/job_name/mysql_server_uuid。一般情况job被删除时会自动清除binlog目录。若未清除则需手动清除。","relay","true,","{","使用","参数说明详见作业配置.","在job.json源端任务配置中将binlogrelay设为tru","对于纯增量job,开启binlogrelay时,必须用gtid指定复制起点(进度),不能使用binlogfile/pos。","开始增量时binlog极有可能被清除","影响","某些mysql部署会定期清除binlog","背景","若全量耗时较长,","需要在开始全量时将mysql"],"3/3.10_consul.html":["\"127.0.0.1:8500/v1/kv/dtle/job_name/binlogpos?raw\"","\"127.0.0.1:8500/v1/kv/dtle/job_name/gtid?raw\"","\"127.0.0.1:8500/v1/kv/dtle/job_name?recurse\"","#","$","&","//dtle//","02000aba3e28:1","06cd","11e9","127.0.0.1:8500,","143934","3.10.consul","3.x作为nomad插件运行,并且需要consul伴随执行。","928f","acd7d195","bin.000075//dtle//11909","binlogfil","consul","curl","dtle","gtid","job","po","pos。","ui管理。","xdelet","xget","上的","为了使用户能够记录进度,job删除后,dtle不会自动删除consul上的信息.","使用","使用raw查看原始值","使用recurse删除job_name下所有项目","使用web","分割。","已删除的job需要自行删除consul上的信息:","或","或者使用浏览器访问","数据管理","查看方法(以默认consul地址为例):","注意gtid可能有多行,需要完整记录。","部分job信息储存在了consul上。其中最重要的是进度,即","重建job时,若consul上已有进度,则会使用consul上的进度(而非job配置中的起点)。"],"3/3.11_oracle_mysql.html":["\"]","\"a","\"abcdefghijklmnopqrstuvwxyz","\"test\".\"caseinsensitive\"","#840","'","(","(\"firstname\"","(4,","(`author_last_published`","(`col2`","(`employee_id`","(`firstname`","(author_last_publish","(employee_id))","))","*","1","123","12开始支持)","13","3,","3.11.oracl","5;","66","=","?)","?))","[","]","`alter_name2`","`alter_new_name1`","`col2`)values(?,","`col2`=?where((`col1`","`emp_id_uk_demo`(`employee_id`))","`test`.`addcolumn`","`test`.`caseinsensitive`","`test`.`char_256_columns`","`test`.`char_256_columns`(`col1`,","`test`.`dropcolumn1`","`test`.`dropcolumn1`.`col1","`test`.`droptable`","`test`.`employees_demo`","`test`.`modifycolumn`","`test`.`renamecolumn`","`test`.`renamecolumn`.`col1`","`test`.`renamecolumn`.`colnew1`","a\",","a\"]","add","addcolumnclas","alter","alter_name2","alter_new_name1","args=[0,","args=[3,","args=[5,","b","cdc场景","char","char(13),","charact","chr","col1","col1=2;","col2='a","colnew1","column","constraint","creat","current_timestamp","date","date);","datetime)","ddl支持","default","delet","dml支持","dml类型","driver","drop","dropcolumnclaus","dtle","emp_id_uk_demo","emp_last_name_nn_demo","employee_id","empty_blob","empty_clob","exists,保持库同步","extractor","hextoraw","insert","int,`last_name`","last_nam","limit","lob_erase,sel_lob_loc","localtimestamp","lock","lock,以防止在创建快照期间表结构发生变化","modifi","modifycolumnclaus","mysql","mysql同步支持","null)","null);","null,","null,`lastname`","null,lastnam","null,uniqu","number(6),","option","oracl","rawtohex","rawtohex(chr(34))","renam","renamecolumnclas","replac","rownum","schema","schema.t","schema/cr","scn","select","set","set`col1`=?,","share","sql","sql类型","systimestamp","tabl","test.\"modifycolumn\"","test.addcolumn","test.char_20000_column","test.char_256_column","test.character_256_column","test.dropcolumn1","test.dropt","test.employees_demo(","test.renamecolumn","to_dat","to_dsinterv","to_timestamp","to_yminterv","uniqu","unistr","updat","user","utf8mb4","valu","varchar","varchar(15)","varchar(25)","varchar(45)","varchar(66)","varchar2(25)","varchar2(45)","where((`col1`","下个版本支持功能","不带约束","不支持外键约束","事件","从任务启动时间开启增量复制","任务启动时间点开始,将指定库表结构数据传输到目标端","传输完所有的表数据,继续增量同步","依据步骤3读取的scn位置,全表扫描所有相关数据库表和schema例:","全量同步过程,表结构同步完成前,不支持对同步的表做ddl操作","全量复制","全量流程","其他","函数名","函数支持","函数支持解析为null","前先执行creat","同步lob_write,lob_trim,","增量复制","实现为执行creat","带约束","当前仅支持8.0语法","支持","支持pdb(多租户,oracl","是","是否支持","根据scn节点开启增量复制","索引同步","获取同步的库/表的结构信息,同步到目标端","获取同步表的row","获取当前所需同步的库/表,从服务器上的redo日志获取当前系统改变号(scn)的位置","语法支持","转化后mysql","轮询的scn区间目前写死的100000,优化为动态数值","轮询读取的间隔目前写死的5秒,优化为动态数值","通过","释放row","限制"],"4/4.0_installation.html":["#",".rpm","/opt/dtl","/opt/dtle/etc/dtle/","/opt/dtle/var/log/nomad/","3.x","4.0.安装步骤","actiontech/dtle:latest","consul","consul:latest","docker","dtle","enabl","hub","imag","ivh","nomad","prefix","pull","rpm","start","systemctl","一节","从","从此处下载dtle的","以储存任务元数据。","使用方法参见","及启动脚本和参考配置。","和","基于rpm包的安装","基于容器使用","安装包,","安装步骤","容器的版本列表参看docker","已包含nomad。consul可使用其官方image。","并执行以下命令可安装dtle","开机自动启动","快速开始","日志文件位于","服务启动命令:","标准rpm安装包已集成","版本开始,dtle更改了架构,作为nomad插件运行(而非此前的单一二进制文件),并需要运行","配置文件位于"],"4/4.1_node_configuration.html":["\"\"","\"/var/lib/nomad\"","\"/var/log/dtle/dtle.log\"","\"0.0.0.0:8193\"","\"127.0.0.1:4646\"","\"127.0.0.1:8500\"","\"dtle\"","\"dtle_log_level=info\"","\"info\"","(bind)","(dtle使用的传输协议)","(参考配置中开启)","...","/etc/consul","/etc/nomad","04t06","11","127.0.0.1:8193","15","2.x的http","2022","3.x","39.502.log.gz","4.1.节点配置","46","address","address为,需要是本地网卡配置的地址","addr为对外告知连接用的地址","advertis","api","api_addr","api。参考值:\"0.0.0.0:8190\"。为空则关闭兼容层。","api中用于对mysql密码解码。(具体用法见dtl","big_tx_max_job","bind","bool","cert_file_path","client","client。一个nomad进程可以同时作为server和client,也可以只担任一个角色。","config","consul","consul的地址,","curl","d","data_dir","dtle","dtle单独生成日志,不再和nomad合并。每512mb进行rotate和压缩,生成文件形如dtl","dtle插件需要consul以储存任务信息","fals","http","http://127.0.0.1:8190/v2/log/level","https://www.consul.io/docs/agent/options.html#configuration_fil","https://www.nomadproject.io/docs/configuration/","int","key_file_path","log_fil","log_level","nat","nats_advertis","nats_bind","node_name、data_dir、各类地址和端口,","nomad","nomad_addr","nomad(本体)全部配置","plugin","plugin无法获取nomad日志级别,此处需额外设置)","prefix的情况)","publish_metr","rsa_private_key_path","server","server关联的consul地址.","stats_collection_interv","string","xpost","{","}","中","中。","从4.22.09.0开始,","从4.22.09.0开始,动态修改日志级别直接调用api即可生效(不需要事先修改配置文件或重启dtle)。","使用多节点部署时,请注意更改","修改日志级别","允许同时处理大事务的job数量。默认值:启动时可用内存/2g。该值至少为1。如有6g可用内存,则该值默认为3","全部配置","关于","其他节点使用此地址连接本节点。跨公网传输需要设成上层路由器地址并设置网络穿透","兼容层地址,可以在此地址使用dtle","分为","参考样例配置中这一段","取决于启动时的可用内存","同nomad本体配置中的.","否","和","地址","地址,","地址.","安装包默认将参考配置装在了如下位置(安装时未设置","对于跨网段的nomad集群,需要配置上层路由地址并在各级路由配置nat(端口映射)","应填写和最近nomad","强制要求","指定rsa私钥文件的绝对路径,目前只在http","指定私钥文件的绝对路径","指定证书文件的绝对路径","插件的配置","插件运行在","收集监控项的周期(秒)","数据目录。目前用于存放binlog(job配置中binlogrelay=true时)","无法自动获取该地址,","日志级别(由于dtle","是否输出监控项","注:dtle后续重启时,仍然使用配置文件中的日志级别。","由于nomad插件api限制,","类型","节点配置","说明","说明)","避免冲突。","配置项","需要用户手动重复填写一遍.","默认值","默认的启动脚本(systemd)使用单节点配置。"],"4/4.2_command.html":["#","09t14:05:00+08:00","1","10","2020","4.2.命令说明","7d5a0766","9.9.9.9","=","address=\"http://127.0.0.1:4646\"","address=...,","address=http://127.0.0.1:4646","agent","agent,","binlog","config=/path/to/nomad.hcl","driver.dtl","driver.dtle.full_vers","driver.dtle.vers","dtle","dtle二进制文件仅作为nomad插件使用。各项功能通过nomad二进制执行。","grep","healthi","job","job.hcl","job相关","member","node","nomad","provid","purg","run","server","statu","stop","true","verbos","version","|","下同。","删除","启动nomad节点","命令说明","增加","如果agent不在默认地址,则需要指定","查看nomad本体版本","查看所有","查看执行(client)节点,即运行dtle插件的节点","查看某一节点的dtle插件版本","查看某个","查看某个节点的状态","查看版本","查看管理(server)节点","此时nomad命令作为http客户端连接nomad","输出","集群相关"],"4/4.3_job_configuration.html":["\"\"","\"${node.unique.name}\"","\"...\"]","\"15s\"","\"1h\"","\"30m\"","\"30s\"","\"attempts\":","\"delay\"","\"dest\"","\"dtle\"","\"dtle\",","\"exponential\"","\"fail\"","\"interval\":","\"mysql\"","\"noddldropindex\",","\"noddldropschema\",","\"noddldroptable\",","\"noddltruncate\"]。详见下文。","\"nomad3\"","\"reschedule\":","\"schema","\"src\"","\"unlimited\":","#","&","'http://127.0.0.1:4646'","(1,","(64m)","(8小时)","(ddl)","(http","(id","(mysql","(nomad","(将自动求差集获取上述","(相关参数:","**/","...,","./dtle","/**","/usr/share/dtle/scripts/","/usr/share/dtle/scripts/dtl","0","1","1,","1.","100","11);","128","1800000000000,","2","2.","2000","2500","28800","2次重启均失败后,会根据reschedule配置,在其他节点上执行","3","3.21.10.0+.","300","32","4","4.22.07.x升级到4.22.11后,","4.3.作业(job)配置","67108864","7to11.pi","7to11.py更新现有job配置格式.","8","8.0)或","=","@@foreign_key_check","[\"127.0.0.1:9192\",","[\"noddldroptable\"]","[\"nodmldelete\",","[]","a.a","a.a;","api","attempt","attribut","autogtid","binlogfil","binlogpo","binlogrelay","binlog读到本地,","bool","broker","brokers,","bulkinsert1","bulkinsert2","bulkinsert3","chang","changes.topic\"","charset","chunksiz","config","connectionconfig","constraint","convert","converter。目前仅支持json","cpu","cpu=100,memory=300。","creat","delay","delay_funct","dependencyhistorys","dest","destconnectionconfig","desttyp","driver","drop","droptableifexist","dtle","dumpentrylimit","expandsyntaxsupport","fals","foreignkeycheck","group","group.","groupmaxs","grouptimeout","gtid","gtid_next","gtidstart","hcl","host","https://www.nomadproject.io/docs/job","https://www.nomadproject.io/docs/runtime/interpolation#interpreted_node_var","insert","int","int);","interv","job","job、group","json","kafka","kafkaconfig","kafka目标端信息,","key)","key,","level","master","max_delay","mb","memori","messagegroupmaxs","messagegrouptimeout","mhz","mode","mysql源端信息,","mysql的gtid集合(区间),","mysql目标端信息,","noddl","noddlaltert","noddlaltertableaddcolumn,","noddlaltertablealtercolumn","noddlaltertablechangecolumn,","noddlaltertabledropcolumn","noddlaltertablemodifycolumn,","noddlcreateschema,","noddlcreatet","noddldropindex,","noddldropschema,","noddldroptable,","noddltrunc","nodml","nodmldelete,","nodmlinsert,","nodmlupd","nomad","object","object数组","oracleconfig","oracle源端信息,","parallelwork","password","port","primari","purge再重新添加,也需要根据restart参数重启","relay(中继)机制.","replchanbuffers","replicatedodb","replicateignoredb","replication_appli","reschedul","resourc","restart","retrytxlimit","sasl.password","sasl.us","schema","schemachangetop","scn","servicenam","setgtidnext","show","skipcreatedbt","skipcreatedbtable).","slavenetwritetimeout","slave线程的超时时间。mysql默认值为60,太短可能导致断连。太长则会导致异常连接回收不及时。","specification/","specification/constraint","sqlfilter","sqlfilter只能简单过滤相关语句。不会自动转换后续语句。例如","sqlfilter注意事项","srcconnectionconfig","srcoracleconfig","statu","string","string数组","super","tabl","table.columnmapfrom","table.columnmapto","table.tablenam","table.tableregex","table.tablerenam","table.wher","tableschema","tableschemaregex","tableschemarenam","task","task)","task分别放在src","task级配置,src/dest","task需各自重复。默认值为","topic","topicwithschemat","true","twowaysync","twowaysyncgtid","unlimit","usemysqldepend","user","utf8mb4","val","valu","xe","{","}","~","不为目标库创建复制库和复制表.","中。","中指定","为了避免无限reschedule带来的问题,dtle安装包提供的样例job配置中(/usr/share/dtle/scripts/example.job.*),限制reschedule为每半小时1次:","为空","为空.","之后由dtle自动创建表结构","二选一填写。","从3.x","从4.22.11.0开始,dtle配置发生变化","以默认值建立大量轻量级任务,会导致资源不够而pending,可适当调小。","任务","任务的内存消耗和每行大小、事物大小、队列长度有关。注意真实资源消耗,避免oom。","传输","作业(job)配置","作业配置一般采用","使源端目标端mysql事务gtid相同。可用以避免循环复制。需要","使用dtle并行复制计算事务依赖时,保存的行数。增大可以潜在地增加并行度,但会更消耗内存。","元素内容见下方说明","全部的filter:","全量+增量","全量复制时,","写入的行数","列映射(暂不支持正则表达式)。见demo","则不再尝试","则为","则复制指定数据库中的所有表","则复制整个数据库实例.","则完全执行replicatedodb配置.","则忽略指定数据库中的所有表","单位为事务组数。事务组大小和groupmaxsize/grouptimeout有关。","单位为字节.","单位为毫秒.","即使失败的job被stop","即先将源端mysql","原两端的connectionconfig的分别重命名为srcconnectionconfig和destconnectionconfig","参数名","反向任务使用的gtid。当值为\"auto\"时,从当前","只复制满足该条件的数据行.","可以引用表中的列名.","可使用","可取值:","可填写多元素.","可配置多张表,","同步起点","后自动从当前","否","命令行工具提交)文件。样例配置在","和","和binlogfile配套使用.","回放端的并发数.","在config段落中填写dtle专有配置。","在目标端删除参与复制的表,","增量任务开始的binlog位置,","增量任务开始的binlog文件(即源端mysql上","增量复制开始的","复制任务","复制任务缓存的大小,","复制时,","如","如为空[],","如果不需要追加库表名,请设为fals","如果使用带有binlogrelay的纯增量复制,","如果关闭此选项,","如果开启此选项,","完整参考","将从未复制的gtid开始增量复制","已复制的gtid集合(不是点位),","已有","常用通用配置","开启双向任务。","开始增量。","开始增量任务.","当task报错时,会根据restart配置,30分钟内在同一节点上重启最多两次","当值大于1时,","当执行发生某些错误时(如:deadlock),重试事务的次数","必填?","必须用gtid指定复制起点,不能使用binlogfile/pos。","意味着interval过后继续尝试","或","或\"kafka\"","或json格式","所有常规配置填在源端任务(src","执行错误,列数目不对","执行错误,目标表已存在","批量插入第一级数量。见性能调优","批量插入第三级数量。","批量插入第二级数量。","指定的topic.库名.表名,","指定要忽略的库表,优先级高于replicatedodb。如为空[],","提交)或","支持复制","数据库名","数据库映射正则表达式,可用于多个数据库重命名","数据源地址","数据源密码","数据源服务名","数据源用户名","数据源的字符集","数据源端口","是","是否使用binlog","是否跳过一些事件,","有group/task层级,一个group中的tasks会被放在同一个节点执行。dtle要求src和dest","有如下字段:","权限","每个元素有如下字段:","每次读取","注意:","注:hcl格式中${some_text}会被认为是变量引用。正则替换中输入此类文字时,则需使用双$符号:$${some_text}。","消息使用的topic","源端","源端任务有如下配置项:","源端发送数据时,","点位.","用户权限/存储过程ddl/函数ddl","用户需自行确保在发生过滤的情况下,后续dml/ddl能正确执行。","的完整配置参考","的结果).","目标端","目标端会进行并行回放","目标端向kafka发送消息时,","目标端固定填写一个配置项","目标端执行事务前执行set","目标端数据库用户需要有相应表的create权限.","目标端数据库用户需要有相应表的drop权限.","等待mysql事务数据包达到一定大小(messagegroupmaxsize字节)后将该包序列化并发送.","等待数据包达到一定大小(groupmaxsize字节)后发送该包.","等待数据包达到超时时间(grouptimeout毫秒)发送该包.","等待数据包达到超时时间(messagegrouptimeout毫秒)发送该包.","类型","类型为table.","级配置。配置后该job/group/task会绑定在指定的节点上执行","若不配置,","表名","表名映射匹配正则表达式,用于多个表同时重命名.","见下方","设为","语句被过滤","语法为sql表达式,","说明","说明。和","读取后分块发送的分块大小。空闲内存较小时需适当调小。适用于大全量/增量大事务","调整mysql","返回值应为布尔值.","避免源端清除binlog导致任务失败.","配置","重命名后的数据库名称,当进行多数据库重命名时,支持正则表达式,使用见demo","重命名后的表名,当进行多表重命名时,支持支持正则表达,见demo","集合.)","需要保持","默认为","默认为空,","默认使用mysql的并行回放事务依赖关系检测。如果不能开启源端mysql的writeset追踪,可将此设为false,使用dtle的依赖检测。","默认值","默认值1表示即刻发送数据","默认开启目标端mysql连接上的","默认最终topic为","默认有如下"],"4/4.3.1_tuning.html":["&","()","(),(),","...","...,","4.3.1.性能调优","5.7.22+","8.0","=","binlog_transaction_dependency_track","chunksiz","client节点上执行。当源端目标端mysql之间网络延迟很大时,应在各个主机/机房设立nomad","client,并限制","config中设置parallelworkers,控制增量并行回放线程数。参考值为8~64。","constraint","dest","dtle会使用两个固定数量(行数)的批量插入preparedstatement,默认为4和8。超过8的会被分到下一批。小于4的会单独插入。","effect","false)。","ga","global","groupmaxs","groupmaxsize默认值1,即每个事物立刻发送。增大后将等待数据量达到设定值再打包发送多个事务。","grouptimeout","insert","insert)","mts。在源端mysql设置","mysql","new","nomad","ping","replchanbuffers","rtt","session","set","take","task","tracking,则可以使用dtle的依赖计算功能(usemysqldepend","transaction_write_set_extract","valu","writeset","writeset;","xxhash64;","可增加传输时压缩率,适合低带宽网络。","可用bulkinsert1和bulkinsert2调整批量插入使用的数量。","后引入的","和","在dtle","在本地节点上执行,以充分利用dtle的压缩传输。","在某个nomad","增量的并行回放(mts)相关","如果因版本和权限问题,不能在源端mysql上设置writeset","当源端使用批量插入,即","性能调优","批量插入(bulk","推荐使用mysql","时,dtle会在目标端使用批量插入。","此后mysql生成的binlog中将附带tx依赖信息,dtle回放时可以利用依赖信息进行调度。","的时间值。","设定grouptimeout可避免数据量不足时等待过久。默认值100(毫秒)。一般设成略小于","部分参数可能影响复制性能。","限制","默认2000。全量复制时每次选取的行数。增大可以增加吞吐量,但同时会占用更多内存。","默认60,增量事物队列数量。增大可以降低可能的空等,但同时会占用更多内存。"],"4/4.3.2_job_sample.html":["\"${node.datacenter}\"","\"=\"","\"action_db_1\"","\"action_db_2\"","\"beijing\"","\"beijing\"]","\"db1\"","\"dest\"","\"dtle","\"dtle\"","\"sbtest1\"","\"sbtest2\"","\"sbtest3\"","\"shanghai\"","\"src\"","\"tb1\"","\"test\"","\"test_constraint\"","#","...","1\"","4.3.2.job示例","=","[\"shanghai\",","[]","[{","attribut","config","connectionconfig","constraint","datacent","driver","each","group","job","job.hcl","job.hcl通过以下配置在replicatedodb指定的范围内忽略db1.tb1,最终只复制库db1结构,但不复制db1下的任何表","job.hcl通过以下配置在replicatedodb指定的范围内忽略db1.tb1,最终复制库db1下除了tb1以外的表","job.hcl通过以下配置在replicatedodb指定的范围内忽略表db1和db1下的所有表,最终效果是没有要复制的库表","job.hcl通过以下配置忽略表db1及db1内所有的表","job示例:","map","name","node","oper","renam","replicatedodb","replicateignoredb","tabl","tablenam","tableschema","task","valu","{","}","},","}]","中replicatedodb配置:","使用正则挑选复制库表","参考2.2.mysql","参考3.8.dtle","复制一个库中的多个表","复制多个库中的多个表","复制指定数据库","复制整个实例的所有数据库","带where条件复制任务","忽略指定的库","忽略指定的表","支持","此处表示该job可以运行在datacenter为\"shanghai\"和\"beijing\"的节点上","源端任务和目标端任务在指定datacenter上故障转移dtle配置文件:","的数据分散","示例","限定故障转移域"],"4/4.4_http_api.html":["\"0.11.2\"","\"0e70636d","\"127.0.0.1\",","\"127.0.0.1:4646/v1/allocation/\"","\"127.0.0.1:4646/v1/job//alloc","\"127.0.0.1:4646/v1/job//allocations\"","\"127.0.0.1:4646/v1/nodes\"","\"9.9.9.9","\"9.9.9.9\",","\"address\":","\"attributes\":","\"datacenter\":","\"dc1\",","\"detected\":","\"displaymessage\":","\"driver.dtle\":","\"driver.dtle.full_version\":","\"driver.dtle.version\":","\"drivermessage\":","\"drivers\":","\"dtle\":","\"healthy\":","\"id\":","\"job_stage_full\",","\"job_stage_incr\",","\"name\":","\"nomad0\",","\"ready\",","\"status\":","\"true\",","\"version\":","#","'.'","(适用dtle","127.0.0.1:4646/v1/job","127.0.0.1:4646/v1/job/","127.0.0.1:4646/v1/job/mi","185e","3.x","4.4.http","@job.json","[{","api","api说明","b274","c139","consul","curl","data","delete后job信息仍会在nomad上保留一段时间供查询,直到nomad自动回收(gc)","docs/alloc","docs/job","docs/nod","docs/statu","dtle","e37dcf7a4bca\",","eeb399e9\"","grep","http","https://www.nomadproject.io/api","job","job.json的内容说明参看","job?purge=tru","job_stag","job_stage_ful","job_stage_incr","job、task、alloc的概念","job删除后进度(gtid)仍然保存在consul","job包含多个task。一个dtl","job有src和dest两个task。","jq","kv中","master","nomad","task在nomad节点上的执行,称为allocation。同一个task的多次执行(如失败","true,","xdelet","xget","xpost","{","|","}","},","}]","上的","中","位置:dtle//gtid","作业(job)配置","作业管理","停止(删除)job","再次添加job时,consul中保存的gtid优先于job配置中的项目","出现","列出所有job","列出所有节点:","列出某job的所有alloc","前置知识:nomad","区别任务处于全量还是增量状态","只","可以查看节点名、节点id和dtle插件信息(部分项省略)。","可使用删除/添加job来达成相同的效果。","如果要后续添加同名job,并且不想从consul保存的位置继续(而是从job配置中指定的位置开始),则","完整可参考","常用如下:","当结果中","当结果出现","指定purge可立刻删除","插件)","数据管理。","时,任务处于全量阶段","时,任务处于增量阶段","更多可参考","查看某个allocation的执行状态","注意保留添加job时使用的job配置文件","添加job","移除了暂停/恢复job的功能.","节点管理","获取某个job信息","说明","重试)会创建多个allocation。","需要删除consul重的数据。见","默认开启一个web服务,可使用curl工具向其发送http请求。"],"4/4.4.1_dtle_http_api.html":["/v2/database/column","/v2/database/instance_connect","/v2/database/schema","/v2/job/gtid","/v2/job/migration/cr","/v2/job/migration/delet","/v2/job/migration/detail","/v2/job/migration/paus","/v2/job/migration/resum","/v2/job/migration/revers","/v2/job/migration/reverse_start","/v2/job/migration/upd","/v2/job/reverse_start","/v2/job/subscription/cr","/v2/job/subscription/delet","/v2/job/subscription/detail","/v2/job/subscription/paus","/v2/job/subscription/resum","/v2/job/subscription/upd","/v2/job/sync/cr","/v2/job/sync/delet","/v2/job/sync/detail","/v2/job/sync/paus","/v2/job/sync/resum","/v2/job/sync/revers","/v2/job/sync/reverse_start","/v2/job/sync/upd","/v2/jobs/migr","/v2/jobs/subscript","/v2/jobs/sync","/v2/log/level","/v2/login","/v2/login/captcha","/v2/loginwithoutverifycod","/v2/monitor/task","/v2/mysql/column","/v2/mysql/instance_connect","/v2/mysql/schema","/v2/node","/v2/role/cr","/v2/role/delet","/v2/role/list","/v2/role/upd","/v2/tenant/list","/v2/user/cr","/v2/user/current_us","/v2/user/delet","/v2/user/list","/v2/user/list_act","/v2/user/reset_password","/v2/user/upd","/v2/validation/job","1","2","2.0","200","3","3.x","4","4.4.1.dtle","[","]","action","action.","address","admin_onli","agent","alloc","allocation.","allocation_id","api","apikey","apikeyauth","api说明","api(开启方式见\"节点配置\",api_addr),可与dtl","applier_tx_queue_s","author","auto_gtid","backlog","base64captcha","basic_task_profil","binlog_event_queue_s","binlog_relay","binlog_valid","bodi","boolean","buffer_statu","captcha","captcha_id","captcha_typ","charact","character_set","chunk_siz","code","column","column_map_from","common.joblistitemv2","common.jobstep","common.rol","common.us","config","config.","configur","connect","connection_config","connection_info","connection_valid","creat","create_tim","current","current_coordin","current_us","current_user_password","data","data_schem","data_sourc","databas","database_typ","datacent","default:tru","delay","delay_count","delet","dependency_history_s","descript","description:","dest","dest_task","dest_us","detail.","dev.","doc","driver","driver_config_valid","driverconfigvalid","drop_table_if_exist","dst_addr_list","dst_config","dst_data_bas","dst_database_typ","dst_kafka","dst_pwd","dtle","dtle_log_level","dtle_node_info","dtle_vers","dynamically.","encrypt","error","eta","eval_create_index","event_typ","exec_master_row_count","exec_master_tx_count","expand_syntax_support","extractor_tx_queue_s","fail_ov","failov","file","filter","filter_job_dest_ip","filter_job_dest_port","filter_job_id","filter_job_src_ip","filter_job_src_port","filter_job_statu","filter_ten","filter_usernam","finish","formdata","group_max_s","group_timeout","gtid","gtid.","gtid_mode_valid","gtid_set","header","host","http","id","ignor","in_byt","in_messag","indec","indic","info","info.","init","instance.","integ","ip","ip}:8190/swagger/index.html通过swagg","is_mysql_password_encrypt","is_password_encrypt","job","job.","job_base_info","job_config","job_create_tim","job_id","job_modify_index","job_statu","job_step","job_validation_error","job_validation_warn","kafka_broker_addr","kafka_top","key","leader","level","list","list.","locat","log","login","loginv2","loginwithoutverifycodev2","member","menu_level","menu_url","messag","message_group_max_s","message_group_timeout","migrat","migration_job_config","model","models.basictaskprofil","models.binlogvalid","models.bufferstat","models.buttonitem","models.captcharespv2","models.configur","models.connectioninfo","models.connectionrespv2","models.connectionvalid","models.createorupdatemysqltokafkajobparamv2","models.createorupdatemysqltokafkajobrespv2","models.createorupdatemysqltomysqljobparamv2","models.createorupdatemysqltomysqljobrespv2","models.createrolereqv2","models.createrolerespv2","models.createuserreqv2","models.createuserrespv2","models.currentcoordin","models.currentuserresp","models.databaseconnectionconfig","models.datasourceconfig","models.delaycount","models.deletejobrespv2","models.deleterolerespv2","models.deleteuserrespv2","models.desttaskconfig","models.dstconfig","models.dtlenodeinfo","models.gettaskprogressrespv2","models.getuserloginresv2","models.gtidmodevalid","models.jobbaseinfo","models.jobgtidresp","models.joblistrespv2","models.kafkadesttaskconfig","models.listactionrespv2","models.listcolumnsrespv2","models.listschemasrespv2","models.loginwithoutverifycodereqv2","models.menuitem","models.mysqldesttaskconfig","models.mysqlsrctaskconfig","models.mysqltaskvalidationreport","models.mysqltokafkajobdetailrespv2","models.mysqltomysqljobdetailrespv2","models.natsmessagestatist","models.nodelistitemv2","models.nodelistrespv2","models.oraclesrctaskconfig","models.pausejobrespv2","models.privilegesvalid","models.resetpasswordreqv2","models.resetpasswordrespv2","models.resumejobrespv2","models.reverseconfig","models.reversejobreq","models.reversejobresp","models.reversestartrespv2","models.rolelistresp","models.schemaitem","models.serveridvalid","models.srcconfig","models.srctaskconfig","models.tableconfig","models.tableitem","models.taskev","models.tasklog","models.taskprogress","models.tenantlistresp","models.throughputstat","models.updataloglevelrespv2","models.updaterolereqv2","models.updaterolerespv2","models.updateuserreqv2","models.updateuserrespv2","models.userlistresp","models.userloginreqv2","models.userloginresv2","models.validatejobreqv2","models.validatejobrespv2","mysql","mysql_character_set","mysql_dest_task_config","mysql_host","mysql_password","mysql_port","mysql_schema","mysql_src_task_config","mysql_tabl","mysql_task_validation_report","mysql_us","name","nats_message_statu","node","node_addr","node_address","node_id","node_nam","node_statu","node_status_descript","nomad","nomad_http_address","nomad_vers","num","number","object_typ","object_us","occur","ok","oper","operation_object_typ","operation_us","oracle_src_task_config","order","order_bi","out\",进入调试模式","out_byt","out_messag","parallel_work","paramet","parent_id","pass_word","password","password.","paus","port","posit","post","privileges_valid","progress","progress_pct","provid","queri","read_master_log_po","read_master_row_count","read_master_tx_count","reconnect","relay_master_log_fil","reload","remark","repl_chan_buffer_s","replicate_do_db","replicate_ignore_db","request","requir","reset","respons","resum","retri","retrieved_gtid_set","retry_tim","revers","reverse_config","role","role.","role_list","run","sampl","schema","schema_nam","scn","scope","secur","send_by_size_ful","send_by_timeout","server","server_id_valid","service_nam","set","setup_error","skip_create_db_t","sourc","src","src_addr_list","src_config","src_data_bas","src_database_typ","src_pwd","src_task","src_user","stage","start","statu","step_nam","step_schedul","step_statu","string","subscript","subscription_job_config","subscription_top","summary:","sure","sync","sync_job_config","tabl","table_nam","table_regex","table_renam","table_schema","table_schema_regex","table_schema_renam","target","task","task_ev","task_log","task_nam","task_step_nam","tasks_statu","tenant","tenant_list","text_cn","text_en","throughput_statu","time","timestamp","token","topic","type","ui查看接口文档","ui查看接口文档,打开界面如下:","ui界面调用api,具体步骤如下:","ui调用api","ui调用。","ui配套使用。","updat","uri","use_my_sql_depend","user","user.","user_list","usernam","valid","verifi","version","version:","wait_on_job","whether","with.","within","without","ye","填写请求参数后点击\"execute\"调用api","本节api示例默认使用swagg","查看响应:","根据业务功能提供了一套http","点击\"tri","由于用户校验功能限制,大多数接口调用需要在header中携带登录成功返回的token,在swagger页面可点击swagger页面顶部的authorize按钮,将token填入value的文本框中,swagger页面中其他接口即可正常使用","访问http://{dtle","说明","通过swagger","除了使用curl命令外,还可以通过swagg"],"4/4.5_mysql_user_privileges.html":["(mysql","4.5.mysql","8.0)","alter","client","creat","delet","drop","dtle配置的mysql用户,","index","insert","master","mysql","refer","replic","replication_appli","select","slave","statu","super","trigger","updat","修改目标端的gtid元数据表","全量/增量复制时,","全量复制时,","则需要","功能说明","在使用不同功能时,","增量复制时,","复制","复制时处理ddl语句","复制时处理ddl语句;","复制时处理dml语句","复制时处理dml语句;","如果job中设置setgtidnext=true,","对目标表需要select权限","或","权限","权限。","查询目标端的gtid元数据表","源端用户","用户权限说明","目标端用户","自动创建目标端的gtid元数据表","自动创建表结构功能;","获取binlog信息","进行目标端触发器检查","需具有以下权限","需执行show","需要模拟"],"4/4.6_dtle_2to3.html":["\"appliertxqueuesize\":0,\"appliergrouptxqueuesize\":0,\"sendbytimeout\":0,","\"backlog\":\"\",\"throughputstat\":null,\"msgstat\":{\"inmsgs\":2,\"outmsgs\":2,\"inbytes\":299,","\"currentcoordinates\":{\"file\":\"bin.000075\",\"position\":18716,","\"execmastertxcount\":0,\"readmasterrowcount\":0,\"readmastertxcount\":0,\"eta\":\"n/a\",","\"gtidset\":\"acd7d195","\"outbytes\":0,\"reconnects\":0},\"bufferstat\":{\"extractortxqueuesize\":0,","\"relaymasterlogfile\":\"\",\"readmasterlogpos\":0,\"retrievedgtidset\":\"\"},","\"sendbysizefull\":0},\"stage\":\"wait","\"stats\"","\"tablestats\":null,\"delaycount\":null,\"progresspct\":\"0.0\",\"execmasterrowcount\":0,","\"timestamp\":1599130915717858000}","\"暂停/恢复job\"被\"删除/添加job\"代替","#","#5863","$","'{\"signal\":","(1",")将现有job导出","*","./dtle","02000aba3e28:1","06cd","0eb1","11e9","127.0.0.1:4646/v1/client/allocation/b0a227c1","127.0.0.1:8190","143962\",","2.x","2.x升级到dtle","2.x并删除数据目录。","2.x的显著差异","2.x运行中。","2bb9","2to3.pi","2升级到3","3.x","3.x。将导出的job配置提交到","3.x。配置/etc/dtle/nomad.hcl,","4.6.dtle","500","928f","=","@job1.json","alloc","allocation//stat","allocation:","api","b0a227c1","b8bfe7607adc/sign","b910","code","code:","curl","d","desc","dest,","dtle","err:","error","error:","fail","job","job.json格式差异","json文件。需手动填写文件里的密码。","nomad","occurred:","process","queues\",","respons","rpc","s","signal","signal接口返回的错误信息来传递stats。","slave","stat","task:","unexpect","unknown","worker","xpost","{","}'","不要提交到nomad原生端口","从dtle","会自动从consul中储存的gtid继续复制","作为nomad插件运行","使用导出脚本(","兼容层端口","升级步骤","卸载dtle","可使用hcl格式job配置文件","和","如","如果要重建同名job(并放弃进度),除了在nomad上删除,还需要在consul上删除","安装dtle","导出脚本主要意义在于保存复制进度。","将在当前目录得到一系列job","开启兼容层(设定api_addr、nomad_addr)","恢复需要根据之前的job.json(或hcl)添加job","或使用curl访问http","接口变更","查询任务进度","点此下载","由于nomad没有提供合适的api","的数据文件不兼容,直接升级无法保留进行中的job。(若无需保留的job,则可直接升级。)","确保dtle","运行","需要另外启动consul","默认端口不同",",我们暂且借用nomad"],"4/4.7_diagnosing.html":["(hy000):","1,","1236","4.7.问题诊断","=","@@gtid_purged;","_systemd_unit=dtl","binari","binlog","chang","connect","consul.servic","consul中保存的dtle进度(gtid)","consul中储存的job","contain","dtle.gtid_execut","error","faq","gtid","job配置","journalctl","log","logs;和select","master","master_auto_posit","mysql","nomad.servic","purg","requires.","show","slave","statu","status;、show","time]目录下","ttin","us","{dtle_pid},dtle会自动生成信息文件,存放在/tmp/dtle_dump_[d","不一致的具体表现、特征","任务有无报错","修改日志级别为debug","协助诊断","即类似如下报错","堆栈/内存/运行状态/pprof信息:执行kil","复制停顿、不开始","复制过程中是否有ddl","复制阶段(全量/增量)","如为双向复制,需确保业务上无数据冲突","将以下内容提供给爱可生工程师,我们将帮助您诊断故障。","性能低、延迟大","数据不一致","数据产生量","方法参考","日志(请用gzip压缩)","服务无法启动,无日志输出,使用如下命令查看std日志","查找不一致数据出现的位置","源端","的结果","监控项:","目标端","确认日志级别为info。debug日志会大幅降低性能。","结果","网络(带宽/延迟)","表中是乱码","表的内容","表结构、是否有无pk表","解析源端binlog,","该表用uuid以binary储存以提升性能。注意查询方式gtid_executed表","通用","通用问题","遇到问题,首先确认使用了最新稳定版dtle。","部署结构(节点、dtle/mysql所在)","问题诊断","队列"],"5/5.1_resource_estimation.html":["(select","(字节)","(预计完成时间)","*","...)","/","2","5.1.时间/资源估算","=","@@net_write_timeout","big_tx_max_jobs时,所有job都会进入等待模式。","chunksiz","chunksize为配置项","count(*)","eta","queuesiz","queuesize为传输队列长度,","rowsiz","rowsize为数据行的平均大小","一直为0","为了避免mysql源端超时,等待时间的上限是","估算","全量过程,","全量过程.","公式为:","关于大事务","其中:","其中,总行数","内存占用估算","内存占用系数","剩余行数","即:预计完成时间","发送到目标端的行数","增量过程,","大事务指传输、处理数据量较大的事务,一般由dml组成。ddl事务(queryevent)不会太大,尽管某些ddl需要较长的执行时间。","对于一个多行的大事务,dtle会按行分开处理、传输并执行(但在目标端仍作为一个事务提交)。","已写入目标端的行数","已用时间","常量3.2","当一个job处理大事务时,需要等待该段数据在目标端执行完毕才会获取下一批数据。","当前写入速率","当前发送速率","当同时处理大事务的job数量达到","总时间","总行数","时间/资源估算","测量约为","源端","目标端","硬编码为24","预计完成时间"],"5/5.2_architecture.html":["5.2","agent数量不限","client","dtle","manager数量应为1、3或5个","nomad角色分为","server","server、client.","一个nomad进程可同时扮演","任务分为源端任务和目标端任务,","各由agent执行.","和","基本架构","架构","至少需要1个manager和1个ag","通过网络压缩传输数据."],"5/5.3_kafka_message_format.html":["\"0.8.3.final\",","\"\\\"a\\\".\\\"a\\\"\",","\"a\",","\"acd7d195","\"after\"","\"after\":","\"anne\",","\"annek@noanswer.org\"","\"autoincremented\"","\"before\"","\"before\":","\"bin.000022\",","\"boolean\",","\"c\",","\"charsetname\"","\"columns\"","\"creat","\"create\",","\"customers\"","\"d\",","\"databasename\"","\"db\"","\"db\":","\"dbserver1\",","\"dbserver1.inventory.customers.envelope\",","\"dbserver1.inventory.customers.key\"","\"dbserver1.inventory.customers.value\",","\"ddl\"","\"defaultcharsetname\"","\"email\"","\"email\":","\"field\":","\"fields\":","\"file\"","\"file\":","\"first_name\"","\"first_name\":","\"generated\"","\"gtid\"","\"gtid\":","\"gtids\"","\"id\"","\"id\",","\"id\":","\"int\",","\"int32\",","\"int64\",","\"inventory\",","\"io.debezium.connector.mysql.source\",","\"jdbctype\"","\"kretchmar\",","\"last_name\"","\"last_name\":","\"latin1\",","\"length\"","\"mysql","\"mysql2\"","\"name\"","\"name\":","\"op\"","\"op\":","\"optional\"","\"optional\":","\"payload\":","\"pos\"","\"pos\":","\"position\"","\"primarykeycolumnnames\"","\"row\"","\"row\":","\"schema\":","\"server\"","\"server_id\"","\"server_id\":","\"snapshot\"","\"snapshot\":","\"source\"","\"source\":","\"string\",","\"struct\",","\"table\"","\"table\":","\"tablechanges\"","\"thread\"","\"thread\":","\"ts_ms\"","\"ts_ms\":","\"ts_sec\"","\"ts_sec\":","\"type\"","\"type\":","\"typeexpression\"","\"typename\"","\"u\"","\"version\"","\"version\":","(\\n","(`id`)\\n)","(schemachangetopic)","0,","02000aba3e28:1","06cd","1","1,","1004","1004,","11,","11e9","1486500577691","154,","1641807976,","175\",","4,","439,","5.3","928f",":","[","]","],","`a`","`id`","after,","auto_increment,\\n","auto_increment=4","before,","bin.000003\",","change消息中,key永远为null,","charset=latin1\",","connect","creat","ddl","debezium","default","dml","dtle","dtle会将ddl写入schemachangetopic。该topic值可配置.","engine=innodb","fals","false,","https://debezium.io/docs/connectors/mysql/#data","https://debezium.io/documentation/reference/1.8/tutorial.html","int(11)","int64.","kafka","key","key和value各自又有schema和payload","key是该次变更的主键","mysql数据类型到","null","null,","op:","payload是具体的数据","position.snapshot==false则表明:这是增量过程中执行的ddl。","position.snapshot==true表明这是全量初始化时的表结构(通过show","primari","schema","schema含义不同","schema指明了数据的格式,","source,","string.","tabl","table等生成)。","topic.schema.table.envelope,","topic.schema.table.value,","true","true,","ts_ms:","type","types”的转换","valu","value是该次变更的整行数据","value部分有值:","{","}","},","“kafka","中","为该次变更的元数据","为该表的表结构.","仅","以下是一个消息的key.","以下是一个消息的value,","其中:","其消息格式具体可参考","其类型为","分别表达操作类型:","即payload的解读方式,","只是简单的包含了主键.","可以理解为“类定义”","同上","增、删、改","处理该行变更的时间.","复杂类型","复杂类型,","拥有5个字段","此处概要说明","每个消息分为key和valu","每行数据变更会有一个消息","注意和sql","注:tablechanges结构在dtle中尚未实现。","消息格式","消息格式兼容","用\"c\",","表结构会包含在","见","输出,"],"5/5.4_columns_mapping.html":["5.4","bfile","binary_doubl","binary_float","blob","char(100)","char(n),","character(n)","clob","date","datetim","day(p)","dec(p,s)","decimal(38)","decimal(p,s)","decimal(p,s),","doubl","float","float(p)","float类型无法精确匹配)","inf/nan数据","inf/nan数据,mysql","int","integer,","interv","logminer不支持","logminer解析异常","long","longblob","longtext","month","mysql","nchar","nchar(n)","nchar(n)/nvarchar(n)","nclob","number(*)","number(p)","number(p,0),","number(p,s)","number,","numeric(p,s)","nvarchar(n)","nvarchar2(n)","oracl","precis","raw","raw(n)","real","rowid","second(s)","smallint","time","timestamp(p)","tinyint/smallint/int/bigint/decimal(p)","urowid(n)","varbinary(n)","varchar(30)","varchar(n)","varchar2(n)","varying(n)","xmltype","year(p)","zone","不支持","不支持inf/","不支持minus查询","不支持原因","全量支持","同步结果以纳秒保存","后期是否考虑优化/支持","后期是否考虑支持","否","否(insert","增量支持","字段映射","字段类型","当前解析逻辑无法获取完整数据","待支持","支持)","时区未解析","是","是否支持","最大长度限制为6,oracle为9","极值问题","部分结果异常","限制"],"6/howto_contribute.html":["6.如何参与","bug","featur","issue,","issues页面","report","request","request流程即可","可直接在github","如何全职参与","如何参与","如果通过dtle,","您对全职参与类似的项目有兴趣,","按格式填写完成后提交即可","按照github的pul","提交代码","提交功能","提交缺陷","新建","本项目的维护方(上海爱可生信息技术股份有限公司)一直在招聘","模板,","请联系我们的研发团队.","选择","靠谱的研发工程师/靠谱的测试工程师."],"7/7_roadmap.html":["(2.19.03.0+","(2.19.11.0+)","(3.20.08.0+)","(actiontech/dtle#688)","(如dble)","(目前仅支持关系符和简单函数)","7.路线图","[","[x]","]","actiontech/dtle#321)","actiontech/dtle#541","actiontech/dtle#600","dtle","e","etl","ipv6","l","mt","mysql分布式中间件","oracl","primary切换","t","一致性ddl元数据","免一致性快照事务的全量复制","全量复制也可断点续传","列名变换","列选择、列顺序变换","加密","动态增减同步对象","复制到kafka的数据格式支持avro","容灾","对于","对链路提供限流参","库.表名变换","提供告警功能","提供数据扩容方案","支持2g级别的大事务","支持mgr","支持更丰富的函数","支持更多种类的公有云间的数据迁移","数据变换","生态","路线图","过滤条件","运维","链路管理","限流","非技术指标"]},"length":47},"tokenStore":{"root":{"0":{"2":{"0":{"0":{"0":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"3":{"docs":{},"e":{"2":{"8":{"docs":{},":":{"1":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}},"docs":{}},"docs":{}},"4":{"2":{"docs":{},"a":{"docs":{},"c":{"1":{"2":{"0":{"0":{"0":{"3":{"docs":{},":":{"1":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}},"docs":{}}},"4":{"docs":{},":":{"1":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"3":{"0":{"0":{"0":{"2":{"docs":{},":":{"1":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"6":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"0":{"0":{"0":{"2":{"docs":{},":":{"1":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}},"docs":{}},"4":{"docs":{},"t":{"0":{"6":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"docs":{}},"docs":{}}},"6":{"docs":{},"c":{"docs":{},"d":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"9":{"docs":{},"t":{"1":{"4":{"docs":{},":":{"0":{"5":{"docs":{},":":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{},":":{"0":{"0":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},".":{"docs":{},"概":{"docs":{},"述":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":10}}}}},"e":{"docs":{},"b":{"1":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.006048387096774193}}}},"1":{"0":{"0":{"4":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776}},":":{"2":{"0":{"0":{"docs":{},":":{"3":{"0":{"0":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558}}}},"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}},"g":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"1":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"e":{"8":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275}}},"9":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"docs":{}},"g":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},")":{"docs":{},";":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"2":{"3":{"6":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}},"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.02594810379241517},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.025943396226415096},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},":":{"4":{"6":{"4":{"6":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}},"/":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},"m":{"docs":{},"i":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"b":{"0":{"docs":{},"a":{"2":{"2":{"7":{"docs":{},"c":{"1":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}},"3":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},",":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"8":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"开":{"docs":{},"始":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}},"3":{"5":{"4":{"0":{"0":{"4":{"0":{"1":{"1":{"9":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"9":{"1":{"0":{"5":{"0":{"6":{"5":{"6":{"2":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"4":{"3":{"9":{"3":{"4":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}},"docs":{}},"6":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"6":{"5":{"0":{"0":{"5":{"7":{"7":{"6":{"9":{"1":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"5":{"2":{"1":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},":":{"1":{"5":{"2":{"1":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"4":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.019337016574585635},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"6":{"4":{"1":{"8":{"0":{"7":{"9":{"7":{"6":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"7":{"5":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"8":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"0":{"3":{"0":{"6":{"3":{"1":{"8":{"8":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"9":{"3":{"0":{"1":{"1":{"0":{"8":{"6":{"9":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"9":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.01107011070110701},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.01932367149758454},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.022099447513812154},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},".":{"0":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125},"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},"/":{"docs":{},"聚":{"docs":{},"合":{"docs":{},"/":{"docs":{},"分":{"docs":{},"散":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":10}}}}}}}}}}}}}}}}}}}},"1":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842},"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}},".":{"docs":{},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":10}}}}}}}}}}}}}},"2":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}},".":{"docs":{},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"间":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":10}}}}}}}}}}}}},"3":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"通":{"docs":{},"知":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":10}}}}}}}}}}}}}}}}}}}}}},"4":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":10}}}}}}}}}}}}}}}}}}}}},"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"复":{"docs":{},"制":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"@":{"docs":{},"@":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"}":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"[":{"3":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}}}}},"docs":{}},"6":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"docs":{}},"docs":{}}}},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"配":{"docs":{},"置":{"docs":{},"参":{"docs":{},"考":{"docs":{},"节":{"docs":{},"点":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"2":{"0":{"0":{"0":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.016555237185609677}}},"2":{"0":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}},"2":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"1":{"8":{"1":{"docs":{},":":{"2":{"1":{"8":{"1":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"2":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"3":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"4":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"5":{"0":{"0":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{}},"docs":{}},"8":{"8":{"0":{"0":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},".":{"0":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},".":{"1":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":2}}}}}}}},"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":10}}}}}}}}}}}}}},"1":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"聚":{"docs":{},"合":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":10}}}}}}}}}}}}}},"2":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"分":{"docs":{},"散":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":10}}}}}}}}}}}}}},"3":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":10}}}}}}}}}}}}}}}}}}}},"4":{"docs":{},".":{"docs":{},"阿":{"docs":{},"里":{"docs":{},"云":{"docs":{},"到":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"的":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":10}}}}}}}}}}}}}}}}}}},"5":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"通":{"docs":{},"知":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":10}}}}}}}}}}}}}}}}}}}}}},"6":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":10}}}}}}}}}}}}}}}}}}}}},"7":{"docs":{},".":{"docs":{},"多":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":5}}}}}}}}}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"x":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}},"显":{"docs":{},"著":{"docs":{},"差":{"docs":{},"异":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"升":{"docs":{},"级":{"docs":{},"到":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}},"并":{"docs":{},"删":{"docs":{},"除":{"docs":{},"数":{"docs":{},"据":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"中":{"docs":{},"。":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}},"源":{"docs":{},"端":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"会":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"重":{"docs":{},"启":{"docs":{},"均":{"docs":{},"失":{"docs":{},"败":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"在":{"docs":{},"其":{"docs":{},"他":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"b":{"9":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}}},"t":{"docs":{},"o":{"3":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"docs":{}}},"升":{"docs":{},"级":{"docs":{},"到":{"3":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":5}}},"docs":{}}}}},"3":{"0":{"0":{"0":{"docs":{},":":{"3":{"0":{"0":{"0":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{}},"2":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"3":{"0":{"6":{"1":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.00998003992015968},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},":":{"3":{"3":{"0":{"6":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"2":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.00998003992015968},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}},":":{"3":{"3":{"0":{"6":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208}},":":{"3":{"3":{"0":{"6":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"docs":{}},"docs":{}},"9":{"docs":{},".":{"5":{"0":{"2":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"g":{"docs":{},"z":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},".":{"0":{"docs":{},".":{"docs":{},"功":{"docs":{},"能":{"docs":{},"/":{"docs":{},"场":{"docs":{},"景":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"列":{"docs":{},"表":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":10}}}}}}}}}}}}}},"1":{"0":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":2.5}}}}}}}}}},"1":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":5}}}}}}}}},"docs":{},".":{"docs":{},"使":{"docs":{},"用":{"docs":{},"限":{"docs":{},"制":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":10}}}}}}}},"2":{"1":{"docs":{},".":{"0":{"7":{"docs":{},".":{"0":{"docs":{},"中":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"升":{"docs":{},"级":{"docs":{},"为":{"1":{"docs":{},".":{"1":{"docs":{},".":{"2":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"添":{"docs":{},"加":{"docs":{},"如":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},"使":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"提":{"docs":{},"供":{"docs":{},"监":{"docs":{},"控":{"docs":{},"数":{"docs":{},"据":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}},"来":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},".":{"0":{"docs":{},"+":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{},".":{"docs":{},"端":{"docs":{},"口":{"docs":{},"使":{"docs":{},"用":{"docs":{},"说":{"docs":{},"明":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":10}}}}}}}}}},"3":{"docs":{},".":{"docs":{},"对":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},"(":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"表":{"docs":{},")":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":10}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"4":{"docs":{},".":{"1":{"docs":{},".":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"监":{"docs":{},"控":{"docs":{},"告":{"docs":{},"警":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":10}}}}}}}}}},"2":{"docs":{},".":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"监":{"docs":{},"控":{"docs":{},"系":{"docs":{},"统":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":10}}}}}}}}}},"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"说":{"docs":{},"明":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":10}}}}}}}}},"5":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}},".":{"docs":{},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":10}}}}}}}},"6":{"docs":{},".":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"支":{"docs":{},"持":{"docs":{},"度":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":10}}}}}}}}}},"7":{"docs":{},".":{"docs":{},"d":{"docs":{},"c":{"docs":{},"l":{"docs":{},"支":{"docs":{},"持":{"docs":{},"度":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":10}}}}}}}}}},"8":{"docs":{},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":5}}}}}}}},"9":{"docs":{},".":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":3.333333333333333}}}}}}}}}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"x":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":2.500636739891754},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.024}},"作":{"docs":{},"为":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"插":{"docs":{},"件":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"伴":{"docs":{},"随":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"将":{"docs":{},"导":{"docs":{},"出":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"4":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.01818181818181818},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"docs":{}},"3":{"9":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{}},"6":{"4":{"6":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}},":":{"4":{"6":{"4":{"6":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"7":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}},"8":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}},"docs":{}},"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},".":{"0":{"docs":{},".":{"docs":{},"安":{"docs":{},"装":{"docs":{},"步":{"docs":{},"骤":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":10}}}}}}}},"1":{"docs":{},".":{"docs":{},"节":{"docs":{},"点":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":10}}}}}}}},"2":{"2":{"docs":{},".":{"0":{"7":{"docs":{},".":{"docs":{},"x":{"docs":{},"升":{"docs":{},"级":{"docs":{},"到":{"4":{"docs":{},".":{"2":{"2":{"docs":{},".":{"1":{"1":{"docs":{},"后":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}},"docs":{}},"docs":{}}},"docs":{},".":{"docs":{},"命":{"docs":{},"令":{"docs":{},"说":{"docs":{},"明":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":10}}}}}}}},"3":{"docs":{},".":{"1":{"docs":{},".":{"docs":{},"性":{"docs":{},"能":{"docs":{},"调":{"docs":{},"优":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":10}}}}}}}},"2":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"示":{"docs":{},"例":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":10}}}}}}}}},"docs":{},"作":{"docs":{},"业":{"docs":{},"(":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":10}}}}}}}}}}}}},"4":{"docs":{},".":{"1":{"docs":{},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":2.5}}}}}}}},"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":5}}}}}}}},"5":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":5}}}}}}}}},"6":{"docs":{},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":5}}}}}}}},"7":{"docs":{},".":{"docs":{},"问":{"docs":{},"题":{"docs":{},"诊":{"docs":{},"断":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":5}}}}}}}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"5":{"0":{"0":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"m":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925}}}}},"docs":{}},"6":{"4":{"6":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}},"\"":{"docs":{},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},".":{"1":{"docs":{},".":{"docs":{},"时":{"docs":{},"间":{"docs":{},"/":{"docs":{},"资":{"docs":{},"源":{"docs":{},"估":{"docs":{},"算":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":10}}}}}}}}}}},"2":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":5}}},"3":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":3.333333333333333}}},"4":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":2.5}}},"6":{"docs":{},"/":{"5":{"docs":{},".":{"7":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"docs":{}}},"docs":{}}},"7":{"docs":{},")":{"docs":{},"和":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"2":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},".":{"2":{"2":{"docs":{},"+":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}},"docs":{}},"docs":{}}},"docs":{}},"s":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.01932367149758454}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"]":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"账":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}},"6":{"5":{"8":{"0":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"docs":{}},"docs":{}},"6":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"7":{"1":{"0":{"8":{"8":{"6":{"4":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},".":{"docs":{},"如":{"docs":{},"何":{"docs":{},"参":{"docs":{},"与":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":10}}}}}}}},"7":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}}}},",":{"4":{"2":{"1":{"5":{"8":{"docs":{},"e":{"2":{"docs":{},"f":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"d":{"5":{"docs":{},"a":{"0":{"7":{"6":{"6":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"t":{"docs":{},"o":{"1":{"1":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"y":{"docs":{},"更":{"docs":{},"新":{"docs":{},"现":{"docs":{},"有":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"格":{"docs":{},"式":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}},".":{"docs":{},"路":{"docs":{},"线":{"docs":{},"图":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":10}}}}}}},"8":{"1":{"9":{"0":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}},":":{"8":{"1":{"9":{"0":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}},"docs":{}},"docs":{}},"2":{"0":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"docs":{}},"5":{"0":{"0":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}},":":{"8":{"5":{"0":{"0":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"2":{"9":{"9":{"0":{"2":{"2":{"1":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"docs":{"./":{"ref":"./","tf":0.07272727272727272}}},"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"a":{"docs":{},"e":{"docs":{},"b":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}},"d":{"docs":{},"e":{"7":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}},"docs":{}}},".":{"0":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},")":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"认":{"docs":{},"证":{"docs":{},"方":{"docs":{},"式":{"docs":{},"不":{"docs":{},"详":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}},"或":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"]":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"9":{"0":{"9":{"0":{"docs":{},":":{"9":{"0":{"9":{"0":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"2":{"docs":{},":":{"9":{"0":{"9":{"2":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},":":{"9":{"0":{"9":{"3":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"2":{"8":{"docs":{},"f":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{}},"6":{"1":{"7":{"8":{"6":{"0":{"0":{"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},".":{"9":{"docs":{},".":{"9":{"docs":{},".":{"9":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}}}}}}}}}},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"e":{"docs":{},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}},"#":{"3":{"2":{"1":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"docs":{}},"docs":{}},"5":{"4":{"1":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}},"docs":{}},"docs":{}},"6":{"0":{"0":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}},"docs":{}},"docs":{}},"docs":{}}}}}}},"@":{"1":{"8":{"0":{"docs":{},".":{"1":{"6":{"9":{"docs":{},".":{"6":{"0":{"docs":{},".":{"1":{"4":{"6":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"%":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}},"d":{"docs":{},"b":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"d":{"7":{"docs":{},"d":{"1":{"9":{"5":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"p":{"docs":{},"i":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"额":{"docs":{},"外":{"docs":{},"映":{"docs":{},"射":{"8":{"1":{"9":{"0":{"docs":{},"端":{"docs":{},"口":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}}}},"、":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":2.011904761904762}}}}}}}},"的":{"docs":{},"封":{"docs":{},"装":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}},"。":{"docs":{},"参":{"docs":{},"考":{"docs":{},"值":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},":":{"8":{"1":{"9":{"0":{"docs":{},"\"":{"docs":{},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"则":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}},"中":{"docs":{},"用":{"docs":{},"于":{"docs":{},"对":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"密":{"docs":{},"码":{"docs":{},"解":{"docs":{},"码":{"docs":{},"。":{"docs":{},"(":{"docs":{},"具":{"docs":{},"体":{"docs":{},"用":{"docs":{},"法":{"docs":{},"见":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":5},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":2.5}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.01591849729385546}}}}}}}}},"(":{"docs":{},"开":{"docs":{},"启":{"docs":{},"方":{"docs":{},"式":{"docs":{},"见":{"docs":{},"\"":{"docs":{},"节":{"docs":{},"点":{"docs":{},"配":{"docs":{},"置":{"docs":{},"\"":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"与":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}},"d":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"d":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.012048192771084338},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.020134228187919462},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},"=":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},",":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.030303030303030304}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"为":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"是":{"docs":{},"本":{"docs":{},"地":{"docs":{},"网":{"docs":{},"卡":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"对":{"docs":{},"外":{"docs":{},"告":{"docs":{},"知":{"docs":{},"连":{"docs":{},"接":{"docs":{},"用":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.01875}},"e":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"登":{"docs":{},"录":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"端":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"将":{"docs":{},"本":{"docs":{},"地":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}},"数":{"docs":{},"量":{"docs":{},"不":{"docs":{},"限":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.024128686327077747},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.02891566265060241},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.037267080745341616},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"2":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}}}},"e":{"docs":{},"w":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"1":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"docs":{},"y":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"=":{"docs":{},"y":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"配":{"docs":{},"置":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}},"g":{"docs":{},"s":{"docs":{},"=":{"docs":{},"[":{"0":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"3":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"5":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004819277108433735}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"值":{"docs":{},"和":{"docs":{},"源":{"docs":{},"端":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"\\":{"docs":{},"n":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"=":{"1":{"0":{"0":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"docs":{}},"docs":{}},"4":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"docs":{}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}}}},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}},"\"":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"]":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},".":{"docs":{},"a":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552}},";":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"c":{"1":{"3":{"9":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}},"docs":{}},"docs":{}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"n":{"docs":{"./":{"ref":"./","tf":0.03636363636363636},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}},"/":{"3":{"docs":{},"/":{"3":{"docs":{},".":{"4":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"d":{"docs":{},"c":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}},"场":{"docs":{},"景":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"y":{"docs":{},"=":{"1":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}}}}}}}}},"u":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.020134228187919462},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.06896551724137931},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}},"配":{"docs":{},"置":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"/":{"docs":{},"通":{"docs":{},"信":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"端":{"docs":{},"口":{"docs":{},":":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}},"中":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"进":{"docs":{},"度":{"docs":{},"(":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}},"储":{"docs":{},"存":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}}}}}},"o":{"docs":{},"l":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0038204393505253103}},"=":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"设":{"docs":{},"置":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"控":{"docs":{},"制":{"docs":{},"增":{"docs":{},"量":{"docs":{},"并":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{},"线":{"docs":{},"程":{"docs":{},"数":{"docs":{},"。":{"docs":{},"参":{"docs":{},"考":{"docs":{},"值":{"docs":{},"为":{"8":{"docs":{},"~":{"6":{"4":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"u":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}},"l":{"1":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.009316770186335404}},"=":{"2":{"docs":{},";":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}},"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"=":{"docs":{},"'":{"docs":{},"a":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}},"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0033734939759036144},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.021739130434782608},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}},"s":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"(":{"docs":{},"a":{"docs":{},",":{"docs":{},"b":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}},"t":{"docs":{},"o":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"将":{"docs":{},"表":{"docs":{},"a":{"docs":{},"和":{"docs":{},"表":{"docs":{},"b":{"docs":{},"合":{"docs":{},"并":{"docs":{},"到":{"docs":{},"表":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"。":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"原":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"新":{"docs":{},"的":{"docs":{},"自":{"docs":{},"增":{"docs":{},"i":{"docs":{},"d":{"docs":{},"作":{"docs":{},"为":{"docs":{},"主":{"docs":{},"键":{"docs":{},"。":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}},"e":{"docs":{},"=":{"docs":{},"g":{"docs":{},"b":{"docs":{},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{},"_":{"docs":{},"s":{"docs":{},"w":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}},"docs":{}}}}}},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"1":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}}}}},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"u":{"docs":{},"n":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362}},"'":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"=":{"docs":{},"'":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"=":{"docs":{},"'":{"docs":{},"z":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.01687360713148679},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"*":{"docs":{},")":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.0160857908847185},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.04048192771084337},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.021739130434782608},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.002228589621139764},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"e":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.01293103448275862},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.06},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.05521472392638037},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"命":{"docs":{},"令":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"a":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288},"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}},"数":{"docs":{},"量":{"docs":{},"任":{"docs":{},"意":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}},"(":{"docs":{},"运":{"docs":{},"行":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},")":{"docs":{},"执":{"docs":{},"行":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}},"需":{"docs":{},"部":{"docs":{},"署":{"docs":{},"在":{"docs":{},"网":{"docs":{},"络":{"docs":{},"边":{"docs":{},"界":{"docs":{},"上":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"进":{"docs":{},"程":{"docs":{},"可":{"docs":{},"以":{"docs":{},"同":{"docs":{},"时":{"docs":{},"作":{"docs":{},"为":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"只":{"docs":{},"担":{"docs":{},"任":{"docs":{},"一":{"docs":{},"个":{"docs":{},"角":{"docs":{},"色":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"当":{"docs":{},"源":{"docs":{},"端":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"之":{"docs":{},"间":{"docs":{},"网":{"docs":{},"络":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"很":{"docs":{},"大":{"docs":{},"时":{"docs":{},",":{"docs":{},"应":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"主":{"docs":{},"机":{"docs":{},"/":{"docs":{},"机":{"docs":{},"房":{"docs":{},"设":{"docs":{},"立":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"限":{"docs":{},"制":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}},"o":{"docs":{},"b":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"消":{"docs":{},"息":{"docs":{},"中":{"docs":{},",":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"永":{"docs":{},"远":{"docs":{},"为":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"(":{"1":{"0":{"0":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}},"docs":{}},"3":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"docs":{}},"2":{"0":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}},"5":{"docs":{},")":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}},"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.009156626506024097},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"=":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"docs":{}}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"=":{"1":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"docs":{}}}}}}}},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"u":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},"e":{"docs":{},"为":{"docs":{},"配":{"docs":{},"置":{"docs":{},"项":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},"将":{"docs":{},"无":{"docs":{},"法":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}}}},"t":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"使":{"docs":{},"用":{"docs":{},"率":{"docs":{},"(":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"总":{"docs":{},"计":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"=":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"=":{"3":{"0":{"0":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"_":{"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}},"d":{"2":{"9":{"docs":{},"f":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275}}}},"docs":{}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.021551724137931036},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.013972055888223553},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01650943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.010159651669085631},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0182370820668693},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0024096385542168677},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.03636363636363636},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.021551724137931036},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.011976047904191617},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.014150943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02467343976777939},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02735562310030395},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.0160857908847185},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.05172413793103448}}}}},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.02403846153846154}},"e":{"docs":{},",":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"c":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.03636363636363636},"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304},"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125},"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.15789473684210525},"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.14814814814814814},"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.030478955007256895},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.01107011070110701},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02127659574468085},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.024154589371980676},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.013812154696132596},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.1206896551724138},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.01875},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.032},"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"集":{"docs":{},"群":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}},"支":{"docs":{},"持":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"间":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"通":{"docs":{},"知":{"docs":{},",":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{},"通":{"docs":{},"知":{"docs":{},",":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"值":{"docs":{},"为":{"0":{"docs":{},"或":{"1":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"docs":{}}},"docs":{}}}}}},"不":{"docs":{},"检":{"docs":{},"测":{"docs":{},"数":{"docs":{},"据":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"回":{"docs":{},"放":{"docs":{},"报":{"docs":{},"错":{"docs":{},"(":{"docs":{},"如":{"docs":{},"应":{"docs":{},"数":{"docs":{},"据":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"导":{"docs":{},"致":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"了":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"列":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"存":{"docs":{},"储":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},")":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}},".":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.034482758620689655}},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"v":{"4":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.03125}},";":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"的":{"docs":{},"建":{"docs":{},"表":{"docs":{},"语":{"docs":{},"句":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"会":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"自":{"docs":{},"动":{"docs":{},"创":{"docs":{},"建":{"docs":{},"表":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"v":{"4":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"两":{"docs":{},"个":{"docs":{},"固":{"docs":{},"定":{"docs":{},"数":{"docs":{},"量":{"docs":{},"(":{"docs":{},"行":{"docs":{},"数":{"docs":{},")":{"docs":{},"的":{"docs":{},"批":{"docs":{},"量":{"docs":{},"插":{"docs":{},"入":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"4":{"docs":{},"和":{"8":{"docs":{},"。":{"docs":{},"超":{"docs":{},"过":{"8":{"docs":{},"的":{"docs":{},"会":{"docs":{},"被":{"docs":{},"分":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"批":{"docs":{},"。":{"docs":{},"小":{"docs":{},"于":{"4":{"docs":{},"的":{"docs":{},"会":{"docs":{},"单":{"docs":{},"独":{"docs":{},"插":{"docs":{},"入":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"写":{"docs":{},"入":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"。":{"docs":{},"该":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"值":{"docs":{},"可":{"docs":{},"配":{"docs":{},"置":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"传":{"docs":{},"输":{"docs":{},"/":{"docs":{},"回":{"docs":{},"放":{"docs":{},"事":{"docs":{},"务":{"docs":{},"时":{"docs":{},",":{"docs":{},"取":{"docs":{},"时":{"docs":{},"间":{"docs":{},"戳":{"docs":{},"和":{"docs":{},"当":{"docs":{},"前":{"docs":{},"时":{"docs":{},"间":{"docs":{},"的":{"docs":{},"差":{"docs":{},"值":{"docs":{},"为":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"数":{"docs":{},"据":{"docs":{},"量":{"docs":{},"(":{"docs":{},"内":{"docs":{},"存":{"docs":{},"计":{"docs":{},"数":{"docs":{},"值":{"docs":{},")":{"docs":{},"来":{"docs":{},"估":{"docs":{},"计":{"docs":{},"内":{"docs":{},"存":{"docs":{},"占":{"docs":{},"用":{"docs":{},"。":{"docs":{},"因":{"docs":{},"程":{"docs":{},"序":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"有":{"docs":{},"放":{"docs":{},"大":{"docs":{},"效":{"docs":{},"应":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"e":{"docs":{},"{":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"所":{"docs":{},"有":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"监":{"docs":{},"控":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},":":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"的":{"docs":{},"值":{"docs":{},"建":{"docs":{},"议":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"的":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"量":{"docs":{},"标":{"docs":{},"记":{"docs":{},"增":{"docs":{},"量":{"docs":{},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"被":{"docs":{},"清":{"docs":{},"除":{"docs":{},"则":{"docs":{},"复":{"docs":{},"制":{"docs":{},"会":{"docs":{},"出":{"docs":{},"错":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"单":{"docs":{},"独":{"docs":{},"生":{"docs":{},"成":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"不":{"docs":{},"再":{"docs":{},"和":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"合":{"docs":{},"并":{"docs":{},"。":{"docs":{},"每":{"5":{"1":{"2":{"docs":{},"m":{"docs":{},"b":{"docs":{},"进":{"docs":{},"行":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"和":{"docs":{},"压":{"docs":{},"缩":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"件":{"docs":{},"形":{"docs":{},"如":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"以":{"docs":{},"储":{"docs":{},"存":{"docs":{},"任":{"docs":{},"务":{"docs":{},"信":{"docs":{},"息":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},"仅":{"docs":{},"作":{"docs":{},"为":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"插":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"各":{"docs":{},"项":{"docs":{},"功":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"用":{"docs":{},"户":{"docs":{},",":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715}}},"(":{"docs":{},"a":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}},"a":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}},"b":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"3":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"2":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"3":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}},";":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"数":{"docs":{},"据":{"docs":{},"条":{"docs":{},"件":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}},"为":{"docs":{},"a":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}},">":{"docs":{},"=":{"5":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}},"docs":{}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004819277108433735},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.009316770186335404},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"e":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"后":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"信":{"docs":{},"息":{"docs":{},"仍":{"docs":{},"会":{"docs":{},"在":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"上":{"docs":{},"保":{"docs":{},"留":{"docs":{},"一":{"docs":{},"段":{"docs":{},"时":{"docs":{},"间":{"docs":{},"供":{"docs":{},"查":{"docs":{},"询":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"自":{"docs":{},"动":{"docs":{},"回":{"docs":{},"收":{"docs":{},"(":{"docs":{},"g":{"docs":{},"c":{"docs":{},")":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"y":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.01932367149758454},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},".":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"\"":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00819277108433735},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},",":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},":":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}},"s":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.013812154696132596},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}},"_":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"c":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.05858007004138809}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.016555237185609677}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"y":{"docs":{},"h":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}},"v":{"docs":{},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"b":{"docs":{},"e":{"docs":{},"z":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"c":{"docs":{},"(":{"docs":{},"p":{"docs":{},",":{"docs":{},"s":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"3":{"8":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}},"docs":{}},"docs":{},"p":{"docs":{},",":{"docs":{},"s":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},",":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}}}}}},"s":{"docs":{},"t":{"1":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}},"\"":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}},"2":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}},"\"":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715}}}}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"\"":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},":":{"9":{"0":{"9":{"2":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"_":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"p":{"docs":{},"w":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.019337016574585635},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.0160857908847185},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.00795924864692773}},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0025469595670168737}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"e":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},";":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.014423076923076924}},"e":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}},"y":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"c":{"1":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02177068214804064}},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275}}}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"内":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"并":{"docs":{},"重":{"docs":{},"启":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}},"到":{"docs":{},"d":{"docs":{},"c":{"2":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"docs":{}}}},"容":{"docs":{},"器":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"网":{"docs":{},"络":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"通":{"docs":{},"信":{"docs":{},"的":{"docs":{},"公":{"docs":{},"网":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}},"2":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02177068214804064}},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275}}}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"内":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"并":{"docs":{},"重":{"docs":{},"启":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}},"容":{"docs":{},"器":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"网":{"docs":{},"络":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"通":{"docs":{},"信":{"docs":{},"的":{"docs":{},"公":{"docs":{},"网":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}},"docs":{},"l":{"docs":{},"支":{"docs":{},"持":{"docs":{},"度":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}},"类":{"docs":{},"型":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.025542168674698794},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.015527950310559006},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"f":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"b":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"s":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0033734939759036144}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"n":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}},"d":{"docs":{},"l":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"支":{"docs":{},"持":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"度":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"类":{"docs":{},"型":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}},"语":{"docs":{},"句":{"docs":{},"示":{"docs":{},"例":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}},"m":{"docs":{},"l":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"支":{"docs":{},"持":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"类":{"docs":{},"型":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.03636363636363636}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.03636363636363636}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"每":{"docs":{},"个":{"docs":{},"事":{"docs":{},"物":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"发":{"docs":{},"送":{"docs":{},"。":{"docs":{},"增":{"docs":{},"大":{"docs":{},"后":{"docs":{},"将":{"docs":{},"等":{"docs":{},"待":{"docs":{},"数":{"docs":{},"据":{"docs":{},"量":{"docs":{},"达":{"docs":{},"到":{"docs":{},"设":{"docs":{},"定":{"docs":{},"值":{"docs":{},"再":{"docs":{},"打":{"docs":{},"包":{"docs":{},"发":{"docs":{},"送":{"docs":{},"多":{"docs":{},"个":{"docs":{},"事":{"docs":{},"务":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.02952029520295203},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.01876675603217158},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}}}},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.011976047904191617},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.014150943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.009358288770053475},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}},"点":{"docs":{},"位":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},"为":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}},"空":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}},"_":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"e":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"=":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.03125},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}},")":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"b":{"1":{"8":{"0":{"3":{"0":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"2":{"3":{"1":{"2":{"docs":{},",":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"k":{"docs":{},",":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.046296296296296294},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.028985507246376812}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"n":{"docs":{},"o":{"docs":{},"编":{"docs":{},"号":{"docs":{},"。":{"docs":{},"若":{"docs":{},"某":{"docs":{},"行":{"docs":{},"该":{"docs":{},"列":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"则":{"docs":{},"表":{"docs":{},"明":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"汇":{"docs":{},"总":{"docs":{},"行":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}},"a":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}},"i":{"docs":{},"n":{"docs":{},"t":{"6":{"4":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{}},"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.026737967914438502},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.006746987951807229}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"`":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}},"n":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}},"v":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.01623686723973257}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"o":{"docs":{},"语":{"docs":{},"句":{"docs":{},"或":{"docs":{},"者":{"docs":{},"执":{"docs":{},"行":{"docs":{},"产":{"docs":{},"生":{"docs":{},"d":{"docs":{},"u":{"docs":{},"p":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}},"(":{"1":{"1":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.009156626506024097},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"docs":{}},"docs":{}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"使":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"回":{"docs":{},"放":{"docs":{},",":{"docs":{},"故":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"时":{"docs":{},",":{"docs":{},"效":{"docs":{},"果":{"docs":{},"是":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},")":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406}},"e":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.011566265060240964},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}},"i":{"docs":{},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"数":{"docs":{},"据":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},",":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0070041388092964025}},"=":{"1":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"2":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"3":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}},"docs":{}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"v":{"docs":{},"h":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"3":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"3":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"3":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"3":{"0":{"docs":{},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"d":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}},"}":{"docs":{},":":{"8":{"1":{"9":{"0":{"docs":{},"/":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"通":{"docs":{},"过":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"v":{"6":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}},"docs":{}}},"s":{"docs":{},"_":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0025469595670168737}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}},"s":{"docs":{},"页":{"docs":{},"面":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}}}}}}}}},"p":{"0":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"4":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"5":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.03017241379310345},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.03592814371257485},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.03773584905660377},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.013062409288824383},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0243161094224924},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.0160857908847185},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"$":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{},"$":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0066857688634192934}},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"_":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.015281757402101241}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"_":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.012048192771084338}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"e":{"docs":{},"s":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"是":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}},"d":{"docs":{},"f":{"docs":{},"下":{"docs":{},"载":{"docs":{"./":{"ref":"./","tf":0.03636363636363636}}}}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.02594810379241517},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.025943396226415096},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"r":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.007228915662650603},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"y":{"docs":{},"切":{"docs":{},"换":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}}}}},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108}}}}}}},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"可":{"docs":{},"直":{"docs":{},"观":{"docs":{},"查":{"docs":{},"看":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"并":{"docs":{},"记":{"docs":{},"录":{"docs":{},"历":{"docs":{},"史":{"docs":{},"值":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"_":{"docs":{},"p":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"并":{"docs":{},"不":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"监":{"docs":{},"控":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"有":{"docs":{},"关":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"无":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"日":{"docs":{},"志":{"docs":{},"级":{"docs":{},"别":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"需":{"docs":{},"额":{"docs":{},"外":{"docs":{},"设":{"docs":{},"置":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}},")":{"docs":{},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},"的":{"docs":{},"网":{"docs":{},"络":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.034482758620689655}}}},"r":{"docs":{},"g":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}},"e":{"docs":{},"再":{"docs":{},"重":{"docs":{},"新":{"docs":{},"添":{"docs":{},"加":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"参":{"docs":{},"数":{"docs":{},"重":{"docs":{},"启":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}},"r":{"docs":{},"t":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.005093919134033747}}}},"s":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}},"i":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"=":{"docs":{},"=":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"则":{"docs":{},"表":{"docs":{},"明":{"docs":{},":":{"docs":{},"这":{"docs":{},"是":{"docs":{},"增":{"docs":{},"量":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"。":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"表":{"docs":{},"明":{"docs":{},"这":{"docs":{},"是":{"docs":{},"全":{"docs":{},"量":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"时":{"docs":{},"的":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"(":{"docs":{},"通":{"docs":{},"过":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.010187838268067495}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}},"docs":{}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}},"q":{"docs":{},"q":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.02387774594078319}}}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"i":{"docs":{},"z":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},"e":{"docs":{},"为":{"docs":{},"传":{"docs":{},"输":{"docs":{},"队":{"docs":{},"列":{"docs":{},"长":{"docs":{},"度":{"docs":{},",":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}},"p":{"docs":{},"s":{"docs":{},"(":{"docs":{},"源":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"s":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.01293103448275862},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}},"i":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"{":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"=":{"docs":{},"~":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"p":{"docs":{},"u":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"{":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"=":{"docs":{},"~":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"e":{"docs":{},"r":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.03125},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"权":{"docs":{},"限":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0028653295128939827}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.020134228187919462},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.045454545454545456},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"可":{"docs":{},"运":{"docs":{},"行":{"docs":{},"于":{"docs":{},"同":{"docs":{},"一":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"单":{"docs":{},"独":{"docs":{},"启":{"docs":{},"动":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"或":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"搭":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}},"数":{"docs":{},"量":{"docs":{},"为":{"docs":{},"奇":{"docs":{},"数":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"使":{"docs":{},"用":{"1":{"docs":{},"或":{"3":{"docs":{},"个":{"docs":{},",":{"docs":{},"不":{"docs":{},"超":{"docs":{},"过":{"5":{"docs":{},"个":{"docs":{},"。":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"数":{"docs":{},"据":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}},"部":{"docs":{},"署":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":5}}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"运":{"docs":{},"行":{"docs":{},"于":{"docs":{},"同":{"docs":{},"一":{"docs":{},"台":{"docs":{},"主":{"docs":{},"机":{"docs":{},"。":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}},"集":{"docs":{},"群":{"docs":{},"可":{"docs":{},"部":{"docs":{},"署":{"docs":{},"在":{"docs":{},"任":{"docs":{},"一":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"地":{"docs":{},"址":{"docs":{},".":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"、":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.002228589621139764}}}}}}}}}},"f":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308}},"端":{"docs":{},"口":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}},"c":{"docs":{},")":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}},"u":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.03151862464183381}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}},"t":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00819277108433735},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.009316770186335404},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.028985507246376812},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}},"=":{"docs":{},"g":{"docs":{},"b":{"docs":{},"k":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}}}}},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"docs":{}}}}},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},"`":{"docs":{},"=":{"docs":{},"?":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}},"docs":{}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},",":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}},"r":{"docs":{},"c":{"1":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}},"\"":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}},"到":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}}}},"2":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}},"\"":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}},"到":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}}}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.03867403314917127},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.03225806451612903},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.002228589621139764}},"\"":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"到":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}},"2":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}},"docs":{}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"_":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}},"p":{"docs":{},"w":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"u":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.0707070707070707},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"s":{"docs":{},"\\":{"docs":{},"g":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}},";":{"docs":{},"、":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}},"r":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}},"u":{"docs":{},"p":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"g":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.06875},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0374331550802139},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.08595988538681948}},"数":{"docs":{},"组":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"o":{"docs":{},"p":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"e":{"docs":{},"p":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.01107011070110701},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.046296296296296294},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}}},"u":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},">":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558}}}}}},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}}}},"l":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"超":{"docs":{},"时":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"6":{"0":{"docs":{},",":{"docs":{},"太":{"docs":{},"短":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"断":{"docs":{},"连":{"docs":{},"。":{"docs":{},"太":{"docs":{},"长":{"docs":{},"则":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"异":{"docs":{},"常":{"docs":{},"连":{"docs":{},"接":{"docs":{},"回":{"docs":{},"收":{"docs":{},"不":{"docs":{},"及":{"docs":{},"时":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.034482758620689655}}}}},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"m":{"docs":{},"n":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"$":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"$":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"$":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"权":{"docs":{},"限":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}}}}},"d":{"docs":{},"b":{"docs":{},"a":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}},"n":{"docs":{},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.003183699458771092}},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}},"c":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"点":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"docs":{}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.015600127347978351}},"=":{"docs":{},"s":{"docs":{},"p":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}},"m":{"docs":{},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0033734939759036144},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.049347341610951924},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.006048387096774193}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"含":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"指":{"docs":{},"明":{"docs":{},"了":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"格":{"docs":{},"式":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"b":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},")":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.024}},"接":{"docs":{},"口":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"传":{"docs":{},"递":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"。":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.018633540372670808}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}},"执":{"docs":{},"行":{"docs":{},"量":{"docs":{},"统":{"docs":{},"计":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"类":{"docs":{},"型":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},"只":{"docs":{},"能":{"docs":{},"简":{"docs":{},"单":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"相":{"docs":{},"关":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"不":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"后":{"docs":{},"续":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{},"事":{"docs":{},"项":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"m":{"docs":{},"t":{"docs":{},"p":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"_":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}},"p":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"(":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{},"_":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}},"中":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"文":{"docs":{},"技":{"docs":{},"术":{"docs":{},"参":{"docs":{},"考":{"docs":{},"手":{"docs":{},"册":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"指":{"docs":{},"定":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"库":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"全":{"docs":{},"国":{"docs":{},"支":{"docs":{},"持":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"量":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"+":{"docs":{},"增":{"docs":{},"量":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"估":{"docs":{},"计":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"计":{"docs":{},"数":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"不":{"docs":{},"复":{"docs":{},"制":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"?":{"docs":{},"即":{"docs":{},",":{"docs":{},"创":{"docs":{},"建":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"前":{"docs":{},",":{"docs":{},"源":{"docs":{},"端":{"docs":{},"已":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"被":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"至":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"?":{"docs":{},"#":{"3":{"5":{"8":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"步":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"同":{"docs":{},"步":{"docs":{},"完":{"docs":{},"成":{"docs":{},"前":{"docs":{},",":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"对":{"docs":{},"同":{"docs":{},"步":{"docs":{},"的":{"docs":{},"表":{"docs":{},"做":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"操":{"docs":{},"作":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"时":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}},"也":{"docs":{},"可":{"docs":{},"断":{"docs":{},"点":{"docs":{},"续":{"docs":{},"传":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}},"流":{"docs":{},"程":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"/":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},"时":{"docs":{},",":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}},"过":{"docs":{},"程":{"docs":{},",":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}},".":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"部":{"docs":{},"启":{"docs":{},"动":{"docs":{},"后":{"docs":{},",":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}},",":{"docs":{},"从":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}},"的":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"华":{"docs":{},"东":{"docs":{},"地":{"docs":{},"区":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"北":{"docs":{},"地":{"docs":{},"区":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"南":{"docs":{},"地":{"docs":{},"区":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}},"参":{"docs":{},"考":{"2":{"docs":{},".":{"2":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}},"docs":{}}},"3":{"docs":{},".":{"8":{"docs":{},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}},"docs":{}}},"docs":{"./":{"ref":"./","tf":0.01818181818181818}},"样":{"docs":{},"例":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"这":{"docs":{},"一":{"docs":{},"段":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"看":{"5":{"docs":{},".":{"3":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},"docs":{}}},"docs":{}},"数":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"说":{"docs":{},"明":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"详":{"docs":{},"见":{"docs":{},"作":{"docs":{},"业":{"docs":{},"配":{"docs":{},"置":{"docs":{},".":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552}}}}},"如":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"果":{"docs":{},"想":{"docs":{},"获":{"docs":{},"得":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"一":{"docs":{},"段":{"docs":{},"时":{"docs":{},"间":{"docs":{},"(":{"1":{"5":{"docs":{},"s":{"docs":{},")":{"docs":{},"没":{"docs":{},"有":{"docs":{},"事":{"docs":{},"务":{"docs":{},",":{"docs":{},"则":{"docs":{},"重":{"docs":{},"置":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"值":{"docs":{},"为":{"0":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"不":{"docs":{},"在":{"docs":{},"默":{"docs":{},"认":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"追":{"docs":{},"加":{"docs":{},"库":{"docs":{},"表":{"docs":{},"名":{"docs":{},",":{"docs":{},"请":{"docs":{},"设":{"docs":{},"为":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"带":{"docs":{},"有":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"的":{"docs":{},"纯":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"此":{"docs":{},"选":{"docs":{},"项":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"开":{"docs":{},"启":{"docs":{},"此":{"docs":{},"选":{"docs":{},"项":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"因":{"docs":{},"版":{"docs":{},"本":{"docs":{},"和":{"docs":{},"权":{"docs":{},"限":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"上":{"docs":{},"设":{"docs":{},"置":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"后":{"docs":{},"续":{"docs":{},"添":{"docs":{},"加":{"docs":{},"同":{"docs":{},"名":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"不":{"docs":{},"想":{"docs":{},"从":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"继":{"docs":{},"续":{"docs":{},"(":{"docs":{},"而":{"docs":{},"是":{"docs":{},"从":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"开":{"docs":{},"始":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"重":{"docs":{},"建":{"docs":{},"同":{"docs":{},"名":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"(":{"docs":{},"并":{"docs":{},"放":{"docs":{},"弃":{"docs":{},"进":{"docs":{},"度":{"docs":{},")":{"docs":{},",":{"docs":{},"除":{"docs":{},"了":{"docs":{},"在":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"上":{"docs":{},"删":{"docs":{},"除":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"删":{"docs":{},"除":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"中":{"docs":{},"设":{"docs":{},"置":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}},"下":{"docs":{},"图":{"docs":{},",":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125},"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842},"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693},"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}},"只":{"docs":{},"测":{"docs":{},"试":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"指":{"docs":{},"定":{"docs":{},"位":{"docs":{},"置":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"链":{"docs":{},"路":{"docs":{},"压":{"docs":{},"缩":{"docs":{},"等":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}},"搭":{"docs":{},"建":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"系":{"docs":{},"统":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}},"全":{"docs":{},"职":{"docs":{},"参":{"docs":{},"与":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}},"参":{"docs":{},"与":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}},"上":{"docs":{},"图":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}},"为":{"docs":{},"空":{"docs":{},"[":{"docs":{},"]":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{},"需":{"docs":{},"确":{"docs":{},"保":{"docs":{},"业":{"docs":{},"务":{"docs":{},"上":{"docs":{},"无":{"docs":{},"数":{"docs":{},"据":{"docs":{},"冲":{"docs":{},"突":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}},"官":{"docs":{},"方":{"docs":{},"技":{"docs":{},"术":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}},"左":{"docs":{},"侧":{"docs":{},"目":{"docs":{},"录":{"docs":{},"区":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}},"开":{"docs":{},"源":{"docs":{},"社":{"docs":{},"区":{"docs":{},"微":{"docs":{},"信":{"docs":{},"公":{"docs":{},"众":{"docs":{},"号":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}}}},"发":{"docs":{},"并":{"docs":{},"开":{"docs":{},"源":{"docs":{},"的":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}},"启":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"正":{"docs":{},"确":{"docs":{},"配":{"docs":{},"置":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}},"双":{"docs":{},"向":{"docs":{},"任":{"docs":{},"务":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},"(":{"docs":{},"设":{"docs":{},"定":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"、":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"始":{"docs":{},"增":{"docs":{},"量":{"docs":{},"时":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"极":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"清":{"docs":{},"除":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"任":{"docs":{},"务":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"机":{"docs":{},"自":{"docs":{},"动":{"docs":{},"启":{"docs":{},"动":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}},"您":{"docs":{},"可":{"docs":{},"以":{"docs":{},"联":{"docs":{},"系":{"docs":{},"我":{"docs":{},"们":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}}},"对":{"docs":{},"全":{"docs":{},"职":{"docs":{},"参":{"docs":{},"与":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"有":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}}}}}}}}},"或":{"docs":{"./":{"ref":"./","tf":0.01818181818181818},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"查":{"docs":{},"看":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}},"\"":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"格":{"docs":{},"式":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"访":{"docs":{},"问":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"库":{"docs":{"./":{"ref":"./","tf":0.03636363636363636}}}}},"曹":{"docs":{},"先":{"docs":{},"生":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"梁":{"docs":{},"先":{"docs":{},"生":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"汪":{"docs":{},"先":{"docs":{},"生":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"洪":{"docs":{},"先":{"docs":{},"生":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}},"的":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"商":{"docs":{},"业":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}},"复":{"docs":{},"制":{"docs":{},".":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},"汇":{"docs":{},"聚":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}},"数":{"docs":{},"据":{"docs":{},"分":{"docs":{},"散":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"兼":{"docs":{},"容":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"升":{"docs":{},"级":{"docs":{},"无":{"docs":{},"法":{"docs":{},"保":{"docs":{},"留":{"docs":{},"进":{"docs":{},"行":{"docs":{},"中":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"。":{"docs":{},"(":{"docs":{},"若":{"docs":{},"无":{"docs":{},"需":{"docs":{},"保":{"docs":{},"留":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"直":{"docs":{},"接":{"docs":{},"升":{"docs":{},"级":{"docs":{},"。":{"docs":{},")":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"部":{"docs":{},"署":{"docs":{},"。":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}},"连":{"docs":{},"接":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},"配":{"docs":{},"置":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}}},"完":{"docs":{},"整":{"docs":{},"配":{"docs":{},"置":{"docs":{},"参":{"docs":{},"考":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"结":{"docs":{},"果":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},")":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"时":{"docs":{},"间":{"docs":{},"值":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}},"目":{"docs":{},"录":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}},"标":{"docs":{},"端":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},"不":{"docs":{},"会":{"docs":{},"受":{"docs":{},"到":{"docs":{},"不":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},".":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}},"有":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},"后":{"docs":{},"的":{"docs":{},"表":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}},"的":{"docs":{},"用":{"docs":{},"于":{"docs":{},"回":{"docs":{},"放":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"用":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"张":{"docs":{},"表":{"docs":{},"有":{"docs":{},"相":{"docs":{},"应":{"docs":{},"权":{"docs":{},"限":{"docs":{},".":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}},"账":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"并":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"向":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"发":{"docs":{},"送":{"docs":{},"消":{"docs":{},"息":{"docs":{},"时":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}}}}},"固":{"docs":{},"定":{"docs":{},"填":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"项":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"事":{"docs":{},"务":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"用":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"相":{"docs":{},"应":{"docs":{},"表":{"docs":{},"的":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"权":{"docs":{},"限":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"权":{"docs":{},"限":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}},"任":{"docs":{},"务":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{},"在":{"docs":{},"d":{"docs":{},"c":{"1":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}},"2":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"前":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"同":{"docs":{},"步":{"docs":{},"通":{"docs":{},"道":{"docs":{},":":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}}}},"网":{"docs":{},"站":{"docs":{},":":{"docs":{},"爱":{"docs":{},"可":{"docs":{},"生":{"docs":{},"开":{"docs":{},"源":{"docs":{},"社":{"docs":{},"区":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}}}}}},"络":{"docs":{},"流":{"docs":{},"量":{"docs":{},"状":{"docs":{},"态":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"(":{"docs":{},"带":{"docs":{},"宽":{"docs":{},"/":{"docs":{},"延":{"docs":{},"迟":{"docs":{},")":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}},"联":{"docs":{},"系":{"docs":{},"我":{"docs":{},"们":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}},"西":{"docs":{},"南":{"docs":{},"地":{"docs":{},"区":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.01818181818181818}}}}}}},"(":{"0":{"docs":{},".":{"0":{"0":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}},"2":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}},"docs":{}},"docs":{}}},"1":{"9":{"9":{"1":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}},"docs":{}},"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"2":{"0":{"2":{"0":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}},"docs":{},",":{"1":{"0":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}},"docs":{}}},"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},".":{"1":{"9":{"docs":{},".":{"0":{"3":{"docs":{},".":{"0":{"docs":{},"+":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"docs":{}}},"docs":{}},"1":{"1":{"docs":{},".":{"0":{"docs":{},"+":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},".":{"2":{"0":{"docs":{},".":{"0":{"8":{"docs":{},".":{"0":{"docs":{},"+":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"5":{"0":{"docs":{},",":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"docs":{}},"6":{"4":{"docs":{},"m":{"docs":{},")":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"5":{"docs":{},",":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"docs":{}},"8":{"docs":{},"小":{"docs":{},"时":{"docs":{},")":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.012422360248447204}},"d":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"协":{"docs":{},"议":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"d":{"docs":{},"l":{"docs":{},")":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"可":{"docs":{},"使":{"docs":{},"用":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}},"如":{"docs":{},"阿":{"docs":{},"里":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"隐":{"docs":{},"式":{"docs":{},"主":{"docs":{},"键":{"docs":{},"列":{"docs":{},",":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}},"与":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"通":{"docs":{},"信":{"docs":{},"的":{"docs":{},"内":{"docs":{},"网":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}}}}}},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"省":{"docs":{},"略":{"docs":{},"未":{"docs":{},"更":{"docs":{},"改":{"docs":{},"项":{"docs":{},"目":{"docs":{},")":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"l":{"docs":{},"l":{"docs":{},")":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"(":{"2":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"3":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"docs":{}},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"#":{"6":{"8":{"8":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.010602409638554217},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{},"f":{"docs":{},"中":{"docs":{},"填":{"docs":{},"写":{"docs":{},"合":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}},"a":{"docs":{},"x":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},",":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"运":{"docs":{},"行":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},")":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},")":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"种":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"集":{"docs":{},"群":{"docs":{},"存":{"docs":{},"活":{"docs":{},"一":{"docs":{},"半":{"docs":{},"以":{"docs":{},"上":{"docs":{},")":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}}},"c":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}}}}}}}}},"o":{"docs":{},"l":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}},"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"e":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362}}}}}}}},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"q":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},")":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"中":{"docs":{},"继":{"docs":{},")":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":3.3717948717948714}}}}},"\"":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}},"`":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"2":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}},"docs":{}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"`":{"docs":{},")":{"docs":{},"\\":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}},"参":{"docs":{},"考":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"开":{"docs":{},"启":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"y":{"0":{"0":{"0":{"docs":{},")":{"docs":{},":":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}},"docs":{}},"docs":{}},"docs":{}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"将":{"docs":{},"自":{"docs":{},"动":{"docs":{},"求":{"docs":{},"差":{"docs":{},"集":{"docs":{},"获":{"docs":{},"取":{"docs":{},"上":{"docs":{},"述":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"参":{"docs":{},"数":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},")":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},",":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}},"适":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}},"字":{"docs":{},"节":{"docs":{},")":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}},"预":{"docs":{},"计":{"docs":{},"完":{"docs":{},"成":{"docs":{},"时":{"docs":{},"间":{"docs":{},")":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}},"\\":{"docs":{},"n":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"关":{"docs":{},"系":{"docs":{},"符":{"docs":{},"和":{"docs":{},"简":{"docs":{},"单":{"docs":{},"函":{"docs":{},"数":{"docs":{},")":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}}}}}}}}}}}}}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.03343465045592705},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0066844919786096255},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":3.339381720430107}},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}},"_":{"docs":{},"z":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"=":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0121580547112462}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"e":{"docs":{},"y":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.018795180722891568},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}},"后":{"docs":{},",":{"docs":{},"原":{"docs":{},"外":{"docs":{},"键":{"docs":{},"父":{"docs":{},"表":{"docs":{},"依":{"docs":{},"然":{"docs":{},"会":{"docs":{},"被":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"外":{"docs":{},"键":{"docs":{},"父":{"docs":{},"表":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"3":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"docs":{}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}}}},"t":{"1":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"docs":{}}},"2":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"3":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"4":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"5":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"6":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"8":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"9":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"docs":{}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}},"和":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"各":{"docs":{},"自":{"docs":{},"又":{"docs":{},"有":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"和":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"该":{"docs":{},"次":{"docs":{},"变":{"docs":{},"更":{"docs":{},"的":{"docs":{},"主":{"docs":{},"键":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"i":{"docs":{},"b":{"docs":{},"i":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}}}}}}}}}}}},"v":{"docs":{},"中":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"l":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"e":{"docs":{},")":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}},"s":{"docs":{},"s":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"o":{"docs":{},"g":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"_":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"1":{"docs":{},"=":{"docs":{},"'":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"=":{"docs":{},"/":{"docs":{},"u":{"0":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"'":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925}}}}},"i":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"docs":{}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},";":{"docs":{},"和":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.019230769230769232}}}}},"解":{"docs":{},"析":{"docs":{},"异":{"docs":{},"常":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},",":{"docs":{},"以":{"docs":{},"防":{"docs":{},"止":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"快":{"docs":{},"照":{"docs":{},"期":{"docs":{},"间":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"发":{"docs":{},"生":{"docs":{},"变":{"docs":{},"化":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.015281757402101241}}}}},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}},"b":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.002228589621139764}}}}},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"2":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}},"docs":{}}}},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}}}}}},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035},"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.02586206896551724},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.03592814371257485},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.03773584905660377},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0182370820668693},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.018518518518518517},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0070041388092964025},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":2.5288461538461537}},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.06060606060606061}}}}}},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"集":{"docs":{},"合":{"docs":{},"(":{"docs":{},"区":{"docs":{},"间":{"docs":{},")":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"通":{"docs":{},"知":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}},":":{"5":{"docs":{},".":{"7":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}}},"docs":{}},"_":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"=":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}},">":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014}}},"版":{"docs":{},"本":{"docs":{},"为":{"5":{"docs":{},".":{"7":{"docs":{},".":{"1":{"8":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"docs":{}},"2":{"1":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}}},"同":{"docs":{},"步":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":5}}}}}},"源":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"到":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"分":{"docs":{},"布":{"docs":{},"式":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"=":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"o":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}},"docs":{}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}},"docs":{}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}},"docs":{}}}}}}}}}}}}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}}}}}}}}}}},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}},"docs":{}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}},"docs":{}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}},"docs":{}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}},"r":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"s":{"docs":{},"k":{"docs":{},"e":{"docs":{},"v":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}},"s":{"docs":{},"p":{"docs":{},"v":{"2":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.012422360248447204}}},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"r":{"docs":{},"e":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406}}}},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.04597701149425287}},"_":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"s":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"x":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.01935483870967742},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":5}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"数":{"docs":{},"量":{"docs":{},"应":{"docs":{},"为":{"1":{"docs":{},"、":{"3":{"docs":{},"或":{"5":{"docs":{},"个":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"k":{"docs":{},"b":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"_":{"docs":{},"k":{"docs":{},"b":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}},"i":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"b":{"docs":{},"i":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.010506208213944603}},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"_":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0028653295128939827}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}},"\"":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}},".":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}},"s":{"docs":{},"c":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.024861878453038673}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0033734939759036144}}}}}}}},"b":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"h":{"docs":{},"z":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"t":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"s":{"docs":{},"。":{"docs":{},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"设":{"docs":{},"置":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}},"t":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"4":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"5":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"6":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"7":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"8":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"9":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.011566265060240964}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"计":{"docs":{},"算":{"docs":{},"功":{"docs":{},"能":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005783132530120482},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"_":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}},"、":{"docs":{},"e":{"docs":{},"v":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}},"u":{"docs":{},"e":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0066844919786096255},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},"。":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.02217741935483871}}}},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.05253012048192771},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.03870967741935484},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.06832298136645963},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0106951871657754},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.025089605734767026},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.043010752688172046}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"t":{"docs":{},"o":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.04659498207885305}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"等":{"docs":{},"生":{"docs":{},"成":{"docs":{},")":{"docs":{},"。":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}}}}}}},"s":{"docs":{},"k":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0066844919786096255},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.043478260869565216},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}}}}},"e":{"docs":{},"v":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}}}}}}},")":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"分":{"docs":{},"别":{"docs":{},"放":{"docs":{},"在":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"级":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"需":{"docs":{},"各":{"docs":{},"自":{"docs":{},"重":{"docs":{},"复":{"docs":{},"。":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"在":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"称":{"docs":{},"为":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"。":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"的":{"docs":{},"多":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"(":{"docs":{},"如":{"docs":{},"失":{"docs":{},"败":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}},"k":{"docs":{},"e":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}},"s":{"docs":{},"t":{"1":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},",":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"2":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},",":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"3":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},",":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},".":{"docs":{},"\"":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"\"":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"_":{"2":{"0":{"0":{"0":{"0":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"5":{"6":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"2":{"5":{"6":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"1":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}}}}}}},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"(":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"”":{"docs":{},"按":{"docs":{},"钮":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"a":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"x":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"_":{"docs":{},"c":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}},"e":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.005093919134033747}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"\"":{"docs":{},",":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"y":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"(":{"docs":{},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}},"]":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}},"n":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"s":{"docs":{},"(":{"docs":{},"源":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.04048192771084337}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}},"_":{"1":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"2":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0024096385542168677},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.027061445399554282},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"s":{"docs":{},"”":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}},"s":{"docs":{},"_":{"docs":{},"m":{"docs":{},"s":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"其":{"docs":{},"功":{"docs":{},"能":{"docs":{},"特":{"docs":{},"点":{"docs":{},"是":{"docs":{},":":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}},"中":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}},":":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}},"的":{"docs":{},"不":{"docs":{},"同":{"docs":{},"之":{"docs":{},"处":{"docs":{},"在":{"docs":{},"于":{"docs":{},":":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"与":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}},"docs":{}}}}},",":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}},"总":{"docs":{},"行":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"普":{"docs":{},"遍":{"docs":{},"场":{"docs":{},"景":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"双":{"docs":{},"向":{"docs":{},"同":{"docs":{},"步":{"docs":{},".":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}}}}},":":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}}}}}}},"场":{"docs":{},"景":{"docs":{},"是":{"docs":{},":":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}}},"他":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"对":{"docs":{},"象":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"节":{"docs":{},"点":{"docs":{},"使":{"docs":{},"用":{"docs":{},"此":{"docs":{},"地":{"docs":{},"址":{"docs":{},"连":{"docs":{},"接":{"docs":{},"本":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{},"跨":{"docs":{},"公":{"docs":{},"网":{"docs":{},"传":{"docs":{},"输":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"成":{"docs":{},"上":{"docs":{},"层":{"docs":{},"路":{"docs":{},"由":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"网":{"docs":{},"络":{"docs":{},"穿":{"docs":{},"透":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"消":{"docs":{},"息":{"docs":{},"格":{"docs":{},"式":{"docs":{},"具":{"docs":{},"体":{"docs":{},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"为":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"可":{"docs":{},"进":{"docs":{},"行":{"docs":{},"自":{"docs":{},"动":{"docs":{},"任":{"docs":{},"务":{"docs":{},"分":{"docs":{},"配":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.0625}},"多":{"docs":{},"张":{"docs":{},"表":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}},"使":{"docs":{},"用":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"压":{"docs":{},"缩":{"docs":{},"/":{"docs":{},"限":{"docs":{},"速":{"docs":{},"等":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"/":{"docs":{},"添":{"docs":{},"加":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"来":{"docs":{},"达":{"docs":{},"成":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"格":{"docs":{},"式":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"部":{"docs":{},"署":{"docs":{},"方":{"docs":{},"式":{"docs":{},"同":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"间":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{},",":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"1":{"docs":{},"和":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"2":{"docs":{},"调":{"docs":{},"整":{"docs":{},"批":{"docs":{},"量":{"docs":{},"插":{"docs":{},"入":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"部":{"docs":{},"署":{"docs":{},"于":{"docs":{},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"的":{"docs":{},"云":{"docs":{},"主":{"docs":{},"机":{"docs":{},"服":{"docs":{},"务":{"docs":{},"上":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"准":{"docs":{},"备":{"docs":{},"提":{"docs":{},"前":{"docs":{},"建":{"docs":{},"表":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}},"s":{"docs":{},"c":{"docs":{},"n":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"参":{"docs":{},"照":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}},"查":{"docs":{},"看":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},",":{"docs":{},"或":{"docs":{},"在":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"中":{"docs":{},"配":{"docs":{},"置":{"docs":{},"从":{"docs":{},"此":{"docs":{},"地":{"docs":{},"址":{"docs":{},"获":{"docs":{},"取":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"。":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"查":{"docs":{},"看":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"异":{"docs":{},"常":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"及":{"docs":{},"时":{"docs":{},"发":{"docs":{},"出":{"docs":{},"告":{"docs":{},"警":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"表":{"docs":{},"全":{"docs":{},"部":{"docs":{},"列":{"docs":{},"或":{"docs":{},"部":{"docs":{},"分":{"docs":{},"列":{"docs":{},".":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}},"以":{"docs":{},"引":{"docs":{},"用":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"列":{"docs":{},"名":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"查":{"docs":{},"看":{"docs":{},"节":{"docs":{},"点":{"docs":{},"名":{"docs":{},"、":{"docs":{},"节":{"docs":{},"点":{"docs":{},"i":{"docs":{},"d":{"docs":{},"和":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"部":{"docs":{},"分":{"docs":{},"项":{"docs":{},"省":{"docs":{},"略":{"docs":{},")":{"docs":{},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"“":{"docs":{},"类":{"docs":{},"定":{"docs":{},"义":{"docs":{},"”":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"取":{"docs":{},"值":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"填":{"docs":{},"写":{"docs":{},"多":{"docs":{},"元":{"docs":{},"素":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}},"增":{"docs":{},"加":{"docs":{},"传":{"docs":{},"输":{"docs":{},"时":{"docs":{},"压":{"docs":{},"缩":{"docs":{},"率":{"docs":{},",":{"docs":{},"适":{"docs":{},"合":{"docs":{},"低":{"docs":{},"带":{"docs":{},"宽":{"docs":{},"网":{"docs":{},"络":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}}}}}}}}}}},"多":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"模":{"docs":{},"式":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}},"处":{"docs":{},"理":{"docs":{},"模":{"docs":{},"式":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}},"通":{"docs":{},"道":{"docs":{},"模":{"docs":{},"式":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}},"源":{"docs":{},"/":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"目":{"docs":{},"标":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}},"通":{"docs":{},"道":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.0390625}},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}}}}},"的":{"docs":{},"表":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"多":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"配":{"docs":{},"置":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}},"部":{"docs":{},"署":{"docs":{},"配":{"docs":{},"置":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}},",":{"docs":{},"多":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}},"库":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"结":{"docs":{},"果":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}},"表":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"结":{"docs":{},"果":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},".":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}},"提":{"docs":{},"供":{"docs":{},"可":{"docs":{},"靠":{"docs":{},"的":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"存":{"docs":{},"储":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}}},"告":{"docs":{},"警":{"docs":{},"功":{"docs":{},"能":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}},"数":{"docs":{},"据":{"docs":{},"扩":{"docs":{},"容":{"docs":{},"方":{"docs":{},"案":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}},"取":{"docs":{},"字":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}},"全":{"docs":{},"部":{"docs":{},"列":{"docs":{},"或":{"docs":{},"部":{"docs":{},"分":{"docs":{},"列":{"docs":{},".":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}},"交":{"docs":{},")":{"docs":{},"或":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"代":{"docs":{},"码":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}},"功":{"docs":{},"能":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}},"缺":{"docs":{},"陷":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}},"支":{"docs":{},"持":{"1":{"docs":{},":":{"1":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}},"docs":{},"n":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"拆":{"docs":{},"分":{"docs":{},",":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}}},"2":{"docs":{},"g":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}}}}}}},"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125},"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.4375},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.06843373493975903},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.08450704225352113},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.015527950310559006},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.09090909090909091}},"认":{"docs":{},"证":{"docs":{},"方":{"docs":{},"式":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}},"g":{"docs":{},"r":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}},"同":{"docs":{},"构":{"docs":{},"传":{"docs":{},"输":{"docs":{},"和":{"docs":{},"异":{"docs":{},"构":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}}}},"回":{"docs":{},"环":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}},"多":{"docs":{},"对":{"docs":{},"多":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}}},"库":{"docs":{},"/":{"docs":{},"表":{"docs":{},"/":{"docs":{},"行":{"docs":{},"级":{"docs":{},"别":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"故":{"docs":{},"障":{"docs":{},"转":{"docs":{},"移":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}},"跨":{"docs":{},"网":{"docs":{},"络":{"docs":{},"边":{"docs":{},"际":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}}}},"链":{"docs":{},"路":{"docs":{},"压":{"docs":{},"缩":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}},"n":{"docs":{},":":{"1":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"汇":{"docs":{},"聚":{"docs":{},",":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}},"docs":{}}},"网":{"docs":{},"络":{"docs":{},"内":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}},";":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}},"按":{"docs":{},"主":{"docs":{},"键":{"docs":{},"分":{"docs":{},"发":{"docs":{},";":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.02734375}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"的":{"docs":{},"增":{"docs":{},"量":{"docs":{},"部":{"docs":{},"分":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"(":{"docs":{},"须":{"docs":{},"创":{"docs":{},"建":{"docs":{},"库":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},")":{"docs":{},",":{"docs":{},"但":{"docs":{},"存":{"docs":{},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"字":{"docs":{},"符":{"docs":{},"集":{"docs":{},"不":{"docs":{},"完":{"docs":{},"全":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"#":{"3":{"5":{"7":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"(":{"docs":{},"多":{"docs":{},"租":{"docs":{},"户":{"docs":{},",":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"增":{"docs":{},"量":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"(":{"docs":{},"须":{"docs":{},"创":{"docs":{},"建":{"docs":{},"实":{"docs":{},"例":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},")":{"docs":{},",":{"docs":{},"且":{"docs":{},"支":{"docs":{},"持":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"(":{"docs":{},"要":{"docs":{},"求":{"docs":{},"回":{"docs":{},"放":{"docs":{},"用":{"docs":{},"户":{"docs":{},"有":{"docs":{},"g":{"docs":{},"r":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"级":{"docs":{},"默":{"docs":{},"认":{"docs":{},"字":{"docs":{},"符":{"docs":{},"集":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"情":{"docs":{},"形":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}},"字":{"docs":{},"符":{"docs":{},"集":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{},"、":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"2":{"docs":{},"、":{"docs":{},"g":{"docs":{},"b":{"docs":{},"k":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},"m":{"docs":{},"b":{"4":{"docs":{},"、":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}},"docs":{}}}},"docs":{}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}},"复":{"docs":{},"制":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.014423076923076924}}},"更":{"docs":{},"丰":{"docs":{},"富":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}}}},"多":{"docs":{},"种":{"docs":{},"类":{"docs":{},"的":{"docs":{},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"间":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"迁":{"docs":{},"移":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"过":{"docs":{},"滤":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}},"后":{"docs":{},"处":{"docs":{},"理":{"docs":{},"件":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}}}}},"分":{"docs":{},"散":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}},"冲":{"docs":{},"突":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"传":{"docs":{},"输":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}}},"库":{"docs":{},"用":{"docs":{},"户":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"拥":{"docs":{},"有":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}},"映":{"docs":{},"射":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"多":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}},"延":{"docs":{},"迟":{"docs":{},"(":{"docs":{},"源":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"管":{"docs":{},"理":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":2.52}},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"放":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"时":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"密":{"docs":{},"码":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"服":{"docs":{},"务":{"docs":{},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"用":{"docs":{},"户":{"docs":{},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"集":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"端":{"docs":{},"口":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}},"产":{"docs":{},"生":{"docs":{},"量":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}},"变":{"docs":{},"换":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}},"是":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.046583850931677016},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.014705882352941176},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.25}},"上":{"docs":{},"海":{"docs":{},"爱":{"docs":{},"可":{"docs":{},"生":{"docs":{},"信":{"docs":{},"息":{"docs":{},"技":{"docs":{},"术":{"docs":{},"股":{"docs":{},"份":{"docs":{},"有":{"docs":{},"限":{"docs":{},"公":{"docs":{},"司":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}}}}}}}}}}}}}}},"否":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}},"输":{"docs":{},"出":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"跳":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"事":{"docs":{},"件":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"概":{"docs":{},"述":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}},"集":{"docs":{},"群":{"docs":{},"模":{"docs":{},"式":{"docs":{"0/0_overview.html":{"ref":"0/0_overview.html","tf":0.030303030303030304}}}},"相":{"docs":{},"关":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}},"合":{"docs":{},".":{"docs":{},")":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"兼":{"docs":{},"容":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},"/":{"docs":{},"聚":{"docs":{},"合":{"docs":{},"/":{"docs":{},"分":{"docs":{},"散":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}}}}}}}}}},"层":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"此":{"docs":{},"地":{"docs":{},"址":{"docs":{},"使":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}},"端":{"docs":{},"口":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"单":{"docs":{},"一":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"实":{"docs":{},"例":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}},"数":{"docs":{},"据":{"docs":{},"通":{"docs":{},"道":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}},"向":{"docs":{},"数":{"docs":{},"据":{"docs":{},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"常":{"docs":{},"见":{"docs":{},"场":{"docs":{},"景":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"单":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}},"多":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}},"个":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.09765625}},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}}}}},"的":{"docs":{},"不":{"docs":{},"同":{"docs":{},"表":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}},"同":{"docs":{},"一":{"docs":{},"表":{"docs":{},"的":{"docs":{},"不":{"docs":{},"同":{"docs":{},"记":{"docs":{},"录":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}}}}}}}}}}}},"位":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"为":{"docs":{},"事":{"docs":{},"务":{"docs":{},"组":{"docs":{},"数":{"docs":{},"。":{"docs":{},"事":{"docs":{},"务":{"docs":{},"组":{"docs":{},"大":{"docs":{},"小":{"docs":{},"和":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"毫":{"docs":{},"秒":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}},"库":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"结":{"docs":{},"果":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}},"表":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"结":{"docs":{},"果":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"目":{"docs":{},"标":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}},"步":{"docs":{},"库":{"docs":{},"/":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"m":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}},"起":{"docs":{},"点":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"结":{"docs":{},"果":{"docs":{},"以":{"docs":{},"纳":{"docs":{},"秒":{"docs":{},"保":{"docs":{},"存":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"本":{"docs":{},"体":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"的":{"docs":{},".":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}},"上":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"处":{"docs":{},"理":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.0625}},"该":{"docs":{},"行":{"docs":{},"变":{"docs":{},"更":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"将":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"源":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"源":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}},"源":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"通":{"docs":{},"过":{"docs":{},"公":{"docs":{},"网":{"docs":{},"连":{"docs":{},"通":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}},"从":{"docs":{},"未":{"docs":{},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"开":{"docs":{},"始":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"目":{"docs":{},"录":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"爱":{"docs":{},"可":{"docs":{},"生":{"docs":{},"工":{"docs":{},"程":{"docs":{},"师":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"您":{"docs":{},"诊":{"docs":{},"断":{"docs":{},"故":{"docs":{},"障":{"docs":{},"。":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}}}},"拆":{"docs":{},"分":{"docs":{},"到":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}},"按":{"docs":{},"数":{"docs":{},"据":{"docs":{},"源":{"docs":{},"/":{"docs":{},"数":{"docs":{},"据":{"docs":{},"目":{"docs":{},"标":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"关":{"docs":{},"系":{"docs":{},"划":{"docs":{},"分":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}}}}}}}}}},"网":{"docs":{},"络":{"docs":{},"类":{"docs":{},"型":{"docs":{},"划":{"docs":{},"分":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}},"集":{"docs":{},"群":{"docs":{},"规":{"docs":{},"模":{"docs":{},"划":{"docs":{},"分":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}},"格":{"docs":{},"式":{"docs":{},"填":{"docs":{},"写":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"提":{"docs":{},"交":{"docs":{},"即":{"docs":{},"可":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}}}}}}}}}}}},"照":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},"的":{"docs":{},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}}}}}},"等":{"docs":{},"功":{"docs":{},"能":{"docs":{},")":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}},"待":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"事":{"docs":{},"务":{"docs":{},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"达":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"大":{"docs":{},"小":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"字":{"docs":{},"节":{"docs":{},")":{"docs":{},"后":{"docs":{},"将":{"docs":{},"该":{"docs":{},"包":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"并":{"docs":{},"发":{"docs":{},"送":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"达":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"大":{"docs":{},"小":{"docs":{},"(":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"字":{"docs":{},"节":{"docs":{},")":{"docs":{},"后":{"docs":{},"发":{"docs":{},"送":{"docs":{},"该":{"docs":{},"包":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}},"超":{"docs":{},"时":{"docs":{},"时":{"docs":{},"间":{"docs":{},"(":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"毫":{"docs":{},"秒":{"docs":{},")":{"docs":{},"发":{"docs":{},"送":{"docs":{},"该":{"docs":{},"包":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"毫":{"docs":{},"秒":{"docs":{},")":{"docs":{},"发":{"docs":{},"送":{"docs":{},"该":{"docs":{},"包":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"聚":{"docs":{},"合":{"docs":{},"到":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}},"链":{"docs":{},"路":{"docs":{},"压":{"docs":{},"缩":{"docs":{},"/":{"docs":{},"链":{"docs":{},"路":{"docs":{},"限":{"docs":{},"流":{"docs":{"1/1.0_mysql_replication.html":{"ref":"1/1.0_mysql_replication.html","tf":0.03125}}}}}}}}},"管":{"docs":{},"理":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}},"不":{"docs":{},"会":{"docs":{},"重":{"docs":{},"复":{"docs":{},"传":{"docs":{},"输":{"docs":{},"同":{"docs":{},"一":{"docs":{},"事":{"docs":{},"务":{"docs":{},".":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}},"需":{"docs":{},"高":{"docs":{},"权":{"docs":{},"限":{"docs":{},"即":{"docs":{},"可":{"docs":{},"实":{"docs":{},"现":{"docs":{},"数":{"docs":{},"据":{"docs":{},"复":{"docs":{},"制":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}}},"同":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"支":{"docs":{},"持":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.006265060240963855},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},"建":{"docs":{},"表":{"docs":{},"语":{"docs":{},"句":{"docs":{},"包":{"docs":{},"含":{"docs":{},"i":{"docs":{},"f":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}},"按":{"docs":{},"函":{"docs":{},"数":{"docs":{},"分":{"docs":{},"发":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.02734375}}}}}}},"外":{"docs":{},"键":{"docs":{},"约":{"docs":{},"束":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"/":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"s":{"docs":{},"查":{"docs":{},"询":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}},"原":{"docs":{},"因":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"必":{"docs":{},"要":{"docs":{},"保":{"docs":{},"障":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}},"带":{"docs":{},"约":{"docs":{},"束":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"库":{"docs":{},"创":{"docs":{},"建":{"docs":{},"复":{"docs":{},"制":{"docs":{},"库":{"docs":{},"和":{"docs":{},"复":{"docs":{},"制":{"docs":{},"表":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"原":{"docs":{},"生":{"docs":{},"端":{"docs":{},"口":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"表":{"docs":{},"现":{"docs":{},"、":{"docs":{},"特":{"docs":{},"征":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"回":{"docs":{},"环":{"docs":{},"状":{"docs":{},"况":{"docs":{},"进":{"docs":{},"行":{"docs":{},"判":{"docs":{},"断":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"从":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"中":{"docs":{},"储":{"docs":{},"存":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"继":{"docs":{},"续":{"docs":{},"复":{"docs":{},"制":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}},"在":{"3":{"docs":{},".":{"2":{"1":{"docs":{},".":{"1":{"0":{"docs":{},".":{"0":{"docs":{},"以":{"docs":{},"前":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"回":{"docs":{},"放":{"docs":{},"时":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"维":{"docs":{},"持":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"性":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"是":{"docs":{},"以":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"方":{"docs":{},"式":{"docs":{},"进":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{},".":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}}}}}}},"链":{"docs":{},"路":{"docs":{},"上":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"界":{"docs":{},"面":{"docs":{},",":{"docs":{},"点":{"docs":{},"击":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"字":{"docs":{},"段":{"docs":{},"增":{"docs":{},"加":{"docs":{},"若":{"docs":{},"干":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"详":{"docs":{},"情":{"docs":{},"参":{"docs":{},"考":{"4":{"docs":{},".":{"3":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"源":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"将":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"设":{"docs":{},"为":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"和":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"2":{"docs":{},"中":{"docs":{},"分":{"docs":{},"别":{"docs":{},"插":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}},"docs":{}}}}}},"docs":{},"中":{"docs":{},"插":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"中":{"docs":{},"创":{"docs":{},"建":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"写":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"中":{"docs":{},"创":{"docs":{},"建":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"参":{"docs":{},"与":{"docs":{},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"表":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"网":{"docs":{},"络":{"docs":{},"中":{"docs":{},"分":{"docs":{},"别":{"docs":{},"创":{"docs":{},"建":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},"的":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"源":{"docs":{},"端":{"docs":{},"执":{"docs":{},"行":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{},"/":{"2":{"docs":{},"表":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"非":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"字":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{},"中":{"docs":{},"文":{"docs":{},")":{"docs":{},"(":{"docs":{},"#":{"3":{"8":{"8":{"docs":{},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}},"回":{"docs":{},"放":{"docs":{},"时":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}},"修":{"docs":{},"改":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"点":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"上":{"docs":{},"访":{"docs":{},"问":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"段":{"docs":{},"落":{"docs":{},"中":{"docs":{},"填":{"docs":{},"写":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"专":{"docs":{},"有":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"地":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"以":{"docs":{},"充":{"docs":{},"分":{"docs":{},"利":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"压":{"docs":{},"缩":{"docs":{},"传":{"docs":{},"输":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"不":{"docs":{},"同":{"docs":{},"功":{"docs":{},"能":{"docs":{},"时":{"docs":{},",":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"双":{"docs":{},"写":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}},"数":{"docs":{},"据":{"docs":{},"源":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}},"存":{"docs":{},"在":{"docs":{},"外":{"docs":{},"键":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"表":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"这":{"docs":{},"些":{"docs":{},"表":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"正":{"docs":{},"常":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},"编":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},",":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"中":{"docs":{},"含":{"docs":{},"有":{"docs":{},"混":{"docs":{},"合":{"docs":{},"编":{"docs":{},"码":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"如":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"=":{"0":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"总":{"docs":{},"行":{"docs":{},",":{"docs":{},"该":{"docs":{},"列":{"docs":{},"批":{"docs":{},"量":{"docs":{},"储":{"docs":{},"存":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"编":{"docs":{},"号":{"docs":{},",":{"docs":{},"如":{"1":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"双":{"docs":{},"向":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}},"纯":{"docs":{},"增":{"docs":{},"量":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"时":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"用":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"指":{"docs":{},"定":{"docs":{},"复":{"docs":{},"制":{"docs":{},"起":{"docs":{},"点":{"docs":{},"(":{"docs":{},"进":{"docs":{},"度":{"docs":{},")":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"。":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"跨":{"docs":{},"网":{"docs":{},"段":{"docs":{},"的":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"集":{"docs":{},"群":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"配":{"docs":{},"置":{"docs":{},"上":{"docs":{},"层":{"docs":{},"路":{"docs":{},"由":{"docs":{},"地":{"docs":{},"址":{"docs":{},"并":{"docs":{},"在":{"docs":{},"各":{"docs":{},"级":{"docs":{},"路":{"docs":{},"由":{"docs":{},"配":{"docs":{},"置":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"端":{"docs":{},"口":{"docs":{},"映":{"docs":{},"射":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"多":{"docs":{},"行":{"docs":{},"的":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"会":{"docs":{},"按":{"docs":{},"行":{"docs":{},"分":{"docs":{},"开":{"docs":{},"处":{"docs":{},"理":{"docs":{},"、":{"docs":{},"传":{"docs":{},"输":{"docs":{},"并":{"docs":{},"执":{"docs":{},"行":{"docs":{},"(":{"docs":{},"但":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"仍":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"事":{"docs":{},"务":{"docs":{},"提":{"docs":{},"交":{"docs":{},")":{"docs":{},"。":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"上":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"服":{"docs":{},"务":{"docs":{},"给":{"docs":{},"予":{"docs":{},"的":{"docs":{},"权":{"docs":{},"限":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"适":{"docs":{},"配":{"docs":{},",":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}}}}}}}},"的":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},"(":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"表":{"docs":{},")":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"需":{"docs":{},"要":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"权":{"docs":{},"限":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}}},"链":{"docs":{},"路":{"docs":{},"提":{"docs":{},"供":{"docs":{},"限":{"docs":{},"流":{"docs":{},"参":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}},"更":{"docs":{},"适":{"docs":{},"合":{"docs":{},"于":{"docs":{},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},".":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}}}}},"多":{"docs":{},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{"1/1.1_bidirectional_replication.html":{"ref":"1/1.1_bidirectional_replication.html","tf":0.05263157894736842}}}}}}}}}}},"d":{"docs":{},"c":{"docs":{},"的":{"docs":{},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}},">":{"1":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035},"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.013972055888223553},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01650943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.011611030478955007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02735562310030395},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"b":{"0":{"docs":{},"a":{"2":{"2":{"7":{"docs":{},"c":{"1":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"2":{"7":{"4":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}},"docs":{}},"docs":{}},"3":{"2":{"2":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}},"docs":{}},"8":{"docs":{},"b":{"docs":{},"f":{"docs":{},"e":{"7":{"6":{"0":{"7":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}},"9":{"1":{"0":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}},"docs":{}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.018518518518518517},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"与":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"不":{"docs":{},"符":{"docs":{},")":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}}}}},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}},"_":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"y":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"储":{"docs":{},"存":{"docs":{},"位":{"docs":{},"置":{"docs":{},"为":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}},"暂":{"docs":{},"存":{"docs":{},"到":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"本":{"docs":{},"地":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.04},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"p":{"docs":{},"o":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"读":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"=":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"d":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}},"y":{"docs":{},"(":{"1":{"6":{"docs":{},")":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}},"docs":{}},"docs":{}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}},".":{"0":{"0":{"0":{"0":{"0":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"docs":{}},"7":{"5":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"/":{"1":{"1":{"9":{"0":{"9":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"i":{"docs":{},"/":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465}}}}}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0024096385542168677}}}}},"_":{"docs":{},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"s":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"都":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"等":{"docs":{},"待":{"docs":{},"模":{"docs":{},"式":{"docs":{},"。":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"d":{"1":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}},"docs":{}}},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}},"e":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308}}}}}}}}}}}}}}},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.013368983957219251}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.011461318051575931}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"d":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.005093919134033747}}}}},"r":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"s":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"i":{"docs":{},"c":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}},"e":{"6":{"4":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}},"docs":{}},"docs":{}}},"c":{"docs":{},"k":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"u":{"docs":{},"g":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}},"#":{"8":{"3":{"0":{"3":{"0":{"docs":{},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}},"(":{"docs":{},"源":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"l":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"1":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"2":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"3":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"docs":{}}}}}}}}}},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"两":{"docs":{},"节":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},".":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}}}}}}},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"权":{"docs":{},"限":{"docs":{},"是":{"docs":{},"以":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},".":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"有":{"docs":{},"云":{"docs":{},"间":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035},"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}}}}},"式":{"docs":{},"示":{"docs":{},"例":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"为":{"docs":{},":":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}}},"和":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":2.011904761904762},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.06818181818181818},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016},"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}},"与":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"配":{"docs":{},"套":{"docs":{},"使":{"docs":{},"用":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"导":{"docs":{},"致":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}},"出":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"主":{"docs":{},"要":{"docs":{},"意":{"docs":{},"义":{"docs":{},"在":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"复":{"docs":{},"制":{"docs":{},"进":{"docs":{},"度":{"docs":{},"。":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"适":{"docs":{},"配":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}},"数":{"docs":{},"据":{"docs":{},"扫":{"docs":{},"描":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}}}}},"缓":{"docs":{},"存":{"docs":{},"刷":{"docs":{},"新":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}}}}},"三":{"docs":{},"节":{"docs":{},"点":{"docs":{},"集":{"docs":{},"群":{"docs":{},"部":{"docs":{},"署":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"触":{"docs":{},"发":{"docs":{},"器":{"docs":{},"检":{"docs":{},"查":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}},"阿":{"docs":{},"里":{"docs":{},"云":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}},"到":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"的":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},"版":{"docs":{"1/1.2_sync_between_cloud.html":{"ref":"1/1.2_sync_between_cloud.html","tf":0.037037037037037035}}}}},"技":{"docs":{},"术":{"docs":{},"指":{"docs":{},"标":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}},"当":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"时":{"docs":{},",":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.15384615384615385}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"执":{"docs":{},"行":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"时":{"docs":{},",":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}}},"m":{"docs":{},"l":{"docs":{},"时":{"docs":{},",":{"docs":{},"同":{"docs":{},"步":{"docs":{},"字":{"docs":{},"段":{"docs":{},"变":{"docs":{},"更":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"是":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"时":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"发":{"docs":{},"生":{"docs":{},"故":{"docs":{},"障":{"docs":{},"时":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"发":{"docs":{},"生":{"docs":{},"故":{"docs":{},"障":{"docs":{},"时":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"8":{"docs":{},".":{"0":{"docs":{},"语":{"docs":{},"法":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"docs":{}}},"docs":{}}}},"写":{"docs":{},"入":{"docs":{},"速":{"docs":{},"率":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}},"发":{"docs":{},"送":{"docs":{},"速":{"docs":{},"率":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}},"解":{"docs":{},"析":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"无":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"完":{"docs":{},"整":{"docs":{},"数":{"docs":{},"据":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.014423076923076924}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"报":{"docs":{},"错":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"3":{"0":{"docs":{},"分":{"docs":{},"钟":{"docs":{},"内":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"重":{"docs":{},"启":{"docs":{},"最":{"docs":{},"多":{"docs":{},"两":{"docs":{},"次":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"大":{"docs":{},"于":{"1":{"docs":{},"时":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}}}},"执":{"docs":{},"行":{"docs":{},"发":{"docs":{},"生":{"docs":{},"某":{"docs":{},"些":{"docs":{},"错":{"docs":{},"误":{"docs":{},"时":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},",":{"docs":{},"重":{"docs":{},"试":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"次":{"docs":{},"数":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"批":{"docs":{},"量":{"docs":{},"插":{"docs":{},"入":{"docs":{},",":{"docs":{},"即":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},"中":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}},"出":{"docs":{},"现":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"处":{"docs":{},"理":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"等":{"docs":{},"待":{"docs":{},"该":{"docs":{},"段":{"docs":{},"数":{"docs":{},"据":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"毕":{"docs":{},"才":{"docs":{},"会":{"docs":{},"获":{"docs":{},"取":{"docs":{},"下":{"docs":{},"一":{"docs":{},"批":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"数":{"docs":{},"量":{"docs":{},"达":{"docs":{},"到":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}},"缓":{"docs":{},"存":{"docs":{},"件":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.07692307692307693}}},"/":{"docs":{},"队":{"docs":{},"列":{"docs":{},"状":{"docs":{},"态":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}},"通":{"docs":{},"知":{"docs":{"1/1.3_mysql_kafka.html":{"ref":"1/1.3_mysql_kafka.html","tf":0.15384615384615385}}},"过":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"配":{"docs":{},"置":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"对":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"异":{"docs":{},"常":{"docs":{},"任":{"docs":{},"务":{"docs":{},"发":{"docs":{},"出":{"docs":{},"告":{"docs":{},"警":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}},"网":{"docs":{},"络":{"docs":{},"压":{"docs":{},"缩":{"docs":{},"传":{"docs":{},"输":{"docs":{},"数":{"docs":{},"据":{"docs":{},".":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}}}},"用":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"问":{"docs":{},"题":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.021447721179624665},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.012422360248447204},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":2.519230769230769},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"e":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"1/1.4_oracle_mysql.html":{"ref":"1/1.4_oracle_mysql.html","tf":0.125},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"=":{"docs":{},"/":{"docs":{},"u":{"0":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"1":{"1":{"docs":{},".":{"2":{"docs":{},".":{"0":{"docs":{},"/":{"docs":{},"x":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},"=":{"docs":{},"x":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776}}}}}}}},"源":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}},"_":{"docs":{},"b":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"’":{"docs":{},",":{"docs":{},"回":{"docs":{},"放":{"docs":{},"用":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"权":{"docs":{},"的":{"docs":{},"权":{"docs":{},"限":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"r":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}},"l":{"docs":{},"d":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"不":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},",":{"docs":{},"无":{"docs":{},"法":{"docs":{},"执":{"docs":{},"行":{"docs":{},"该":{"docs":{},"语":{"docs":{},"句":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}}}}}}}}}}}},"4":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"5":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"6":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}},"数":{"docs":{},"组":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.016555237185609677}}},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"调":{"docs":{},"试":{"docs":{},"模":{"docs":{},"式":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}},":":{"8":{"1":{"9":{"3":{"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"1":{"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"docs":{}}},"docs":{}},"8":{"docs":{},".":{"3":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"docs":{}}},"docs":{}},"e":{"7":{"0":{"6":{"3":{"6":{"docs":{},"d":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"1":{"0":{"docs":{},".":{"1":{"8":{"6":{"docs":{},".":{"6":{"3":{"docs":{},".":{"2":{"0":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"3":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"7":{"6":{"docs":{},":":{"8":{"5":{"0":{"0":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"\"":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"docs":{}}},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}},"7":{"docs":{},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"8":{"docs":{},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{},"\"":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}},"3":{"docs":{},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"k":{"docs":{},"v":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"a":{"docs":{},"a":{"docs":{},"/":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"?":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"\"":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"\"":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}},"?":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308}},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},"s":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"7":{"2":{"docs":{},".":{"2":{"2":{"docs":{},".":{"0":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"3":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"3":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"0":{"docs":{},".":{"1":{"7":{"docs":{},"\"":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014}}},":":{"4":{"6":{"4":{"6":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"s":{"docs":{},"\"":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},"h":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"3":{"0":{"docs":{},"m":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"s":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}},"9":{"docs":{},".":{"9":{"docs":{},".":{"9":{"docs":{},".":{"9":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.025},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{},"_":{"1":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"docs":{}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{},"_":{"1":{"docs":{},"\"":{"docs":{},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}}}}},"u":{"docs":{},"l":{"1":{"docs":{},"\"":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"docs":{}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}}}}}}},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}}}}}}}},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}}}}}}}}},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"0":{"0":{"0":{"0":{"7":{"5":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"1":{"8":{"7":{"1":{"6":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"\"":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}},".":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"f":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"=":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}},"c":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"docs":{},"l":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"1":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.025089605734767026}}}},"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"d":{"docs":{},"l":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"\"":{"4":{"1":{"docs":{},"f":{"1":{"0":{"2":{"docs":{},"d":{"4":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"c":{"docs":{},"d":{"7":{"docs":{},"d":{"1":{"9":{"5":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"r":{"docs":{},"m":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}},"s":{"docs":{},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"y":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.008064516129032258}},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"t":{"3":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.008064516129032258}}}}},"docs":{}},"6":{"4":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.010080645161290322}}}}},"docs":{}},"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"z":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},".":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}},"d":{"docs":{},"b":{"docs":{},"c":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"2":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.015968063872255488},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.014150943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.011611030478955007},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0121580547112462},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.012096774193548387}}}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"1":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}},"2":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}},"3":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"docs":{}}}},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"。":{"docs":{},"详":{"docs":{},"见":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"w":{"docs":{},"_":{"1":{"docs":{},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}},"3":{"docs":{},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}},"docs":{}}}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"\"":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"0":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}}}}}},"docs":{}}}}}}}}}}}}}},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"\"":{"3":{"3":{"0":{"6":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}},"[":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"m":{"docs":{},"a":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}},"w":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},"}":{"docs":{},",":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"r":{"docs":{},"c":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}}}}}}}},"c":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"\"":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}}}},"2":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}}}},"3":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}}}},"docs":{}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"s":{"docs":{},"\"":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.02620967741935484}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.010080645161290322}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"t":{"1":{"docs":{},"\"":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}},"\"":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004819277108433735}},"[":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}},"{":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"(":{"docs":{},"\\":{"docs":{},"\\":{"docs":{},"w":{"docs":{},"*":{"docs":{},")":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"(":{"docs":{},"\\":{"docs":{},"\\":{"docs":{},"w":{"docs":{},"*":{"docs":{},")":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"$":{"docs":{},"{":{"1":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.006746987951807229}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"(":{"docs":{},"\\":{"docs":{},"\\":{"docs":{},"w":{"docs":{},"*":{"docs":{},")":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\\":{"docs":{},"\\":{"docs":{},"w":{"docs":{},"*":{"docs":{},")":{"docs":{},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}},"\"":{"docs":{},"$":{"docs":{},"{":{"1":{"docs":{},"}":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}},"docs":{}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"\"":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}},"s":{"docs":{},"k":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},".":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"\"":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.056451612903225805}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"b":{"1":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.014336917562724014}}}},"docs":{}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"\"":{"docs":{},":":{"1":{"5":{"9":{"9":{"1":{"3":{"0":{"9":{"1":{"5":{"7":{"1":{"7":{"8":{"5":{"8":{"0":{"0":{"0":{"docs":{},"}":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"s":{"docs":{},"_":{"docs":{},"m":{"docs":{},"s":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"\"":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"x":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"x":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"/":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"f":{"6":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"8":{"5":{"3":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}},"docs":{}},"docs":{}},"docs":{}}}}},"7":{"4":{"docs":{},"a":{"docs":{},"a":{"docs":{},"c":{"docs":{},"b":{"5":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}},"docs":{}}}}}},"docs":{}},"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776}}}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.05241935483870968}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.010080645161290322}}}}}}}},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"a":{"docs":{},">":{"docs":{},"=":{"5":{"docs":{},"\"":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}},"docs":{}}},"其":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},":":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}}}}}}}}}}}}}}}}}}},"=":{"docs":{},"\"":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}}}},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"docs":{}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}}},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.056451612903225805}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"l":{"docs":{},"d":{"docs":{},"_":{"1":{"docs":{},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0024096385542168677}}}},"2":{"docs":{},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}},"docs":{}}}},"u":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},"}":{"docs":{},",":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"x":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"a":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{},"_":{"1":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108}}}}},"2":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}},"docs":{}}}}}}}}},"d":{"7":{"docs":{},"d":{"1":{"9":{"5":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"b":{"docs":{},"c":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"g":{"docs":{},"h":{"docs":{},"i":{"docs":{},"j":{"docs":{},"k":{"docs":{},"l":{"docs":{},"m":{"docs":{},"n":{"docs":{},"o":{"docs":{},"p":{"docs":{},"q":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"v":{"docs":{},"w":{"docs":{},"x":{"docs":{},"y":{"docs":{},"z":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"x":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"x":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"k":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"\"":{"docs":{},":":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}},".":{"0":{"0":{"0":{"0":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"e":{"docs":{},"i":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"]":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"n":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"2":{"9":{"9":{"docs":{},",":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"\"":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}},"]":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"\"":{"docs":{},"]":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}}}}}},"暂":{"docs":{},"停":{"docs":{},"/":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"被":{"docs":{},"\"":{"docs":{},"删":{"docs":{},"除":{"docs":{},"/":{"docs":{},"添":{"docs":{},"加":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"代":{"docs":{},"替":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},".":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}},"#":{"3":{"6":{"1":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}},"docs":{}},"docs":{}},"5":{"8":{"6":{"3":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"docs":{}},"docs":{}},"docs":{}},"8":{"4":{"0":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}},"docs":{}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.03571428571428571},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.013062409288824383},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.06711409395973154},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.033816425120772944},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.022099447513812154},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.04},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.0707070707070707},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.012032085561497326},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"#":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"'":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"'":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}},"[":{"docs":{},"]":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}},"'":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"'":{"docs":{},"@":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}},";":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"'":{"docs":{},"@":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"@":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"k":{"docs":{},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}},"/":{"docs":{},"u":{"0":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"/":{"docs":{},"x":{"docs":{},"e":{"docs":{},"/":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"0":{"1":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"'":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"2":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"'":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"3":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"'":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"'":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"'":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}},"docs":{}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}}}}}}}}}}}}}}}},"m":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"g":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"5":{"8":{"7":{"docs":{},"'":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"t":{"1":{"0":{"docs":{},"'":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}},"docs":{}},"7":{"docs":{},"'":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"s":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},"'":{"docs":{},"@":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"'":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"'":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"'":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}},"@":{"docs":{},"@":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\\":{"docs":{},"g":{"docs":{},"\"":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"s":{"docs":{},"=":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"。":{"docs":{},"外":{"docs":{},"键":{"docs":{},"的":{"docs":{},"级":{"docs":{},"连":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"如":{"docs":{},"o":{"docs":{},"n":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}},"n":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"触":{"docs":{},"发":{"docs":{},"外":{"docs":{},"键":{"docs":{},"级":{"docs":{},"连":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"u":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},";":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"1":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}},"2":{"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}},"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}},"2":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}},"docs":{}}}}}}}}},"[":{"1":{"docs":{},"]":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.011566265060240964},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.015527950310559006},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.009232728430436167},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.016129032258064516},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.21212121212121213}},"\"":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},":":{"9":{"0":{"9":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}},"docs":{}},"docs":{}},"1":{"9":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"c":{"1":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"docs":{}}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}},"a":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{},"]":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"m":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}},"{":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.021551724137931036},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.01996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.02122641509433962},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.020319303338171262},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.015197568389057751},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.06451612903225806},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}},"]":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007}},",":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}},"'":{"1":{"0":{"docs":{},".":{"1":{"8":{"6":{"docs":{},".":{"6":{"3":{"docs":{},".":{"2":{"0":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"7":{"6":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"1":{"9":{"0":{"docs":{},"'":{"docs":{},",":{"docs":{},"'":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"2":{"docs":{},":":{"8":{"1":{"9":{"0":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"'":{"docs":{},"]":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.01927710843373494}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}},"x":{"docs":{},"]":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.04040404040404041}}}}},"e":{"3":{"7":{"docs":{},"d":{"docs":{},"c":{"docs":{},"f":{"7":{"docs":{},"a":{"4":{"docs":{},"b":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}},"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.031936127744510975},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0330188679245283},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.030395136778115502},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.005988023952095809},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.007075471698113208},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"e":{"docs":{},"=":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}}}}}},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925}}}}},"r":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625},"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.008674698795180723}},"s":{"docs":{},"]":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.01927710843373494}}},",":{"docs":{},"保":{"docs":{},"持":{"docs":{},"库":{"docs":{},"同":{"docs":{},"步":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"_":{"docs":{},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}},"s":{"docs":{},"t":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"_":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}},"p":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"k":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}},"e":{"docs":{},"b":{"3":{"9":{"9":{"docs":{},"e":{"9":{"docs":{},"\"":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.004775549188156638},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}},":":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}},"t":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.036585365853658534}}},"l":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.030303030303030304}}}}},"h":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.02594810379241517},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.025943396226415096},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.0967741935483871},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":2.500636739891754}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},",":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}},",":{"docs":{},"为":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"1":{"9":{"0":{"docs":{},"/":{"docs":{},"v":{"2":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"9":{"0":{"9":{"0":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"$":{"docs":{},"{":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},"}":{"docs":{},":":{"3":{"0":{"0":{"0":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},"}":{"docs":{},":":{"9":{"0":{"9":{"0":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"j":{"docs":{},"q":{"docs":{},"/":{"docs":{},"t":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"#":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.024539877300613498}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"#":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"7":{"8":{"7":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}},"9":{"5":{"docs":{},"#":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"z":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"/":{"docs":{},"#":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"1":{"docs":{},".":{"8":{"docs":{},"/":{"docs":{},"t":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.003183699458771092}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"=":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}},"c":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"j":{"docs":{},"q":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.01293103448275862},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.047619047619047616},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.04294478527607362}},"是":{"docs":{},"一":{"docs":{},"款":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"、":{"docs":{},"提":{"docs":{},"取":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"内":{"docs":{},"容":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"需":{"docs":{},"使":{"docs":{},"用":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"安":{"docs":{},"装":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"b":{"1":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808}}}}}}},"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":2.52},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.06060606060606061},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0066844919786096255},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.017191977077363897},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},",":{"docs":{},"可":{"docs":{},"运":{"docs":{},"行":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"或":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0057306590257879654}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}},"中":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"说":{"docs":{},"明":{"docs":{},"参":{"docs":{},"看":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"差":{"docs":{},"异":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}},"通":{"docs":{},"过":{"docs":{},"以":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},"在":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},".":{"docs":{},"t":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"只":{"docs":{},"复":{"docs":{},"制":{"docs":{},"库":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"但":{"docs":{},"不":{"docs":{},"复":{"docs":{},"制":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"下":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"复":{"docs":{},"制":{"docs":{},"库":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"下":{"docs":{},"除":{"docs":{},"了":{"docs":{},"t":{"docs":{},"b":{"1":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}},"docs":{}}},"表":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"和":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"表":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"效":{"docs":{},"果":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"要":{"docs":{},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"库":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"表":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"及":{"docs":{},"d":{"docs":{},"b":{"1":{"docs":{},"内":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}},"e":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},"e":{"docs":{},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"e":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.007640878701050621}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"、":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"、":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}},"?":{"docs":{},"p":{"docs":{},"u":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"后":{"docs":{},"进":{"docs":{},"度":{"docs":{},"(":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"有":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"两":{"docs":{},"个":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}}}}}}}}}},"d":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{},"需":{"docs":{},"手":{"docs":{},"动":{"docs":{},"填":{"docs":{},"写":{"docs":{},"文":{"docs":{},"件":{"docs":{},"里":{"docs":{},"的":{"docs":{},"密":{"docs":{},"码":{"docs":{},"。":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.00998003992015968},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.010159651669085631},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.015197568389057751},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.04520853231454951}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}}},"=":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}},"t":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125}},"s":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.021551724137931036},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.011976047904191617},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.014150943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02467343976777939},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02735562310030395},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0121580547112462},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"=":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.00998003992015968},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.015197568389057751},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333}}}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}},"w":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"2":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"4":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"5":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"6":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.09523809523809523},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.12903225806451613},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558},"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.06818181818181818},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.05172413793103448},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.025},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.1414141414141414},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"=":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"\"":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"时":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"清":{"docs":{},"除":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"若":{"docs":{},"未":{"docs":{},"清":{"docs":{},"除":{"docs":{},"则":{"docs":{},"需":{"docs":{},"手":{"docs":{},"动":{"docs":{},"清":{"docs":{},"除":{"docs":{},"。":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"可":{"docs":{},"以":{"docs":{},"配":{"docs":{},"置":{"docs":{},"成":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}},"将":{"docs":{},"自":{"docs":{},"动":{"docs":{},"向":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"注":{"docs":{},"册":{"docs":{},",":{"docs":{},"组":{"docs":{},"成":{"docs":{},"集":{"docs":{},"群":{"docs":{},":":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"原":{"docs":{},"生":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"可":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"6":{"4":{"6":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"?":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"=":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"(":{"docs":{},"本":{"docs":{},"体":{"docs":{},")":{"docs":{},"全":{"docs":{},"部":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}},"角":{"docs":{},"色":{"docs":{},"分":{"docs":{},"为":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}},"d":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.04040404040404041},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},"、":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"、":{"docs":{},"各":{"docs":{},"类":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"m":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"n":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.016574585635359115}}}},"t":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"_":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},"e":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.046875},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.008064516129032258}},"`":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0024096385542168677}}}}},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"(":{"6":{"docs":{},")":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"docs":{},"*":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}},",":{"0":{"docs":{},")":{"docs":{},",":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"docs":{},"s":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},",":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"p":{"docs":{},",":{"docs":{},"s":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},"/":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"2":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}}}},"r":{"0":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"2":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"3":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{},"u":{"docs":{},"n":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.00998003992015968},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.00725689404934688},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0243161094224924},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.020202020202020204},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"l":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}},"p":{"docs":{},"m":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.034482758620689655}},"安":{"docs":{},"装":{"docs":{},"包":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"和":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00819277108433735},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}},"2":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}},"3":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}},"docs":{}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776}},"=":{"docs":{},"a":{"docs":{},"l":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.016555237185609677},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"u":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004337349397590362},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0038554216867469878}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"a":{"docs":{},"y":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":3.3717948717948714}},"(":{"docs":{},"中":{"docs":{},"继":{"docs":{},")":{"docs":{},"机":{"docs":{},"制":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.03225806451612903}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.014336917562724014}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"b":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"t":{"docs":{},"x":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0012734797835084368}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0035020694046482012}},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}},"l":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184},"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}},"流":{"docs":{},"程":{"docs":{},"即":{"docs":{},"可":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}},"i":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.04202483285577841}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}},"f":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}},"m":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}},"@":{"1":{"8":{"0":{"docs":{},".":{"1":{"6":{"9":{"docs":{},".":{"6":{"0":{"docs":{},".":{"1":{"4":{"6":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"%":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}},"_":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}}}}},"e":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"w":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.01845018450184502},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},"e":{"docs":{},"为":{"docs":{},"数":{"docs":{},"据":{"docs":{},"行":{"docs":{},"的":{"docs":{},"平":{"docs":{},"均":{"docs":{},"大":{"docs":{},"小":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"l":{"docs":{},"e":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.003183699458771092}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}},"e":{"docs":{},"r":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"s":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.0160857908847185}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"p":{"docs":{},"u":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"{":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}},"w":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}},"t":{"docs":{},"o":{"docs":{},"h":{"docs":{},"e":{"docs":{},"x":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"r":{"docs":{},"(":{"3":{"4":{"docs":{},")":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"docs":{}},"docs":{}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"s":{"docs":{},"a":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}},"u":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.02594810379241517},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.025943396226415096},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"i":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{},"我":{"docs":{},"们":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"组":{"docs":{},"成":{"docs":{},"了":{"3":{"docs":{},"节":{"docs":{},"点":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"个":{"docs":{},"为":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}},"查":{"docs":{},"看":{"docs":{},"接":{"docs":{},"口":{"docs":{},"文":{"docs":{},"档":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"界":{"docs":{},"面":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"界":{"docs":{},"面":{"docs":{},"调":{"docs":{},"用":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"。":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"配":{"docs":{},"套":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.004819277108433735},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.009316770186335404},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"e":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}},"s":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}},"a":{"docs":{},"g":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}},"e":{"docs":{},"r":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.04225352112676056},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.009869468322190385}},"(":{"docs":{},")":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}},";":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"s":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.002228589621139764}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"_":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0077108433734939755},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"t":{"docs":{},"f":{"3":{"2":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"docs":{}},"8":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}},",":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"m":{"docs":{},"b":{"4":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}},"docs":{}}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}},"_":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"i":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}},"docs":{}}}},"x":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.0043541364296081275},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.04},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.03680981595092025}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}}}}}},"x":{"docs":{},"x":{"docs":{},".":{"docs":{},"r":{"docs":{},"p":{"docs":{},"m":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"x":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},".":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"y":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"6":{"4":{"docs":{},";":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}},"docs":{}},"docs":{}}}}}},"e":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749}}}}}}},"m":{"docs":{},"l":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}},"{":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.03017241379310345},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.027944111776447105},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.02358490566037736},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.030478955007256895},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.02952029520295203},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02127659574468085},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.01876675603217158},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.03355704697986577},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.021739130434782608},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.018795180722891568},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.056338028169014086},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.04516129032258064},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.013368983957219251},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.06451612903225806},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.018404907975460124},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.08064516129032258}},"{":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"信":{"docs":{},"息":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"[":{"docs":{},"d":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"|":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.01293103448275862},"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.03571428571428571},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.013972055888223553},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.014150943396226415},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.055350553505535055},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.00804289544235925},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.049079754601226995}}},"}":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.021551724137931036},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.01996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.01179245283018868},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02467343976777939},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.02214022140221402},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.015197568389057751},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.013404825737265416},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.03355704697986577},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.008287292817679558},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.016867469879518072},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.03870967741935484},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0125},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.013368983957219251},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.03942652329749104},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.02620967741935484}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.008620689655172414},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.007984031936127744},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.025089605734767026},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.012269938650306749},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.05443548387096774}}},"]":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.017241379310344827},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.015968063872255488},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.009433962264150943},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.011611030478955007},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.01107011070110701},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0121580547112462},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.010723860589812333},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.06451612903225806},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}},"}":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406}}},"\"":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0014457831325301205}}},"'":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}},"也":{"docs":{},"可":{"docs":{},"不":{"docs":{},"提":{"docs":{},"前":{"docs":{},"建":{"docs":{},"表":{"docs":{},".":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}}}},"将":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}},"以":{"docs":{},"下":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"以":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"快":{"docs":{},"速":{"docs":{},"演":{"docs":{},"示":{"docs":{},"如":{"docs":{},"何":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},"环":{"docs":{},"境":{"docs":{},".":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}},"汇":{"docs":{},"聚":{"docs":{},"复":{"docs":{},"制":{"docs":{},"环":{"docs":{},"境":{"docs":{},".":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"分":{"docs":{},"散":{"docs":{},"环":{"docs":{},"境":{"docs":{},".":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}},"跨":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"的":{"docs":{},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"到":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"单":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},"环":{"docs":{},"境":{"docs":{},".":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"演":{"docs":{},"示":{"docs":{},"如":{"docs":{},"何":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"从":{"docs":{},"阿":{"docs":{},"里":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"到":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"的":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"复":{"docs":{},"制":{"docs":{},".":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}},"体":{"docs":{},"验":{"docs":{},"全":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},"过":{"docs":{},"程":{"docs":{},".":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"p":{"docs":{},"u":{"docs":{},"使":{"docs":{},"用":{"docs":{},"率":{"docs":{},"监":{"docs":{},"控":{"docs":{},"为":{"docs":{},"例":{"docs":{},"配":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"为":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"为":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"为":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}},"储":{"docs":{},"存":{"docs":{},"任":{"docs":{},"务":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"建":{"docs":{},"立":{"docs":{},"大":{"docs":{},"量":{"docs":{},"轻":{"docs":{},"量":{"docs":{},"级":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"够":{"docs":{},"而":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"可":{"docs":{},"适":{"docs":{},"当":{"docs":{},"调":{"docs":{},"小":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"容":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"存":{"docs":{},"估":{"docs":{},"计":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"使":{"docs":{},"用":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}},"估":{"docs":{},"计":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}},"(":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"总":{"docs":{},"计":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"计":{"docs":{},"数":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"占":{"docs":{},"用":{"docs":{},"估":{"docs":{},"算":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}},"系":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}}}}},"准":{"docs":{},"备":{"docs":{},"作":{"docs":{},"业":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"文":{"docs":{},"件":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"数":{"docs":{},"据":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}}},"2":{"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}}}},"docs":{},"_":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}},"2":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}},"docs":{}}}}}}}},"数":{"docs":{},"据":{"docs":{},"阶":{"docs":{},"段":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.003992015968063872}}}}}},"告":{"docs":{},"警":{"docs":{},"规":{"docs":{},"则":{"docs":{},"文":{"docs":{},"件":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"同":{"docs":{},"时":{"docs":{},"接":{"docs":{},"收":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"和":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"源":{"docs":{},"端":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}},"/":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}},"(":{"1":{"docs":{},"个":{"docs":{},")":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"(":{"2":{"docs":{},"个":{"docs":{},")":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}},"docs":{}}}}}}}}},"2":{"docs":{},"个":{"docs":{},")":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"(":{"1":{"docs":{},"个":{"docs":{},")":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}},"docs":{}}}}}}}}},"docs":{}},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}},"网":{"docs":{},"络":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},"d":{"docs":{},"c":{"1":{"docs":{},"到":{"docs":{},"d":{"docs":{},"c":{"2":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"docs":{}}}}},"2":{"docs":{},"到":{"docs":{},"d":{"docs":{},"c":{"1":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}},"docs":{}}}}},"docs":{}}},"两":{"docs":{},"个":{"docs":{},"网":{"docs":{},"络":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"同":{"docs":{},"步":{"docs":{},"账":{"docs":{},"号":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"实":{"docs":{},"例":{"docs":{},"级":{"docs":{},"别":{"docs":{},"迁":{"docs":{},"移":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}},"并":{"docs":{},"插":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207}}}}}}},"相":{"docs":{},"应":{"docs":{},"配":{"docs":{},"置":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"。":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}},"查":{"docs":{},"询":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"提":{"docs":{},"供":{"docs":{},"补":{"docs":{},"全":{"docs":{},")":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"。":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"以":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"可":{"docs":{},"安":{"docs":{},"装":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}}}}},"查":{"docs":{},"看":{"docs":{},"作":{"docs":{},"业":{"docs":{},"状":{"docs":{},"态":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"i":{"docs":{},"d":{"docs":{},"和":{"docs":{},"状":{"docs":{},"态":{"docs":{},":":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"数":{"docs":{},"据":{"docs":{},"是":{"docs":{},"否":{"docs":{},"一":{"docs":{},"致":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}},"d":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"2":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}},"docs":{}}}}}},"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"并":{"docs":{},"记":{"docs":{},"录":{"docs":{},"历":{"docs":{},"史":{"docs":{},"值":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"(":{"docs":{},"以":{"docs":{},"默":{"docs":{},"认":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{},"例":{"docs":{},")":{"docs":{},":":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"本":{"docs":{},"体":{"docs":{},"版":{"docs":{},"本":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"执":{"docs":{},"行":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"运":{"docs":{},"行":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"一":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"插":{"docs":{},"件":{"docs":{},"版":{"docs":{},"本":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}},"个":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"管":{"docs":{},"理":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"节":{"docs":{},"点":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}},"响":{"docs":{},"应":{"docs":{},":":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"询":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"表":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{},"进":{"docs":{},"度":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"找":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"数":{"docs":{},"据":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}},"联":{"docs":{},"通":{"docs":{},":":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0060790273556231},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"是":{"docs":{},"否":{"docs":{},"启":{"docs":{},"动":{"docs":{},"成":{"docs":{},"功":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"的":{"docs":{},"环":{"docs":{},"境":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}},"权":{"docs":{},"限":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}},"阿":{"docs":{},"里":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"的":{"docs":{},"环":{"docs":{},"境":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}},"方":{"docs":{},"式":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}},"此":{"docs":{},"时":{"docs":{},"可":{"docs":{},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"对":{"docs":{},"表":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"进":{"docs":{},"行":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"等":{"docs":{},"各":{"docs":{},"种":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"任":{"docs":{},"一":{"docs":{},"端":{"docs":{},"对":{"docs":{},"表":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"进":{"docs":{},"行":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"等":{"docs":{},"各":{"docs":{},"种":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"命":{"docs":{},"令":{"docs":{},"作":{"docs":{},"为":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"连":{"docs":{},"接":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}},"外":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"工":{"docs":{},"具":{"docs":{},"。":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"将":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"工":{"docs":{},"具":{"docs":{},"和":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"端":{"docs":{},"放":{"docs":{},"在":{"docs":{},"了":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"为":{"1":{"7":{"2":{"docs":{},".":{"2":{"2":{"docs":{},".":{"0":{"docs":{},".":{"2":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"3":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"表":{"docs":{},"示":{"docs":{},"该":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"为":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"\"":{"docs":{},"和":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"e":{"docs":{},"i":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"概":{"docs":{},"要":{"docs":{},"说":{"docs":{},"明":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"后":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"中":{"docs":{},"将":{"docs":{},"附":{"docs":{},"带":{"docs":{},"t":{"docs":{},"x":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"回":{"docs":{},"放":{"docs":{},"时":{"docs":{},"可":{"docs":{},"以":{"docs":{},"利":{"docs":{},"用":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"信":{"docs":{},"息":{"docs":{},"进":{"docs":{},"行":{"docs":{},"调":{"docs":{},"度":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"量":{"docs":{},"约":{"docs":{},"为":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}},"源":{"docs":{},"端":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}},"/":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"连":{"docs":{},"接":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}},"的":{"docs":{},"连":{"docs":{},"接":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},"敏":{"docs":{},"感":{"docs":{},"配":{"docs":{},"置":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}},"都":{"docs":{},"有":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"统":{"docs":{},"计":{"docs":{},",":{"docs":{},"取":{"docs":{},"两":{"docs":{},"者":{"docs":{},"中":{"docs":{},"大":{"docs":{},"值":{"docs":{},"为":{"docs":{},"延":{"docs":{},"迟":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"号":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"事":{"docs":{},"务":{"docs":{},"时":{"docs":{},",":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"中":{"docs":{},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"时":{"docs":{},"间":{"docs":{},"戳":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}},"发":{"docs":{},"送":{"docs":{},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}},"数":{"docs":{},"据":{"docs":{},"时":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"会":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},"项":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{},"指":{"docs":{},"定":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"上":{"docs":{},"故":{"docs":{},"障":{"docs":{},"转":{"docs":{},"移":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}},"任":{"docs":{},"务":{"docs":{},"(":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{},"在":{"docs":{},"d":{"docs":{},"c":{"1":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}},"2":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}},"表":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}},"示":{"docs":{},"此":{"docs":{},"复":{"docs":{},"制":{"docs":{},"是":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}},"从":{"docs":{},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"间":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"复":{"docs":{},"制":{"docs":{},".":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"v":{"4":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"是":{"docs":{},"存":{"docs":{},"储":{"docs":{},"已":{"docs":{},"经":{"docs":{},"回":{"docs":{},"放":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"说":{"docs":{},"明":{"docs":{},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}},"、":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"无":{"docs":{},"p":{"docs":{},"k":{"docs":{},"表":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}},"会":{"docs":{},"包":{"docs":{},"含":{"docs":{},"在":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"统":{"docs":{},"计":{"docs":{},"(":{"docs":{},"未":{"docs":{},"实":{"docs":{},"现":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}},"名":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},"映":{"docs":{},"射":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"多":{"docs":{},"个":{"docs":{},"表":{"docs":{},"同":{"docs":{},"时":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"是":{"docs":{},"乱":{"docs":{},"码":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}}}}},"要":{"docs":{},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"表":{"docs":{},"为":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{"2/2.0_mysql_replication_1_1.html":{"ref":"2/2.0_mysql_replication_1_1.html","tf":0.004310344827586207},"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"1":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}},"docs":{}}}}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.03571428571428571}},"界":{"docs":{},"面":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":2.011904761904762}}}}}},"i":{"docs":{},"n":{"docs":{},"。":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"t":{"docs":{},"h":{"docs":{},".":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"i":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}},"e":{"docs":{},"r":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"r":{"docs":{},"n":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}},";":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}},"为":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}},"另":{"docs":{},"外":{"docs":{},"两":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"也":{"docs":{},"做":{"docs":{},"出":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}},"了":{"docs":{},"便":{"docs":{},"于":{"docs":{},"查":{"docs":{},"看":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"曲":{"docs":{},"线":{"docs":{},"以":{"docs":{},"及":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"高":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"抓":{"docs":{},"取":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"发":{"docs":{},"送":{"docs":{},"告":{"docs":{},"警":{"docs":{},",":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"户":{"docs":{},"能":{"docs":{},"够":{"docs":{},"记":{"docs":{},"录":{"docs":{},"进":{"docs":{},"度":{"docs":{},",":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"删":{"docs":{},"除":{"docs":{},"后":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"不":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"删":{"docs":{},"除":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},".":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"避":{"docs":{},"免":{"docs":{},"无":{"docs":{},"限":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"带":{"docs":{},"来":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"安":{"docs":{},"装":{"docs":{},"包":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"样":{"docs":{},"例":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"(":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},",":{"docs":{},"限":{"docs":{},"制":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"为":{"docs":{},"每":{"docs":{},"半":{"docs":{},"小":{"docs":{},"时":{"1":{"docs":{},"次":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"源":{"docs":{},"端":{"docs":{},"超":{"docs":{},"时":{"docs":{},",":{"docs":{},"等":{"docs":{},"待":{"docs":{},"时":{"docs":{},"间":{"docs":{},"的":{"docs":{},"上":{"docs":{},"限":{"docs":{},"是":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}},"空":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"该":{"docs":{},"次":{"docs":{},"变":{"docs":{},"更":{"docs":{},"的":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"表":{"docs":{},"的":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"格":{"docs":{},"式":{"docs":{},":":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}},"限":{"docs":{},"制":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"表":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"v":{"4":{"docs":{},"模":{"docs":{},"仿":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"运":{"docs":{},"行":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"并":{"docs":{},"行":{"docs":{},"复":{"docs":{},"制":{"docs":{},"计":{"docs":{},"算":{"docs":{},"事":{"docs":{},"务":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"时":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"行":{"docs":{},"数":{"docs":{},"。":{"docs":{},"增":{"docs":{},"大":{"docs":{},"可":{"docs":{},"以":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"地":{"docs":{},"增":{"docs":{},"加":{"docs":{},"并":{"docs":{},"行":{"docs":{},"度":{"docs":{},",":{"docs":{},"但":{"docs":{},"会":{"docs":{},"更":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"查":{"docs":{},"看":{"docs":{},"原":{"docs":{},"始":{"docs":{},"值":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"删":{"docs":{},"除":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"下":{"docs":{},"所":{"docs":{},"有":{"docs":{},"项":{"docs":{},"目":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}},"方":{"docs":{},"法":{"docs":{},"参":{"docs":{},"见":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}},"多":{"docs":{},"节":{"docs":{},"点":{"docs":{},"部":{"docs":{},"署":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{},"更":{"docs":{},"改":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"挑":{"docs":{},"选":{"docs":{},"复":{"docs":{},"制":{"docs":{},"库":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}},"导":{"docs":{},"出":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"(":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"源":{"docs":{},"端":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"事":{"docs":{},"务":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{},"可":{"docs":{},"用":{"docs":{},"以":{"docs":{},"避":{"docs":{},"免":{"docs":{},"循":{"docs":{},"环":{"docs":{},"复":{"docs":{},"制":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"参":{"docs":{},"考":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}},"典":{"docs":{},"型":{"docs":{},"用":{"docs":{},"法":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}},"的":{"docs":{},"查":{"docs":{},"询":{"docs":{},"方":{"docs":{},"法":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"工":{"docs":{},"具":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":2.0238095238095237}},"运":{"docs":{},"行":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},",":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}},"提":{"docs":{},"交":{"docs":{},")":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{},"样":{"docs":{},"例":{"docs":{},"配":{"docs":{},"置":{"docs":{},"在":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}},"插":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"进":{"docs":{},"行":{"docs":{},"任":{"docs":{},"务":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"储":{"docs":{},"存":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},")":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"上":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"点":{"docs":{},"位":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}},"2":{"docs":{},"上":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"点":{"docs":{},"位":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}}}}}}}},"docs":{}}}}}}}}}}},"本":{"docs":{},"体":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"进":{"docs":{},"行":{"docs":{},"多":{"docs":{},"节":{"docs":{},"点":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"发":{"docs":{},"现":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"示":{"docs":{},"例":{"docs":{},"默":{"docs":{},"认":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"方":{"docs":{},"(":{"docs":{},"上":{"docs":{},"海":{"docs":{},"爱":{"docs":{},"可":{"docs":{},"生":{"docs":{},"信":{"docs":{},"息":{"docs":{},"技":{"docs":{},"术":{"docs":{},"股":{"docs":{},"份":{"docs":{},"有":{"docs":{},"限":{"docs":{},"公":{"docs":{},"司":{"docs":{},")":{"docs":{},"一":{"docs":{},"直":{"docs":{},"在":{"docs":{},"招":{"docs":{},"聘":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.023809523809523808}}}}}}},"界":{"docs":{},"面":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}},"。":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"、":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"v":{"docs":{},"中":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"进":{"docs":{},"度":{"docs":{},"(":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},"。":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}},"该":{"docs":{},"用":{"docs":{},"法":{"docs":{},"本":{"docs":{},"质":{"docs":{},"上":{"docs":{},"是":{"docs":{},"对":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"2/2.0.1_interface.html":{"ref":"2/2.0.1_interface.html","tf":0.011904761904761904}}}}}}}}}}}}},"行":{"docs":{},"为":{"docs":{},"可":{"docs":{},"用":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"部":{"docs":{},"分":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"控":{"docs":{},"制":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"将":{"docs":{},"其":{"docs":{},"设":{"docs":{},"为":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"用":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"以":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"储":{"docs":{},"存":{"docs":{},"以":{"docs":{},"提":{"docs":{},"升":{"docs":{},"性":{"docs":{},"能":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"查":{"docs":{},"询":{"docs":{},"方":{"docs":{},"式":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"表":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0047169811320754715},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.019337016574585635},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.06097560975609756}},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},".":{"docs":{},"*":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}}}},".":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"'":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}},".":{"docs":{},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.008708272859216255},"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.020134228187919462},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.08450704225352113},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.010752688172043012}},"=":{"docs":{},"'":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"'":{"docs":{},";":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.028169014084507043}}}}}}}}}},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}},")":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}},"r":{"docs":{},"p":{"docs":{},"m":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"v":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},"a":{"docs":{},"l":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}},"u":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005783132530120482},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.007168458781362007},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"e":{"docs":{},"s":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},"\"":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}},"docs":{}},"docs":{}}}}},"1":{"1":{"docs":{},")":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}},"2":{"docs":{},")":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}},"docs":{},")":{"docs":{},",":{"docs":{},"(":{"2":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"3":{"docs":{},")":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}},"docs":{}}}}},"docs":{}}},"\"":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}},",":{"docs":{},"'":{"docs":{},"r":{"docs":{},"y":{"docs":{},"a":{"docs":{},"n":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}},"4":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"5":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"6":{"docs":{},")":{"docs":{},"\"":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"是":{"docs":{},"该":{"docs":{},"次":{"docs":{},"变":{"docs":{},"更":{"docs":{},"的":{"docs":{},"整":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"有":{"docs":{},"值":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0025469595670168737}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"2":{"docs":{},"(":{"2":{"5":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}},"4":{"5":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}},"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"(":{"1":{"5":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}},"docs":{}},"2":{"5":{"5":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}},"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}},"3":{"0":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}},"5":{"docs":{},")":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"docs":{}},"4":{"5":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}},"6":{"4":{"docs":{},")":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}},"6":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}},"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.014423076923076924}}}}}}}}},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.046296296296296294}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}}}}}}}}}}},"i":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}},"e":{"docs":{},"w":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108}},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.007380073800738007}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241}},"e":{"docs":{},"_":{"1":{"docs":{},",":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"2":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.001591849729385546}},":":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"点":{"docs":{},"位":{"docs":{},",":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}},"当":{"docs":{},"前":{"docs":{},"告":{"docs":{},"警":{"docs":{},"规":{"docs":{},"则":{"docs":{},"/":{"docs":{},"内":{"docs":{},"容":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}},"所":{"docs":{},"需":{"docs":{},"同":{"docs":{},"步":{"docs":{},"的":{"docs":{},"库":{"docs":{},"/":{"docs":{},"表":{"docs":{},",":{"docs":{},"从":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"日":{"docs":{},"志":{"docs":{},"获":{"docs":{},"取":{"docs":{},"当":{"docs":{},"前":{"docs":{},"系":{"docs":{},"统":{"docs":{},"改":{"docs":{},"变":{"docs":{},"号":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"n":{"docs":{},")":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"步":{"docs":{},"的":{"docs":{},"库":{"docs":{},"/":{"docs":{},"表":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"同":{"docs":{},"步":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}},"表":{"docs":{},"的":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}},"某":{"docs":{},"个":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"信":{"docs":{},"息":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"信":{"docs":{},"息":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}},"验":{"docs":{},"证":{"docs":{},"全":{"docs":{},"量":{"docs":{},"和":{"docs":{},"增":{"docs":{},"量":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"均":{"docs":{},"存":{"docs":{},"在":{"docs":{"2/2.1_mysql_replication_n_1.html":{"ref":"2/2.1_mysql_replication_n_1.html","tf":0.001996007984031936},"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"存":{"docs":{},"在":{"docs":{},":":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"数":{"docs":{},"据":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}},"配":{"docs":{},"置":{"docs":{},"生":{"docs":{},"效":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"主":{"docs":{},"键":{"docs":{},">":{"docs":{},"=":{"5":{"docs":{},"的":{"docs":{},"行":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"库":{"2":{"docs":{},".":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}},"docs":{}}}}}}}}}},"docs":{}}},"的":{"docs":{},"行":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"库":{"1":{"docs":{},",":{"docs":{"2/2.2_mysql_replication_1_n.html":{"ref":"2/2.2_mysql_replication_1_n.html","tf":0.0023584905660377358}}}},"docs":{}}}}}}}}}}},"/":{"1":{"0":{"2":{"4":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.022099447513812154}},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}},"docs":{}},"docs":{}},"docs":{}},"3":{"0":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.011049723756906077}}},"docs":{}},"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.04696132596685083},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.02650602409638554},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.06097560975609756}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},":":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"u":{"0":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.005361930294906166}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}},":":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}},"docs":{}}}}}}}}},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"/":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"/":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"*":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"v":{"2":{"docs":{},"/":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"/":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"m":{"docs":{},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"p":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"p":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"p":{"docs":{},"a":{"docs":{},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"i":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}},"docs":{}}},"=":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.02467343976777939},"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.014760147601476014},"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.11409395973154363},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.06521739130434782},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.03864734299516908},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.027624309392265192},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.002891566265060241},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.021739130434782608},"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.030303030303030304},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.026737967914438502},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.043478260869565216},"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.2078853046594982},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016},"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218},"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.0975609756097561}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.012032085561497326},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"e":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.038306451612903226}}},")":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}},"i":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.014492753623188406},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},"_":{"docs":{},"o":{"docs":{},"v":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}},"o":{"docs":{},"v":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0019102196752626551}}}}}},"q":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":5.011494252873563}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.007228915662650603}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0057306590257879654}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"_":{"docs":{},"t":{"7":{"docs":{},"_":{"1":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"docs":{}}},"docs":{}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}}}}}},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.005301204819277108}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}},"s":{"docs":{},"t":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}},"l":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0066857688634192934}},"_":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0009551098376313276}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0006367398917542184}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"k":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"_":{"5":{"docs":{},"_":{"1":{"docs":{},";":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{}}},"docs":{}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"和":{"docs":{},"t":{"docs":{},"o":{"docs":{},"的":{"docs":{},"列":{"docs":{},"数":{"docs":{},"量":{"docs":{},"必":{"docs":{},"须":{"docs":{},"相":{"docs":{},"等":{"docs":{},".":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.009615384615384616}},"(":{"docs":{},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"类":{"docs":{},"型":{"docs":{},"无":{"docs":{},"法":{"docs":{},"精":{"docs":{},"确":{"docs":{},"匹":{"docs":{},"配":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}},"仅":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"作":{"docs":{},"为":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"支":{"docs":{},"持":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.018518518518518517}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"模":{"docs":{},"式":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"模":{"docs":{},"式":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}},"以":{"docs":{},"下":{"docs":{},"字":{"docs":{},"符":{"docs":{},"集":{"docs":{},":":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"插":{"docs":{},"件":{"docs":{},"运":{"docs":{},"行":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}},"业":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}},"一":{"docs":{},"般":{"docs":{},"采":{"docs":{},"用":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"(":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}},"管":{"docs":{},"理":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"修":{"docs":{},"改":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.013422818791946308}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}},"容":{"docs":{},"器":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.005805515239477504}}}}}}}},"日":{"docs":{},"志":{"docs":{},"级":{"docs":{},"别":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"为":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"表":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}}}}}}}}}}}}}}}},"只":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}},"支":{"docs":{},"持":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},")":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}},"有":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}},"需":{"docs":{},"将":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"的":{"docs":{},"访":{"docs":{},"问":{"docs":{},"地":{"docs":{},"址":{"docs":{},"添":{"docs":{},"加":{"docs":{},"到":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"中":{"docs":{},",":{"docs":{},"点":{"docs":{},"击":{"docs":{},"“":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"填":{"docs":{},"写":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"的":{"docs":{},"用":{"docs":{},"法":{"docs":{},"现":{"docs":{},"已":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{},"满":{"docs":{},"足":{"docs":{},"该":{"docs":{},"条":{"docs":{},"件":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"行":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"是":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"主":{"docs":{},"键":{"docs":{},".":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}},"增":{"docs":{},"量":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"时":{"docs":{},",":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}},"估":{"docs":{},"计":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"计":{"docs":{},"数":{"docs":{},"值":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"阶":{"docs":{},"段":{"docs":{},"中":{"docs":{},"源":{"docs":{},"端":{"docs":{},"完":{"docs":{},"成":{"docs":{},"抽":{"docs":{},"取":{"docs":{},"并":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"/":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{},"从":{"docs":{},"源":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"重":{"docs":{},"启":{"docs":{},"任":{"docs":{},"务":{"docs":{},"时":{"docs":{},"计":{"docs":{},"数":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"可":{"docs":{},"配":{"docs":{},"合":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},"计":{"docs":{},"算":{"docs":{},"q":{"docs":{},"p":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"1":{"docs":{},"m":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"事":{"docs":{},"务":{"docs":{},"总":{"docs":{},"量":{"docs":{},"。":{"docs":{},"从":{"docs":{},"源":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"重":{"docs":{},"启":{"docs":{},"任":{"docs":{},"务":{"docs":{},"时":{"docs":{},"计":{"docs":{},"数":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"可":{"docs":{},"配":{"docs":{},"合":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},"计":{"docs":{},"算":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"1":{"docs":{},"m":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"完":{"docs":{},"成":{"docs":{},"回":{"docs":{},"放":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},"总":{"docs":{},"量":{"docs":{},"。":{"docs":{},"从":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"重":{"docs":{},"启":{"docs":{},"任":{"docs":{},"务":{"docs":{},"时":{"docs":{},"计":{"docs":{},"数":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"可":{"docs":{},"配":{"docs":{},"合":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},"计":{"docs":{},"算":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"1":{"docs":{},"m":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"总":{"docs":{},"量":{"docs":{},"(":{"docs":{},"未":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"前":{"docs":{},"也":{"docs":{},"算":{"docs":{},")":{"docs":{},"。":{"docs":{},"从":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"重":{"docs":{},"启":{"docs":{},"任":{"docs":{},"务":{"docs":{},"时":{"docs":{},"计":{"docs":{},"数":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"可":{"docs":{},"配":{"docs":{},"合":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},"计":{"docs":{},"算":{"docs":{},"q":{"docs":{},"p":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"1":{"docs":{},"m":{"docs":{},"]":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"d":{"docs":{},"c":{"docs":{},"l":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"会":{"docs":{},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"文":{"docs":{},"件":{"docs":{},"(":{"docs":{},"即":{"docs":{},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"上":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"并":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{},"(":{"docs":{},"m":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},"相":{"docs":{},"关":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},",":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"加":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"、":{"docs":{},"删":{"docs":{},"、":{"docs":{},"改":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"建":{"docs":{},"议":{"docs":{},"由":{"docs":{},"业":{"docs":{},"务":{"docs":{},"端":{"docs":{},"确":{"docs":{},"保":{"docs":{},"数":{"docs":{},"据":{"docs":{},"不":{"docs":{},"会":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}}}}}}}}}}}},"表":{"docs":{},"语":{"docs":{},"句":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"据":{"docs":{},"复":{"docs":{},"制":{"docs":{},"有":{"docs":{},"缺":{"docs":{},"陷":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},")":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}},"写":{"docs":{},"入":{"docs":{},"的":{"docs":{},"列":{"docs":{},".":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"私":{"docs":{},"钥":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"绝":{"docs":{},"对":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"在":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}},"私":{"docs":{},"钥":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"绝":{"docs":{},"对":{"docs":{},"路":{"docs":{},"径":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"绝":{"docs":{},"对":{"docs":{},"路":{"docs":{},"径":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"的":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"库":{"docs":{},"名":{"docs":{},".":{"docs":{},"表":{"docs":{},"名":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}},"要":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"的":{"docs":{},"库":{"docs":{},"表":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"。":{"docs":{},"如":{"docs":{},"为":{"docs":{},"空":{"docs":{},"[":{"docs":{},"]":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"可":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"删":{"docs":{},"除":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}},"插":{"docs":{},"件":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"提":{"docs":{},"供":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"或":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"更":{"docs":{},"改":{"docs":{},"表":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"存":{"docs":{},"在":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"或":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"时":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"二":{"docs":{},"次":{"docs":{},"触":{"docs":{},"发":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"(":{"docs":{},"源":{"docs":{},"端":{"docs":{},"已":{"docs":{},"经":{"docs":{},"触":{"docs":{},"发":{"docs":{},"过":{"docs":{},"一":{"docs":{},"次":{"docs":{},")":{"docs":{},",":{"docs":{},"会":{"docs":{},"引":{"docs":{},"起":{"docs":{},"数":{"docs":{},"据":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},",":{"docs":{},"故":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"不":{"docs":{},"复":{"docs":{},"制":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"。":{"docs":{},"源":{"docs":{},"端":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"变":{"docs":{},"更":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"会":{"docs":{},"被":{"docs":{},"写":{"docs":{},"进":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"。":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"校":{"docs":{},"验":{"docs":{},"功":{"docs":{},"能":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},"调":{"docs":{},"用":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"中":{"docs":{},"携":{"docs":{},"带":{"docs":{},"登":{"docs":{},"录":{"docs":{},"成":{"docs":{},"功":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},",":{"docs":{},"在":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"页":{"docs":{},"面":{"docs":{},"可":{"docs":{},"点":{"docs":{},"击":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"页":{"docs":{},"面":{"docs":{},"顶":{"docs":{},"部":{"docs":{},"的":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"按":{"docs":{},"钮":{"docs":{},",":{"docs":{},"将":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"填":{"docs":{},"入":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"的":{"docs":{},"文":{"docs":{},"本":{"docs":{},"框":{"docs":{},"中":{"docs":{},",":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"页":{"docs":{},"面":{"docs":{},"中":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"即":{"docs":{},"可":{"docs":{},"正":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"c":{"1":{"docs":{},"到":{"docs":{},"d":{"docs":{},"c":{"2":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"docs":{}}}}},"2":{"docs":{},"到":{"docs":{},"d":{"docs":{},"c":{"1":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}}}},"docs":{}}}}},"docs":{}}},"i":{"docs":{},"p":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}},"示":{"docs":{},"例":{"docs":{},"如":{"docs":{},"下":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"两":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"集":{"docs":{},"群":{"docs":{},"来":{"docs":{},"演":{"docs":{},"示":{"docs":{},",":{"docs":{},"其":{"docs":{},"拓":{"docs":{},"扑":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"数":{"docs":{},"据":{"docs":{},"源":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}},"项":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"重":{"docs":{},"要":{"docs":{},"!":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.001451378809869376}}}},"命":{"docs":{},"名":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"数":{"docs":{},"不":{"docs":{},"应":{"docs":{},"据":{"docs":{},"传":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"正":{"docs":{},"常":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}},"后":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"当":{"docs":{},"进":{"docs":{},"行":{"docs":{},"多":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},"时":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"见":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"名":{"docs":{},",":{"docs":{},"当":{"docs":{},"进":{"docs":{},"行":{"docs":{},"多":{"docs":{},"表":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},"时":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"支":{"docs":{},"持":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},",":{"docs":{},"见":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"建":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"时":{"docs":{},",":{"docs":{},"若":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"已":{"docs":{},"有":{"docs":{},"进":{"docs":{},"度":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"的":{"docs":{},"进":{"docs":{},"度":{"docs":{},"(":{"docs":{},"而":{"docs":{},"非":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"的":{"docs":{},"起":{"docs":{},"点":{"docs":{},")":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"试":{"docs":{},")":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"多":{"docs":{},"个":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"和":{"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{},"r":{"docs":{},"p":{"docs":{},"c":{"docs":{},"为":{"docs":{},"本":{"docs":{},"机":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"2/2.3_dc_to_dc_bidirectional.html":{"ref":"2/2.3_dc_to_dc_bidirectional.html","tf":0.002902757619738752}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"迁":{"docs":{},"移":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"前":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"为":{"docs":{},"该":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"实":{"docs":{},"例":{"docs":{},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"始":{"docs":{},"全":{"docs":{},"量":{"docs":{},"时":{"docs":{},"将":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}},"申":{"docs":{},"请":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"e":{"docs":{},"c":{"docs":{},"s":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"和":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"主":{"docs":{},"机":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"基":{"docs":{},"本":{"docs":{},"正":{"docs":{},"确":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"手":{"docs":{},"动":{"docs":{},"重":{"docs":{},"复":{"docs":{},"填":{"docs":{},"写":{"docs":{},"一":{"docs":{},"遍":{"docs":{},".":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"保":{"docs":{},"持":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}},"删":{"docs":{},"除":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"重":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"见":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"模":{"docs":{},"拟":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}},"另":{"docs":{},"外":{"docs":{},"启":{"docs":{},"动":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{},"运":{"docs":{},"行":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}}}},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}},"配":{"docs":{},"置":{"docs":{},"如":{"docs":{},"下":{"docs":{},"参":{"docs":{},"数":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}},"具":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"权":{"docs":{},"限":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}},"执":{"docs":{},"行":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}},"+":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.06642066420664207},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},"\\":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.02735562310030395},"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.01932367149758454}},"g":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}},"`":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"`":{"docs":{},".":{"docs":{},"*":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"2":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}},"e":{"docs":{},"w":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}}}}}}}}}}}},"`":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}},"c":{"docs":{},"o":{"docs":{},"l":{"2":{"docs":{},"`":{"docs":{},")":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"?":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"=":{"docs":{},"?":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"k":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"`":{"docs":{},"(":{"docs":{},"`":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"`":{"docs":{},")":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"`":{"docs":{},".":{"docs":{},"`":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"_":{"2":{"5":{"6":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"s":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}},"(":{"docs":{},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},"`":{"docs":{},",":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},".":{"docs":{},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"docs":{}}}}}}}},"docs":{}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{},"e":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},".":{"docs":{},"`":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"1":{"docs":{},"`":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"`":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"j":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.03756765361349888}},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"3":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}},"docs":{}}}},"p":{"docs":{},")":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}},"。":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}},"向":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"发":{"docs":{},"布":{"docs":{},"任":{"docs":{},"务":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"镜":{"docs":{},"像":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"节":{"docs":{},"点":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"对":{"docs":{},"象":{"docs":{},"(":{"docs":{},"按":{"docs":{},"条":{"docs":{},"件":{"docs":{},"复":{"docs":{},"制":{"docs":{},"部":{"docs":{},"分":{"docs":{},"记":{"docs":{},"录":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}}}},"整":{"docs":{},"库":{"docs":{},"复":{"docs":{},"制":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}},"表":{"docs":{},"复":{"docs":{},"制":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}},"手":{"docs":{},"段":{"docs":{},"(":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.0078125}}}}}}}}}}},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"全":{"docs":{},"量":{"docs":{},"+":{"docs":{},"增":{"docs":{},"量":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}},"增":{"docs":{},"量":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}},"链":{"docs":{},"路":{"docs":{},"(":{"docs":{},"跨":{"docs":{},"网":{"docs":{},"络":{"docs":{},"边":{"docs":{},"际":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}},"链":{"docs":{},"路":{"docs":{},"压":{"docs":{},"缩":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}},"任":{"docs":{},"务":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"缓":{"docs":{},"存":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"时":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"处":{"docs":{},"理":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"语":{"docs":{},"句":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.06779661016949153}},";":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}},"m":{"docs":{},"l":{"docs":{},"语":{"docs":{},"句":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}},";":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{},"多":{"docs":{},"个":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{},"多":{"docs":{},"个":{"docs":{},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}},"整":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}},"停":{"docs":{},"顿":{"docs":{},"、":{"docs":{},"不":{"docs":{},"开":{"docs":{},"始":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"全":{"docs":{},"量":{"docs":{},"/":{"docs":{},"增":{"docs":{},"量":{"docs":{},")":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}},"到":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"格":{"docs":{},"式":{"docs":{},"支":{"docs":{},"持":{"docs":{},"a":{"docs":{},"v":{"docs":{},"r":{"docs":{},"o":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}},"杂":{"docs":{},"类":{"docs":{},"型":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.004032258064516129}}}}}}},"安":{"docs":{},"装":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}},"并":{"docs":{},"配":{"docs":{},"置":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}},"包":{"docs":{},",":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}},"默":{"docs":{},"认":{"docs":{},"将":{"docs":{},"参":{"docs":{},"考":{"docs":{},"配":{"docs":{},"置":{"docs":{},"装":{"docs":{},"在":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"位":{"docs":{},"置":{"docs":{},"(":{"docs":{},"安":{"docs":{},"装":{"docs":{},"时":{"docs":{},"未":{"docs":{},"设":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}},"注":{"docs":{},"意":{"docs":{},":":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"以":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"储":{"docs":{},"存":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"查":{"docs":{},"询":{"docs":{},"会":{"docs":{},"乱":{"docs":{},"码":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"h":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{},"转":{"docs":{},"换":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"事":{"docs":{},"项":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}},":":{"docs":{},"通":{"docs":{},"过":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},"只":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"本":{"docs":{},"节":{"docs":{},"点":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"。":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"自":{"docs":{},"动":{"docs":{},"创":{"docs":{},"建":{"docs":{},"目":{"docs":{},"标":{"docs":{},"表":{"docs":{},",":{"docs":{},"需":{"docs":{},"预":{"docs":{},"先":{"docs":{},"手":{"docs":{},"动":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"行":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"完":{"docs":{},"整":{"docs":{},"记":{"docs":{},"录":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}},"保":{"docs":{},"留":{"docs":{},"添":{"docs":{},"加":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"时":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},":":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"后":{"docs":{},"续":{"docs":{},"重":{"docs":{},"启":{"docs":{},"时":{"docs":{},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"使":{"docs":{},"用":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"级":{"docs":{},"别":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"格":{"docs":{},"式":{"docs":{},"中":{"docs":{},"$":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},"会":{"docs":{},"被":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"变":{"docs":{},"量":{"docs":{},"引":{"docs":{},"用":{"docs":{},"。":{"docs":{},"正":{"docs":{},"则":{"docs":{},"替":{"docs":{},"换":{"docs":{},"中":{"docs":{},"输":{"docs":{},"入":{"docs":{},"此":{"docs":{},"类":{"docs":{},"文":{"docs":{},"字":{"docs":{},"时":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"使":{"docs":{},"用":{"docs":{},"双":{"docs":{},"$":{"docs":{},"符":{"docs":{},"号":{"docs":{},":":{"docs":{},"$":{"docs":{},"$":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"结":{"docs":{},"构":{"docs":{},"在":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"中":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}},"作":{"docs":{},"断":{"docs":{},"点":{"docs":{},"续":{"docs":{},"传":{"docs":{},"/":{"docs":{},"数":{"docs":{},"据":{"docs":{},"检":{"docs":{},"查":{"docs":{},"等":{"docs":{},".":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"节":{"docs":{},"点":{"docs":{},"同":{"docs":{},"时":{"docs":{},"作":{"docs":{},"为":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"权":{"docs":{},"限":{"docs":{},"/":{"docs":{},"存":{"docs":{},"储":{"docs":{},"过":{"docs":{},"程":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{},"函":{"docs":{},"数":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":5.016949152542373}}}}}},"需":{"docs":{},"自":{"docs":{},"行":{"docs":{},"确":{"docs":{},"保":{"docs":{},"在":{"docs":{},"发":{"docs":{},"生":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"/":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"能":{"docs":{},"正":{"docs":{},"确":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"c":{"docs":{},"\"":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}},"申":{"docs":{},"请":{"docs":{},"京":{"docs":{},"东":{"docs":{},"云":{"docs":{},"e":{"docs":{},"c":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"未":{"docs":{},"修":{"docs":{},"改":{"docs":{},"配":{"docs":{},"置":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}},"更":{"docs":{},"改":{"docs":{},"项":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.020134228187919462}}}}}}}},"示":{"docs":{},"例":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}},"主":{"docs":{},"机":{"docs":{},"i":{"docs":{},"p":{"docs":{},"为":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"0":{"docs":{},".":{"1":{"7":{"docs":{},",":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}},"规":{"docs":{},"格":{"docs":{},"是":{"1":{"docs":{},"c":{"4":{"docs":{},"g":{"4":{"0":{"docs":{},"g":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}}},"迁":{"docs":{},"移":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"库":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}},"默":{"docs":{},"认":{"2":{"0":{"0":{"0":{"docs":{},"。":{"docs":{},"全":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{},"时":{"docs":{},"每":{"docs":{},"次":{"docs":{},"选":{"docs":{},"取":{"docs":{},"的":{"docs":{},"行":{"docs":{},"数":{"docs":{},"。":{"docs":{},"增":{"docs":{},"大":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"吞":{"docs":{},"吐":{"docs":{},"量":{"docs":{},",":{"docs":{},"但":{"docs":{},"同":{"docs":{},"时":{"docs":{},"会":{"docs":{},"占":{"docs":{},"用":{"docs":{},"更":{"docs":{},"多":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"6":{"0":{"docs":{},",":{"docs":{},"增":{"docs":{},"量":{"docs":{},"事":{"docs":{},"物":{"docs":{},"队":{"docs":{},"列":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{},"增":{"docs":{},"大":{"docs":{},"可":{"docs":{},"以":{"docs":{},"降":{"docs":{},"低":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"空":{"docs":{},"等":{"docs":{},",":{"docs":{},"但":{"docs":{},"同":{"docs":{},"时":{"docs":{},"会":{"docs":{},"占":{"docs":{},"用":{"docs":{},"更":{"docs":{},"多":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"只":{"docs":{},"能":{"docs":{},"从":{"docs":{},"从":{"docs":{},"本":{"docs":{},"机":{"docs":{},"查":{"docs":{},"询":{"docs":{},"。":{"docs":{},"若":{"docs":{},"要":{"docs":{},"从":{"docs":{},"外":{"docs":{},"部":{"docs":{},"访":{"docs":{},"问":{"docs":{},"k":{"docs":{},"v":{"docs":{},",":{"docs":{},"请":{"docs":{},"更":{"docs":{},"改":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"中":{"docs":{},"的":{"docs":{"2/2.4_ali_to_jd.html":{"ref":"2/2.4_ali_to_jd.html","tf":0.0036900369003690036}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}},"值":{"1":{"docs":{},"表":{"docs":{},"示":{"docs":{},"即":{"docs":{},"刻":{"docs":{},"发":{"docs":{},"送":{"docs":{},"数":{"docs":{},"据":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}},"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552}}},"的":{"docs":{},"启":{"docs":{},"动":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"(":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"d":{"docs":{},")":{"docs":{},"使":{"docs":{},"用":{"docs":{},"单":{"docs":{},"节":{"docs":{},"点":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"空":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"并":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{},"事":{"docs":{},"务":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},"检":{"docs":{},"测":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"开":{"docs":{},"启":{"docs":{},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"的":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"追":{"docs":{},"踪":{"docs":{},",":{"docs":{},"可":{"docs":{},"将":{"docs":{},"此":{"docs":{},"设":{"docs":{},"为":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"检":{"docs":{},"测":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"连":{"docs":{},"接":{"docs":{},"上":{"docs":{},"的":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"服":{"docs":{},"务":{"docs":{},",":{"docs":{},"可":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"工":{"docs":{},"具":{"docs":{},"向":{"docs":{},"其":{"docs":{},"发":{"docs":{},"送":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"最":{"docs":{},"终":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"为":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"端":{"docs":{},"口":{"docs":{},"不":{"docs":{},"同":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"z":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00911854103343465}},"e":{"docs":{},"r":{"docs":{},":":{"2":{"1":{"8":{"1":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.0182370820668693}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"e":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"关":{"docs":{},"于":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"的":{"docs":{},"消":{"docs":{},"息":{"docs":{},"格":{"docs":{},"式":{"docs":{},",":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}}}}}}}}}}},"外":{"docs":{},"键":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}},"消":{"docs":{},"息":{"docs":{},"格":{"docs":{},"式":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":3.335349462365591}},"兼":{"docs":{},"容":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}},"地":{"docs":{},"址":{"docs":{"2/2.5_mysql_kafka.html":{"ref":"2/2.5_mysql_kafka.html","tf":0.00303951367781155}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"9":{"0":{"9":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},",":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"{":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"映":{"docs":{},"射":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":2.5048076923076925}},"关":{"docs":{},"系":{"docs":{},"参":{"docs":{},"看":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}},"类":{"docs":{},"型":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"并":{"docs":{},"启":{"docs":{},"动":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"同":{"docs":{},"步":{"docs":{},"配":{"docs":{},"置":{"docs":{"2/2.6_oracle_mysql.html":{"ref":"2/2.6_oracle_mysql.html","tf":0.002680965147453083}}}}}}},"定":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"交":{"docs":{},"互":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"即":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"i":{"docs":{},"p":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"端":{"docs":{},"口":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"可":{"docs":{},"避":{"docs":{},"免":{"docs":{},"数":{"docs":{},"据":{"docs":{},"量":{"docs":{},"不":{"docs":{},"足":{"docs":{},"时":{"docs":{},"等":{"docs":{},"待":{"docs":{},"过":{"docs":{},"久":{"docs":{},"。":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"1":{"0":{"0":{"docs":{},"(":{"docs":{},"毫":{"docs":{},"秒":{"docs":{},")":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"设":{"docs":{},"成":{"docs":{},"略":{"docs":{},"小":{"docs":{},"于":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"一":{"docs":{},"般":{"docs":{},"每":{"docs":{},"个":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}},"、":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"运":{"docs":{},"行":{"docs":{},"环":{"docs":{},"境":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}},"个":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}},"节":{"docs":{},"点":{"docs":{},"可":{"docs":{},"同":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"多":{"docs":{},"个":{"docs":{},"传":{"docs":{},"输":{"docs":{},"链":{"docs":{},"路":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"进":{"docs":{},"程":{"docs":{},"可":{"docs":{},"同":{"docs":{},"时":{"docs":{},"扮":{"docs":{},"演":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}}}}}}},"节":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}},"直":{"docs":{},"为":{"0":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}},"docs":{}}},"致":{"docs":{},"性":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"描":{"docs":{},"述":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}},"个":{"docs":{},"版":{"docs":{},"本":{"docs":{},"支":{"docs":{},"持":{"docs":{},"功":{"docs":{},"能":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}},"同":{"docs":{},"。":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}}},"保":{"docs":{},"存":{"docs":{},"运":{"docs":{},"行":{"docs":{},"信":{"docs":{},"息":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}},"服":{"docs":{},"务":{"docs":{},"发":{"docs":{},"现":{"docs":{},"(":{"docs":{},"多":{"docs":{},"节":{"docs":{},"点":{"docs":{},"自":{"docs":{},"动":{"docs":{},"注":{"docs":{},"册":{"docs":{},")":{"docs":{"2/2.7_multi_node.html":{"ref":"2/2.7_multi_node.html","tf":0.006711409395973154}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}},"无":{"docs":{},"法":{"docs":{},"启":{"docs":{},"动":{"docs":{},",":{"docs":{},"无":{"docs":{},"日":{"docs":{},"志":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"查":{"docs":{},"看":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"日":{"docs":{},"志":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"暂":{"docs":{},"停":{"docs":{},"/":{"docs":{},"恢":{"docs":{},"复":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}},"延":{"docs":{},"迟":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"信":{"docs":{},"息":{"docs":{},"在":{"docs":{},"集":{"docs":{},"群":{"docs":{},"中":{"docs":{},"同":{"docs":{},"步":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"间":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"将":{"docs":{},"指":{"docs":{},"定":{"docs":{},"库":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"和":{"docs":{},"每":{"docs":{},"行":{"docs":{},"大":{"docs":{},"小":{"docs":{},"、":{"docs":{},"事":{"docs":{},"物":{"docs":{},"大":{"docs":{},"小":{"docs":{},"、":{"docs":{},"队":{"docs":{},"列":{"docs":{},"长":{"docs":{},"度":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"真":{"docs":{},"实":{"docs":{},"资":{"docs":{},"源":{"docs":{},"消":{"docs":{},"耗":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"o":{"docs":{},"o":{"docs":{},"m":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"无":{"docs":{},"报":{"docs":{},"错":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"分":{"docs":{},"为":{"docs":{},"源":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}}}}}}}}},"分":{"docs":{},"发":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}},"到":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}},"开":{"docs":{},"部":{"docs":{},"署":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}},"割":{"docs":{},"。":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}},"为":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"别":{"docs":{},"表":{"docs":{},"达":{"docs":{},"操":{"docs":{},"作":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}},"到":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}},"功":{"docs":{},"能":{"docs":{},"/":{"docs":{},"场":{"docs":{},"景":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"列":{"docs":{},"表":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}}}}}},"双":{"docs":{},"向":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}}}},"合":{"docs":{},"并":{"docs":{},"到":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}}},"回":{"docs":{},"访":{"docs":{},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"并":{"docs":{},"行":{"docs":{},"回":{"docs":{},"放":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}}}}},"放":{"docs":{},"端":{"docs":{},"的":{"docs":{},"并":{"docs":{},"发":{"docs":{},"数":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}},"场":{"docs":{},"景":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.01953125}}}},"水":{"docs":{},"平":{"docs":{},"扩":{"docs":{},"展":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}},"监":{"docs":{},"控":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}},"项":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.021739130434782608}},"说":{"docs":{},"明":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}},":":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"自":{"docs":{},"动":{"docs":{},"创":{"docs":{},"建":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}},"功":{"docs":{},"能":{"docs":{},";":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"元":{"docs":{},"数":{"docs":{},"据":{"docs":{},"表":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"高":{"docs":{},"可":{"docs":{},"用":{"docs":{},"(":{"docs":{},"故":{"docs":{},"障":{"docs":{},"转":{"docs":{},"移":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}},"断":{"docs":{},"点":{"docs":{},"续":{"docs":{},"做":{"docs":{},")":{"docs":{"3/3.0_function_scenario_mapping.html":{"ref":"3/3.0_function_scenario_mapping.html","tf":0.00390625}}}}}}}},"的":{"docs":{},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}},"_":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"3":{"2":{"docs":{},"\"":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}},"docs":{}},"docs":{}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"=":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}}}}}}}}}}}}}}}}}},"且":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"存":{"docs":{},"续":{"docs":{},"期":{"docs":{},"间":{"docs":{},",":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"上":{"docs":{},"该":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"不":{"docs":{},"可":{"docs":{},"改":{"docs":{},"变":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"3":{"docs":{},".":{"2":{"1":{"docs":{},".":{"1":{"0":{"docs":{},".":{"0":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"增":{"docs":{},"量":{"docs":{},"回":{"docs":{},"放":{"docs":{},"时":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},"x":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"4":{"docs":{},".":{"2":{"2":{"docs":{},".":{"0":{"9":{"docs":{},".":{"0":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},",":{"docs":{},"动":{"docs":{},"态":{"docs":{},"修":{"docs":{},"改":{"docs":{},"日":{"docs":{},"志":{"docs":{},"级":{"docs":{},"别":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"即":{"docs":{},"可":{"docs":{},"生":{"docs":{},"效":{"docs":{},"(":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"事":{"docs":{},"先":{"docs":{},"修":{"docs":{},"改":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"或":{"docs":{},"重":{"docs":{},"启":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"1":{"1":{"docs":{},".":{"0":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"配":{"docs":{},"置":{"docs":{},"发":{"docs":{},"生":{"docs":{},"变":{"docs":{},"化":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}},"源":{"docs":{},"表":{"docs":{},"中":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}},"任":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"间":{"docs":{},"开":{"docs":{},"启":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"下":{"docs":{},"载":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"但":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},"混":{"docs":{},"用":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}},"值":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}},"允":{"docs":{},"许":{"docs":{},"设":{"docs":{},"置":{"docs":{},"参":{"docs":{},"数":{"docs":{},"值":{"2":{"docs":{},",":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"docs":{}}}}}},"同":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},":":{"docs":{},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"可":{"docs":{},"用":{"docs":{},"内":{"docs":{},"存":{"docs":{},"/":{"2":{"docs":{},"g":{"docs":{},"。":{"docs":{},"该":{"docs":{},"值":{"docs":{},"至":{"docs":{},"少":{"docs":{},"为":{"1":{"docs":{},"。":{"docs":{},"如":{"docs":{},"有":{"6":{"docs":{},"g":{"docs":{},"可":{"docs":{},"用":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"则":{"docs":{},"该":{"docs":{},"值":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"3":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"原":{"docs":{},"则":{"docs":{},"上":{"docs":{},"要":{"docs":{},"求":{"docs":{},"源":{"docs":{},"端":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"设":{"docs":{},"置":{"docs":{},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}},"两":{"docs":{},"端":{"docs":{},"的":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"的":{"docs":{},"分":{"docs":{},"别":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},"为":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"擎":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}},"暂":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"使":{"docs":{},"用":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"列":{"docs":{},"。":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}},"涉":{"docs":{},"及":{"docs":{},"外":{"docs":{},"键":{"docs":{},"引":{"docs":{},"用":{"docs":{},"父":{"docs":{},"表":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},",":{"docs":{},"回":{"docs":{},"放":{"docs":{},"时":{"docs":{},"会":{"docs":{},"单":{"docs":{},"独":{"docs":{},"回":{"docs":{},"放":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"并":{"docs":{},"行":{"docs":{},"。":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"更":{"docs":{},"改":{"docs":{},"了":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"插":{"docs":{},"件":{"docs":{},"运":{"docs":{},"行":{"docs":{},"(":{"docs":{},"而":{"docs":{},"非":{"docs":{},"此":{"docs":{},"前":{"docs":{},"的":{"docs":{},"单":{"docs":{},"一":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"遗":{"docs":{},"留":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"在":{"docs":{},"外":{"docs":{},"键":{"docs":{},"子":{"docs":{},"表":{"docs":{},"上":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"3/3.1_limitation.html":{"ref":"3/3.1_limitation.html","tf":0.009259259259259259},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}},"定":{"docs":{},"故":{"docs":{},"障":{"docs":{},"转":{"docs":{},"移":{"docs":{},"域":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}},"流":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"端":{"docs":{},"口":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.0967741935483871}},"使":{"docs":{},"用":{"docs":{},"说":{"docs":{},"明":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}},"号":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}},"配":{"docs":{},"置":{"docs":{},"可":{"docs":{},"在":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"3/3.2_ports.html":{"ref":"3/3.2_ports.html","tf":0.03225806451612903},"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304},"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},"。":{"docs":{},"和":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}}}},")":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}},";":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625},"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}},"将":{"docs":{},"现":{"docs":{},"有":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"导":{"docs":{},"出":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"同":{"docs":{},"步":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"名":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}},"过":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"列":{"docs":{},"数":{"docs":{},"目":{"docs":{},"不":{"docs":{},"对":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"目":{"docs":{},"标":{"docs":{},"表":{"docs":{},"已":{"docs":{},"存":{"docs":{},"在":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}},"权":{"docs":{},"限":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.03389830508474576}},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},".":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}},"。":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}},"而":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"原":{"docs":{},"生":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"机":{"docs":{},"制":{"docs":{},"的":{"docs":{},"原":{"docs":{},"因":{"docs":{},"是":{"docs":{},":":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}},"云":{"docs":{},"环":{"docs":{},"境":{"docs":{},"下":{"docs":{},",":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}},"行":{"docs":{},"数":{"docs":{},"过":{"docs":{},"多":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"触":{"docs":{},"发":{"docs":{},"汇":{"docs":{},"总":{"docs":{},"机":{"docs":{},"制":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},"需":{"docs":{},"要":{"docs":{"3/3.3_impact_on_dest.html":{"ref":"3/3.3_impact_on_dest.html","tf":0.015625}}}},"示":{"docs":{},"例":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"法":{"docs":{},"支":{"docs":{},"持":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"为":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"事":{"docs":{},"务":{"docs":{},"统":{"docs":{},"计":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}},"件":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"吞":{"docs":{},"吐":{"docs":{},"统":{"docs":{},"计":{"docs":{},"(":{"docs":{},"未":{"docs":{},"实":{"docs":{},"现":{"docs":{},")":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}},"延":{"docs":{},"迟":{"docs":{},"告":{"docs":{},"警":{"docs":{},"示":{"docs":{},"例":{"docs":{},"。":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"统":{"docs":{},"计":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}},"仅":{"docs":{},"对":{"docs":{},"增":{"docs":{},"量":{"docs":{},"(":{"docs":{},"含":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{},"输":{"docs":{},"出":{"docs":{},")":{"docs":{},"有":{"docs":{},"效":{"docs":{},",":{"docs":{},"其":{"docs":{},"原":{"docs":{},"理":{"docs":{},"为":{"docs":{},":":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}},"监":{"docs":{},"控":{"docs":{},"告":{"docs":{},"警":{"docs":{},"示":{"docs":{},"例":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}},"放":{"docs":{},"大":{"docs":{},"系":{"docs":{},"数":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"效":{"docs":{},"果":{"docs":{},"图":{"docs":{},":":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}},"根":{"docs":{},"据":{"docs":{},"g":{"docs":{},"o":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"器":{"docs":{},"原":{"docs":{},"理":{"docs":{},",":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"后":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"可":{"docs":{},"能":{"docs":{},"不":{"docs":{},"会":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"被":{"docs":{},"释":{"docs":{},"放":{"docs":{},"给":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"延":{"docs":{},"迟":{"5":{"docs":{},"s":{"docs":{},"以":{"docs":{},"上":{"docs":{},"并":{"docs":{},"持":{"docs":{},"续":{"1":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"时":{"docs":{},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"@":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"k":{"docs":{},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"s":{"docs":{},"c":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"启":{"docs":{},"增":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"功":{"docs":{},"能":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"套":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}},"类":{"docs":{},"别":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}},"型":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552}},"为":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"配":{"docs":{},"置":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},".":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},"中":{"docs":{},"打":{"docs":{},"开":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},",":{"docs":{},"并":{"docs":{},"配":{"docs":{},"置":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"3/3.4_metrics.html":{"ref":"3/3.4_metrics.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"$":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.06},"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.016}},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.00966183574879227}}}}}}}}}}}}}}}}},"{":{"docs":{},"p":{"docs":{},"w":{"docs":{},"d":{"docs":{},"}":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.05443548387096774}}},"告":{"docs":{},"警":{"docs":{},"规":{"docs":{},"则":{"docs":{},"文":{"docs":{},"件":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}},"填":{"docs":{},"写":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"层":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"可":{"docs":{},"填":{"docs":{},"多":{"docs":{},"个":{"docs":{},"。":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"参":{"docs":{},"数":{"docs":{},"后":{"docs":{},"点":{"docs":{},"击":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"调":{"docs":{},"用":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}},"邮":{"docs":{},"箱":{"docs":{},"收":{"docs":{},"到":{"docs":{},"告":{"docs":{},"警":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"任":{"docs":{},"务":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"异":{"docs":{},"常":{"docs":{},"发":{"docs":{},"送":{"docs":{},"告":{"docs":{},"警":{"docs":{"3/3.4.1_delay_alert.html":{"ref":"3/3.4.1_delay_alert.html","tf":0.004830917874396135}}}}}}}}}}}}}},"&":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192},"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.04},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925},"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}},"三":{"docs":{},"、":{"docs":{},"部":{"docs":{},"署":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}},"之":{"docs":{},"前":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"无":{"docs":{},"需":{"docs":{},"添":{"docs":{},"加":{"docs":{},"此":{"docs":{},"配":{"docs":{},"置":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}},"后":{"docs":{},"由":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"自":{"docs":{},"动":{"docs":{},"创":{"docs":{},"建":{"docs":{},"表":{"docs":{},"结":{"docs":{},"构":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"二":{"docs":{},"、":{"docs":{},"部":{"docs":{},"署":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}},"选":{"docs":{},"一":{"docs":{},"填":{"docs":{},"写":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}}}}}},"五":{"docs":{},"、":{"docs":{},"最":{"docs":{},"后":{"docs":{},"创":{"docs":{},"建":{"docs":{},"多":{"docs":{},"个":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"同":{"docs":{},"时":{"docs":{},"展":{"docs":{},"示":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"部":{"docs":{},"署":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"服":{"docs":{},"务":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"服":{"docs":{},"务":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}},"四":{"docs":{},"、":{"docs":{},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}},"带":{"docs":{},"宽":{"docs":{},"(":{"docs":{},"总":{"docs":{},"计":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}},"按":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"分":{"docs":{},"组":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0055248618784530384}}}}}}}}}}},"约":{"docs":{},"束":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"条":{"docs":{},"件":{"docs":{},"复":{"docs":{},"制":{"docs":{},"任":{"docs":{},"务":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}},"两":{"docs":{},"个":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"两":{"docs":{},"个":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"实":{"docs":{},"例":{"docs":{},"之":{"docs":{},"间":{"docs":{},"传":{"docs":{},"输":{"docs":{},"数":{"docs":{},"据":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"背":{"docs":{},"景":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}},":":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}},"虽":{"docs":{},"然":{"docs":{},"在":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"各":{"docs":{},"种":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"对":{"docs":{},"于":{"docs":{},"不":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"和":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"来":{"docs":{},"说":{"docs":{},"上":{"docs":{},"手":{"docs":{},"还":{"docs":{},"是":{"docs":{},"有":{"docs":{},"些":{"docs":{},"难":{"docs":{},"度":{"docs":{},"的":{"docs":{},"。":{"docs":{},"今":{"docs":{},"天":{"docs":{},"我":{"docs":{},"就":{"docs":{},"来":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},"以":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}},"选":{"docs":{},"择":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}},"添":{"docs":{},"加":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"用":{"docs":{},"户":{"docs":{"3/3.4.2_monitor.html":{"ref":"3/3.4.2_monitor.html","tf":0.0027624309392265192}}}}}}}},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"且":{"docs":{},"借":{"docs":{},"用":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}},"传":{"docs":{},"输":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}},"任":{"docs":{},"务":{"docs":{},"会":{"docs":{},"转":{"docs":{},"移":{"docs":{},"到":{"docs":{},"其":{"docs":{},"他":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"执":{"docs":{},"行":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"执":{"docs":{},"行":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}},"完":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"表":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"继":{"docs":{},"续":{"docs":{},"增":{"docs":{},"量":{"docs":{},"同":{"docs":{},"步":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"网":{"docs":{},"络":{"docs":{},"连":{"docs":{},"通":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"可":{"docs":{},"同":{"docs":{},"时":{"docs":{},"作":{"docs":{},"为":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}},"配":{"docs":{},"置":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}},"管":{"docs":{},"理":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"多":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"中":{"docs":{},"心":{"docs":{},"间":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"同":{"docs":{},"步":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}}}},"对":{"docs":{},"可":{"docs":{},"用":{"docs":{},"性":{"docs":{},"较":{"docs":{},"高":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}}}}}}}}}}},"部":{"docs":{},"署":{"docs":{},"结":{"docs":{},"构":{"docs":{"3/3.5_deployment.html":{"ref":"3/3.5_deployment.html","tf":0.022727272727272728}},"(":{"docs":{},"节":{"docs":{},"点":{"docs":{},"、":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"所":{"docs":{},"在":{"docs":{},")":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"信":{"docs":{},"息":{"docs":{},"储":{"docs":{},"存":{"docs":{},"在":{"docs":{},"了":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"最":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"是":{"docs":{},"进":{"docs":{},"度":{"docs":{},",":{"docs":{},"即":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"影":{"docs":{},"响":{"docs":{},"复":{"docs":{},"制":{"docs":{},"性":{"docs":{},"能":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},"异":{"docs":{},"常":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}},"]":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.011566265060240964},"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.012903225806451613},"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.018633540372670808},"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.009232728430436167},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.006048387096774193},"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.21212121212121213}},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.025806451612903226},"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.010080645161290322}}}},"因":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"没":{"docs":{},"有":{"docs":{},"改":{"docs":{},"名":{"docs":{},"前":{"docs":{},"的":{"docs":{},"表":{"docs":{},",":{"docs":{},"会":{"docs":{},"有":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"注":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0019277108433734939}}}},"应":{"docs":{},"满":{"docs":{},"足":{"docs":{},"一":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"在":{"docs":{},"开":{"docs":{},"启":{"docs":{},"m":{"docs":{},"t":{"docs":{},"s":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"不":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"数":{"docs":{},"据":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"填":{"docs":{},"写":{"docs":{},"和":{"docs":{},"最":{"docs":{},"近":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"新":{"docs":{},"表":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"创":{"docs":{},"建":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"会":{"docs":{},"报":{"docs":{},"错":{"docs":{},"重":{"docs":{},"启":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"创":{"docs":{},"建":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"正":{"docs":{},"常":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}}}}}}}}},"建":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}}},"无":{"docs":{},"法":{"docs":{},"和":{"docs":{},"m":{"docs":{},"t":{"docs":{},"s":{"docs":{},"同":{"docs":{},"时":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.00048192771084337347}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"获":{"docs":{},"取":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"1":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}},"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"3/3.6_DDL.html":{"ref":"3/3.6_DDL.html","tf":0.0009638554216867469}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"级":{"docs":{},"别":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"配":{"docs":{},"置":{"docs":{},"样":{"docs":{},"例":{"docs":{},":":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}},"现":{"docs":{},"为":{"docs":{},"执":{"docs":{},"行":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"及":{"docs":{},"限":{"docs":{},"制":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}},"若":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"和":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},",":{"docs":{},"则":{"docs":{},"回":{"docs":{},"放":{"docs":{},"用":{"docs":{},"户":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"‘":{"docs":{},"g":{"docs":{},"r":{"docs":{"3/3.7_DCL.html":{"ref":"3/3.7_DCL.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"量":{"docs":{},"耗":{"docs":{},"时":{"docs":{},"较":{"docs":{},"长":{"docs":{},",":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}},"不":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}},"依":{"docs":{},"照":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}},"据":{"docs":{},"步":{"docs":{},"骤":{"3":{"docs":{},"读":{"docs":{},"取":{"docs":{},"的":{"docs":{},"s":{"docs":{},"c":{"docs":{},"n":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"全":{"docs":{},"表":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"所":{"docs":{},"有":{"docs":{},"相":{"docs":{},"关":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"表":{"docs":{},"和":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"例":{"docs":{},":":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"写":{"docs":{},"入":{"docs":{},"目":{"docs":{},"标":{"docs":{},"表":{"docs":{},"时":{"docs":{},",":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}},"的":{"docs":{},"行":{"docs":{},"数":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"列":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}},"映":{"docs":{},"射":{"docs":{},"(":{"docs":{},"暂":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},")":{"docs":{},"。":{"docs":{},"见":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"所":{"docs":{},"有":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"某":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}},"名":{"docs":{},"变":{"docs":{},"换":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}},"选":{"docs":{},"择":{"docs":{},"、":{"docs":{},"列":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"变":{"docs":{},"换":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}},"反":{"docs":{},"向":{"docs":{},"任":{"docs":{},"务":{"docs":{},"会":{"docs":{},"交":{"docs":{},"换":{"docs":{},"正":{"docs":{},"向":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{"3/3.8_dtle_mapping.html":{"ref":"3/3.8_dtle_mapping.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"。":{"docs":{},"当":{"docs":{},"值":{"docs":{},"为":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"时":{"docs":{},",":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}},"影":{"docs":{},"响":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}},"某":{"docs":{},"些":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"部":{"docs":{},"署":{"docs":{},"会":{"docs":{},"定":{"docs":{},"期":{"docs":{},"清":{"docs":{},"除":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"3/3.9_binlog_relay.html":{"ref":"3/3.9_binlog_relay.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"的":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":2.52},"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"已":{"docs":{},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"行":{"docs":{},"删":{"docs":{},"除":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"上":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"3/3.10_consul.html":{"ref":"3/3.10_consul.html","tf":0.02}}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"可":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"官":{"docs":{},"方":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"。":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}}}}}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"集":{"docs":{},"合":{"docs":{},"(":{"docs":{},"不":{"docs":{},"是":{"docs":{},"点":{"docs":{},"位":{"docs":{},")":{"docs":{},",":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"有":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}},"写":{"docs":{},"入":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"行":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}},"用":{"docs":{},"时":{"docs":{},"间":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.04878048780487805}}}}}},"?":{"docs":{},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.009316770186335404}},")":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}}},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}},"支":{"docs":{},"持":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}},"解":{"docs":{},"析":{"docs":{},"为":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.006211180124223602}}}}}}}}}}}}},"前":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"置":{"docs":{},"知":{"docs":{},"识":{"docs":{},":":{"docs":{},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"d":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"同":{"docs":{},"步":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}},"转":{"docs":{},"化":{"docs":{},"后":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}},"轮":{"docs":{},"询":{"docs":{},"的":{"docs":{},"s":{"docs":{},"c":{"docs":{},"n":{"docs":{},"区":{"docs":{},"间":{"docs":{},"目":{"docs":{},"前":{"docs":{},"写":{"docs":{},"死":{"docs":{},"的":{"1":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"docs":{},"动":{"docs":{},"态":{"docs":{},"数":{"docs":{},"值":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"的":{"docs":{},"间":{"docs":{},"隔":{"docs":{},"目":{"docs":{},"前":{"docs":{},"写":{"docs":{},"死":{"docs":{},"的":{"5":{"docs":{},"秒":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"docs":{},"动":{"docs":{},"态":{"docs":{},"数":{"docs":{},"值":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"3/3.11_oracle_mysql.html":{"ref":"3/3.11_oracle_mysql.html","tf":0.003105590062111801}}}}}}},"及":{"docs":{},"启":{"docs":{},"动":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"和":{"docs":{},"参":{"docs":{},"考":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}},"基":{"docs":{},"于":{"docs":{},"r":{"docs":{},"p":{"docs":{},"m":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}},"容":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}},"本":{"docs":{},"架":{"docs":{},"构":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":5}}}}}},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"列":{"docs":{},"表":{"docs":{},"参":{"docs":{},"看":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}}}}},"灾":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"快":{"docs":{},"速":{"docs":{},"开":{"docs":{},"始":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}},"日":{"docs":{},"志":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}},"级":{"docs":{},"别":{"docs":{},"(":{"docs":{},"由":{"docs":{},"于":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}},"(":{"docs":{},"请":{"docs":{},"用":{"docs":{},"g":{"docs":{},"z":{"docs":{},"i":{"docs":{},"p":{"docs":{},"压":{"docs":{},"缩":{"docs":{},")":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}},"标":{"docs":{},"准":{"docs":{},"r":{"docs":{},"p":{"docs":{},"m":{"docs":{},"安":{"docs":{},"装":{"docs":{},"包":{"docs":{},"已":{"docs":{},"集":{"docs":{},"成":{"docs":{"4/4.0_installation.html":{"ref":"4/4.0_installation.html","tf":0.017241379310344827}}}}}}}}}}}}},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"的":{"docs":{},"可":{"docs":{},"用":{"docs":{},"内":{"docs":{},"存":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"否":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.0875},"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.07352941176470588},"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.11057692307692307}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.014423076923076924}}}}}}}}}},"地":{"docs":{},"址":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}},",":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}},".":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"强":{"docs":{},"制":{"docs":{},"要":{"docs":{},"求":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}},"收":{"docs":{},"集":{"docs":{},"监":{"docs":{},"控":{"docs":{},"项":{"docs":{},"的":{"docs":{},"周":{"docs":{},"期":{"docs":{},"(":{"docs":{},"秒":{"docs":{},")":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}}}}}}}}}},"避":{"docs":{},"免":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{"4/4.1_node_configuration.html":{"ref":"4/4.1_node_configuration.html","tf":0.00625}}}}},"源":{"docs":{},"端":{"docs":{},"清":{"docs":{},"除":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"导":{"docs":{},"致":{"docs":{},"任":{"docs":{},"务":{"docs":{},"失":{"docs":{},"败":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}}}},"输":{"docs":{},"出":{"docs":{"4/4.2_command.html":{"ref":"4/4.2_command.html","tf":0.010101010101010102}},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}},"~":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"元":{"docs":{},"素":{"docs":{},"内":{"docs":{},"容":{"docs":{},"见":{"docs":{},"下":{"docs":{},"方":{"docs":{},"说":{"docs":{},"明":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}}},"则":{"docs":{},"不":{"docs":{},"再":{"docs":{},"尝":{"docs":{},"试":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"为":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"表":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"整":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"实":{"docs":{},"例":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"完":{"docs":{},"全":{"docs":{},"执":{"docs":{},"行":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"指":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"表":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{"4/4.5_mysql_user_privileges.html":{"ref":"4/4.5_mysql_user_privileges.html","tf":0.01694915254237288}}}}},"即":{"docs":{},"使":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"被":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}},"先":{"docs":{},"将":{"docs":{},"源":{"docs":{},"端":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"如":{"docs":{},"下":{"docs":{},"报":{"docs":{},"错":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}},":":{"docs":{},"预":{"docs":{},"计":{"docs":{},"完":{"docs":{},"成":{"docs":{},"时":{"docs":{},"间":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"的":{"docs":{},"解":{"docs":{},"读":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}}},"后":{"docs":{},"自":{"docs":{},"动":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}},"期":{"docs":{},"是":{"docs":{},"否":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"优":{"docs":{},"化":{"docs":{},"/":{"docs":{},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}}}}},"完":{"docs":{},"整":{"docs":{},"参":{"docs":{},"考":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}},"常":{"docs":{},"用":{"docs":{},"通":{"docs":{},"用":{"docs":{},"配":{"docs":{},"置":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"量":{"3":{"docs":{},".":{"2":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}},"docs":{}}},"docs":{}}},"必":{"docs":{},"填":{"docs":{},"?":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.008021390374331552}}}},"须":{"docs":{},"用":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"指":{"docs":{},"定":{"docs":{},"复":{"docs":{},"制":{"docs":{},"起":{"docs":{},"点":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"过":{"docs":{},"后":{"docs":{},"继":{"docs":{},"续":{"docs":{},"尝":{"docs":{},"试":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"常":{"docs":{},"规":{"docs":{},"配":{"docs":{},"置":{"docs":{},"填":{"docs":{},"在":{"docs":{},"源":{"docs":{},"端":{"docs":{},"任":{"docs":{},"务":{"docs":{},"(":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}},"批":{"docs":{},"量":{"docs":{},"插":{"docs":{},"入":{"docs":{},"第":{"docs":{},"一":{"docs":{},"级":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{},"见":{"docs":{},"性":{"docs":{},"能":{"docs":{},"调":{"docs":{},"优":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}},"三":{"docs":{},"级":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}},"二":{"docs":{},"级":{"docs":{},"数":{"docs":{},"量":{"docs":{},"。":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}},"有":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"层":{"docs":{},"级":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"中":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"s":{"docs":{},"会":{"docs":{},"被":{"docs":{},"放":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"要":{"docs":{},"求":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.004010695187165776}}}}}}}},"每":{"docs":{},"个":{"docs":{},"元":{"docs":{},"素":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.00267379679144385}}}}}}}}}},"消":{"docs":{},"息":{"docs":{},"分":{"docs":{},"为":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"和":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}}},"次":{"docs":{},"读":{"docs":{},"取":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"变":{"docs":{},"更":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"消":{"docs":{},"息":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}}}}}}}},"点":{"docs":{},"位":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}},"击":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}},"此":{"docs":{},"下":{"docs":{},"载":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"级":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{},"配":{"docs":{},"置":{"docs":{},"后":{"docs":{},"该":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"会":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"在":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"见":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}},"下":{"docs":{},"方":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.0053475935828877}}}}},"读":{"docs":{},"取":{"docs":{},"后":{"docs":{},"分":{"docs":{},"块":{"docs":{},"发":{"docs":{},"送":{"docs":{},"的":{"docs":{},"分":{"docs":{},"块":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"内":{"docs":{},"存":{"docs":{},"较":{"docs":{},"小":{"docs":{},"时":{"docs":{},"需":{"docs":{},"适":{"docs":{},"当":{"docs":{},"调":{"docs":{},"小":{"docs":{},"。":{"docs":{},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"大":{"docs":{},"全":{"docs":{},"量":{"docs":{},"/":{"docs":{},"增":{"docs":{},"量":{"docs":{},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"整":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"应":{"docs":{},"为":{"docs":{},"布":{"docs":{},"尔":{"docs":{},"值":{"docs":{},".":{"docs":{"4/4.3_job_configuration.html":{"ref":"4/4.3_job_configuration.html","tf":0.001336898395721925}}}}}}}}}}},"性":{"docs":{},"能":{"docs":{},"调":{"docs":{},"优":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}},"低":{"docs":{},"、":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"大":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"会":{"docs":{},"在":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"批":{"docs":{},"量":{"docs":{},"插":{"docs":{},"入":{"docs":{},"。":{"docs":{"4/4.3.1_tuning.html":{"ref":"4/4.3.1_tuning.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}},"任":{"docs":{},"务":{"docs":{},"处":{"docs":{},"于":{"docs":{},"全":{"docs":{},"量":{"docs":{},"阶":{"docs":{},"段":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}},"增":{"docs":{},"量":{"docs":{},"阶":{"docs":{},"段":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}},"间":{"docs":{},"/":{"docs":{},"资":{"docs":{},"源":{"docs":{},"估":{"docs":{},"算":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}},"区":{"docs":{},"未":{"docs":{},"解":{"docs":{},"析":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}}},"忽":{"docs":{},"略":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"库":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}},"表":{"docs":{"4/4.3.2_job_sample.html":{"ref":"4/4.3.2_job_sample.html","tf":0.0035842293906810036}}}}}}}},"位":{"docs":{},"置":{"docs":{},":":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}},"停":{"docs":{},"止":{"docs":{},"(":{"docs":{},"删":{"docs":{},"除":{"docs":{},")":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}},"再":{"docs":{},"次":{"docs":{},"添":{"docs":{},"加":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"时":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"中":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"g":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"优":{"docs":{},"先":{"docs":{},"于":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}},"区":{"docs":{},"别":{"docs":{},"任":{"docs":{},"务":{"docs":{},"处":{"docs":{},"于":{"docs":{},"全":{"docs":{},"量":{"docs":{},"还":{"docs":{},"是":{"docs":{},"增":{"docs":{},"量":{"docs":{},"状":{"docs":{},"态":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}},"移":{"docs":{},"除":{"docs":{},"了":{"docs":{},"暂":{"docs":{},"停":{"docs":{},"/":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},".":{"docs":{"4/4.4_http_api.html":{"ref":"4/4.4_http_api.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"命":{"docs":{},"令":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"4/4.4.1_dtle_http_api.html":{"ref":"4/4.4.1_dtle_http_api.html","tf":0.0003183699458771092}}}}}}}}}}}}}}}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"步":{"docs":{},"骤":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"卸":{"docs":{},"载":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}},"恢":{"docs":{},"复":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"或":{"docs":{},"h":{"docs":{},"c":{"docs":{},"l":{"docs":{},")":{"docs":{},"添":{"docs":{},"加":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},"变":{"docs":{},"更":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}},"确":{"docs":{},"保":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}}}}}},"认":{"docs":{},"日":{"docs":{},"志":{"docs":{},"级":{"docs":{},"别":{"docs":{},"为":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"。":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"日":{"docs":{},"志":{"docs":{},"会":{"docs":{},"大":{"docs":{},"幅":{"docs":{},"降":{"docs":{},"低":{"docs":{},"性":{"docs":{},"能":{"docs":{},"。":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"4/4.6_dtle_2to3.html":{"ref":"4/4.6_dtle_2to3.html","tf":0.008}}},"维":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"协":{"docs":{},"助":{"docs":{},"诊":{"docs":{},"断":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"堆":{"docs":{},"栈":{"docs":{},"/":{"docs":{},"内":{"docs":{},"存":{"docs":{},"/":{"docs":{},"运":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{},"执":{"docs":{},"行":{"docs":{},"k":{"docs":{},"i":{"docs":{},"l":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"参":{"docs":{},"考":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.022988505747126436}}}}}},"结":{"docs":{},"果":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}},"解":{"docs":{},"析":{"docs":{},"源":{"docs":{},"端":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},",":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}},"遇":{"docs":{},"到":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"确":{"docs":{},"认":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"最":{"docs":{},"新":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"版":{"docs":{},"d":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"。":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}}}}}}}}}}}}}}}}}}}},"问":{"docs":{},"题":{"docs":{},"诊":{"docs":{},"断":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}}}},"队":{"docs":{},"列":{"docs":{"4/4.7_diagnosing.html":{"ref":"4/4.7_diagnosing.html","tf":0.011494252873563218}}}},"估":{"docs":{},"算":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}},"剩":{"docs":{},"余":{"docs":{},"行":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}}},"发":{"docs":{},"送":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"端":{"docs":{},"的":{"docs":{},"行":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}},"大":{"docs":{},"事":{"docs":{},"务":{"docs":{},"指":{"docs":{},"传":{"docs":{},"输":{"docs":{},"、":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"量":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"事":{"docs":{},"务":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"由":{"docs":{},"d":{"docs":{},"m":{"docs":{},"l":{"docs":{},"组":{"docs":{},"成":{"docs":{},"。":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"事":{"docs":{},"务":{"docs":{},"(":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"不":{"docs":{},"会":{"docs":{},"太":{"docs":{},"大":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{},"某":{"docs":{},"些":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"需":{"docs":{},"要":{"docs":{},"较":{"docs":{},"长":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"总":{"docs":{},"时":{"docs":{},"间":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.04878048780487805}}}},"行":{"docs":{},"数":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}},"硬":{"docs":{},"编":{"docs":{},"码":{"docs":{},"为":{"2":{"4":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.012195121951219513}}},"docs":{}},"docs":{}}}}},"预":{"docs":{},"计":{"docs":{},"完":{"docs":{},"成":{"docs":{},"时":{"docs":{},"间":{"docs":{"5/5.1_resource_estimation.html":{"ref":"5/5.1_resource_estimation.html","tf":0.024390243902439025}}}}}}}},"各":{"docs":{},"由":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"执":{"docs":{},"行":{"docs":{},".":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}},"至":{"docs":{},"少":{"docs":{},"需":{"docs":{},"要":{"1":{"docs":{},"个":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"1":{"docs":{},"个":{"docs":{},"a":{"docs":{},"g":{"docs":{"5/5.2_architecture.html":{"ref":"5/5.2_architecture.html","tf":0.07142857142857142}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}},"“":{"docs":{},"k":{"docs":{},"a":{"docs":{},"f":{"docs":{},"k":{"docs":{},"a":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}}}},"拥":{"docs":{},"有":{"5":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{"5/5.3_kafka_message_format.html":{"ref":"5/5.3_kafka_message_format.html","tf":0.0020161290322580645}}}}}},"docs":{}}},"待":{"docs":{},"支":{"docs":{},"持":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}},"最":{"docs":{},"大":{"docs":{},"长":{"docs":{},"度":{"docs":{},"限":{"docs":{},"制":{"docs":{},"为":{"6":{"docs":{},",":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"为":{"9":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}},"极":{"docs":{},"值":{"docs":{},"问":{"docs":{},"题":{"docs":{"5/5.4_columns_mapping.html":{"ref":"5/5.4_columns_mapping.html","tf":0.004807692307692308}}}}}},"模":{"docs":{},"板":{"docs":{},",":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.06666666666666667}}}}},"请":{"docs":{},"联":{"docs":{},"系":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"研":{"docs":{},"发":{"docs":{},"团":{"docs":{},"队":{"docs":{},".":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}}}}},"靠":{"docs":{},"谱":{"docs":{},"的":{"docs":{},"研":{"docs":{},"发":{"docs":{},"工":{"docs":{},"程":{"docs":{},"师":{"docs":{},"/":{"docs":{},"靠":{"docs":{},"谱":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"工":{"docs":{},"程":{"docs":{},"师":{"docs":{},".":{"docs":{"6/howto_contribute.html":{"ref":"6/howto_contribute.html","tf":0.03333333333333333}}}}}}}}}}}}}}}}}}}},"免":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"快":{"docs":{},"照":{"docs":{},"事":{"docs":{},"务":{"docs":{},"的":{"docs":{},"全":{"docs":{},"量":{"docs":{},"复":{"docs":{},"制":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}}}}}}},"加":{"docs":{},"密":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"动":{"docs":{},"态":{"docs":{},"增":{"docs":{},"减":{"docs":{},"同":{"docs":{},"步":{"docs":{},"对":{"docs":{},"象":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}}}},"库":{"docs":{},".":{"docs":{},"表":{"docs":{},"名":{"docs":{},"变":{"docs":{},"换":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}}}}},"生":{"docs":{},"态":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}},"路":{"docs":{},"线":{"docs":{},"图":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.010101010101010102}}}}},"过":{"docs":{},"滤":{"docs":{},"条":{"docs":{},"件":{"docs":{"7/7_roadmap.html":{"ref":"7/7_roadmap.html","tf":0.020202020202020204}}}}}}},"length":5109},"corpusTokens":["\"\"","\"\",","\"\"action_db_1\"\",","\"\"old_1\"\"","\"\"replicate_do_db\"\":","\"\"table_name\"\":","\"\"table_schema\"\":","\"\"tables\"\":","\"${node.datacenter}\"","\"${node.unique.name}\"","\"${node.unique.name}\",","\"...\"]","\"/opt/dtle/var/lib/nomad\"","\"/var/lib/nomad\"","\"/var/log/dtle/dtle.log\"","\"0.0.0.0\"","\"0.0.0.0:8193\"","\"0.11.2\"","\"0.8.3.final\",","\"0e70636d","\"10.186.63.20:4646\"","\"10.186.63.20:8190\"","\"10.186.63.20:8193\"","\"10.186.63.76:8500\"","\"127.0.0.1\"","\"127.0.0.1\",","\"127.0.0.1:4646\"","\"127.0.0.1:4646/v1/allocation/\"","\"127.0.0.1:4646/v1/job//alloc","\"127.0.0.1:4646/v1/job//allocations\"","\"127.0.0.1:4646/v1/job/dtl","\"127.0.0.1:4646/v1/jobs\"","\"127.0.0.1:4646/v1/nodes\"","\"127.0.0.1:4647\"","\"127.0.0.1:4648\"","\"127.0.0.1:8190\"","\"127.0.0.1:8193\"","\"127.0.0.1:8500\"","\"127.0.0.1:8500/v1/kv/dtle/aa/gtid?raw","\"127.0.0.1:8500/v1/kv/dtle/job_name/binlogpos?raw\"","\"127.0.0.1:8500/v1/kv/dtle/job_name/gtid?raw\"","\"127.0.0.1:8500/v1/kv/dtle/job_name?recurse\"","\"127.0.0.2\",","\"127.0.0.3\"]","\"15s\"","\"172.22.0.2\"","\"172.22.0.2:4646\"","\"172.22.0.2:8193\"","\"172.22.0.3\"","\"172.22.0.3:4646\"","\"172.22.0.3:8193\"","\"192.168.0.17\"","\"192.168.0.17:4646/v1/job/ali","\"192.168.0.17:4646/v1/jobs\"","\"1h\"","\"30m\"","\"30s\"","\"9.9.9.9","\"9.9.9.9\",","\"=\"","\"\\\"a\\\".\\\"a\\\"\",","\"]","\"a","\"a\",","\"abcdefghijklmnopqrstuvwxyz","\"acd7d195","\"action_db_1\"","\"action_db_1\",","\"action_db_2\"","\"actiontech\",","\"address\":","\"after\"","\"after\":","\"anne\",","\"annek@noanswer.org\"","\"appliertxqueuesize\":0,\"appliergrouptxqueuesize\":0,\"sendbytimeout\":0,","\"attempts\":","\"attributes\":","\"autoincremented\"","\"b\",","\"backlog\":\"\",\"throughputstat\":null,\"msgstat\":{\"inmsgs\":2,\"outmsgs\":2,\"inbytes\":299,","\"before\"","\"before\":","\"beijing\"","\"beijing\"]","\"bin.000022\",","\"binlogrelay\":","\"boolean\",","\"brokers\":","\"c\",","\"charsetname\"","\"colmap\",","\"columnmapfrom\":","\"columnmapto\":","\"columns\"","\"config\":","\"constraints\":","\"consul1\"","\"converter\":","\"creat","\"create\",","\"currentcoordinates\":{\"file\":\"bin.000075\",\"position\":18716,","\"customers\"","\"d\",","\"databasename\"","\"datacenter\":","\"datacenters\":","\"db\"","\"db\":","\"db1\"","\"dbserver1\",","\"dbserver1.inventory.customers.envelope\",","\"dbserver1.inventory.customers.key\"","\"dbserver1.inventory.customers.value\",","\"dc1\",","\"dcl_expand_syntax_support_true\",","\"ddl\"","\"defaultcharsetname\"","\"delay\"","\"demo","\"demo\",","\"demo_tbl\"","\"demo_tbl\",","\"dest\"","\"dest\",","\"dest_task\":","\"destconnectionconfig\":","\"desttype\":","\"detected\":","\"displaymessage\":","\"driver\":","\"driver.dtle\":","\"driver.dtle.full_version\":","\"driver.dtle.version\":","\"drivermessage\":","\"drivers\":","\"droptableifexists\":","\"dtle","\"dtle\"","\"dtle\",","\"dtle\":","\"dtle_log_level=info\"","\"email\"","\"email\":","\"execmastertxcount\":0,\"readmasterrowcount\":0,\"readmastertxcount\":0,\"eta\":\"n/a\",","\"executed_gtid_set\"","\"expand_syntax_support\":","\"expandsyntaxsupport\":","\"exponential\"","\"f6def853","\"f74aacb5","\"fail\"","\"field\":","\"fields\":","\"file\"","\"file\":","\"first_name\"","\"first_name\":","\"generated\"","\"gtid\"","\"gtid\":","\"gtid\":\"\",","\"gtid\":\"41f102d4","\"gtids\"","\"gtidset\":\"acd7d195","\"healthy\":","\"host\":","\"host\":\"mysql","\"host\":\"rm","\"http://127.0.0.1:4646/v1/job/dtl","\"http://127.0.0.1:4646/v1/jobs\"","\"id\"","\"id\",","\"id\":","\"id\":\"ali","\"id\":\"dtl","\"info\"","\"insert","\"int\",","\"int32\",","\"int64\",","\"interval\":","\"inventory\",","\"io.debezium.connector.mysql.source\",","\"jdbctype\"","\"job\":","\"job_id\":","\"job_stage_full\",","\"job_stage_incr\",","\"json\"","\"kafka\"","\"kafkaconfig\":","\"kretchmar\",","\"last_name\"","\"last_name\":","\"latin1\",","\"length\"","\"ltarget\":","\"mysql","\"mysql\"","\"mysql2\"","\"mysql_src_task_config\":","\"name\"","\"name\":","\"new_1\"","\"new_3\"","\"noddldropindex\",","\"noddldropschema\",","\"noddldroptable\",","\"noddltruncate\"]。详见下文。","\"nomad0\",","\"nomad1\"","\"nomad1\",","\"nomad2\"","\"nomad2\",","\"nomad3\"","\"old_1\"","\"old_2\"","\"op\"","\"op\":","\"operand\":","\"optional\"","\"optional\":","\"oracl","\"oracle\",","\"outbytes\":0,\"reconnects\":0},\"bufferstat\":{\"extractortxqueuesize\":0,","\"pass\"","\"password\":","\"password\":\"acti0ntech\"","\"payload\":","\"port\":","\"port\":\"3306\",","\"pos\"","\"pos\":","\"position\"","\"primarykeycolumnnames\"","\"ready\",","\"relaymasterlogfile\":\"\",\"readmasterlogpos\":0,\"retrievedgtidset\":\"\"},","\"replicate_do_db\":","\"replicatedodb\":","\"replicatedodb\":[","\"reschedule\":","\"roma_logminer\",","\"root\",","\"row\"","\"row\":","\"rtarget\":","\"sbtest1\"","\"sbtest2\"","\"sbtest3\"","\"schema","\"schema\":","\"scn\":","\"select","\"sendbysizefull\":0},\"stage\":\"wait","\"server\"","\"server_id\"","\"server_id\":","\"servicename\":","\"shanghai\"","\"show","\"skipcreatedbtable\":","\"snapshot\"","\"snapshot\":","\"source\"","\"source\":","\"src\"","\"src\",","\"src_task\":","\"srcconnectionconfig\":","\"srcoracleconfig\":","\"stats\"","\"status\":","\"string\",","\"struct\",","\"t1\"","\"table\"","\"table\":","\"table_name\":","\"table_schema\":","\"tablechanges\"","\"tablename\":","\"tablename\":\"testdemo\",","\"tableregex\":\"(\\\\w*)shard(\\\\w*)\",","\"tablerename\":","\"tablerename\":\"${1}rename\"","\"tablerename\":\"renamedemo\"","\"tables\"\":","\"tables\":","\"tables\":[","\"tables\":[{","\"tableschema\":","\"tableschema\":\"demo\",","\"tableschemaregex\":\"(\\\\w*)src(\\\\w*)\",","\"tableschemarename\":\"demorename\"","\"tableschemarename\":\"rename${1}\",","\"tablestats\":null,\"delaycount\":null,\"progresspct\":\"0.0\",\"execmasterrowcount\":0,","\"task","\"task_name\":","\"taskgroups\":","\"tasks\":","\"tb1\"","\"test\"","\"test\",","\"test\".\"caseinsensitive\"","\"test_constraint\"","\"thread\"","\"thread\":","\"timestamp\":1599130915717858000}","\"topic\":","\"true\",","\"ts_ms\"","\"ts_ms\":","\"ts_sec\"","\"ts_sec\":","\"type\"","\"type\":","\"typeexpression\"","\"typename\"","\"u\"","\"unlimited\":","\"user\":","\"user\":\"actiontech\",","\"user\":\"root\",","\"version\"","\"version\":","\"where\":\"a>=5\"","\"where\":\"a其中定义了:","\"xe\",","\"暂停/恢复job\"被\"删除/添加job\"代替","#","##","#361","#5863","#840","$","$labels.inst","$labels.task_nam","${pwd}/alertmanager.yml:/etc/alertmanager/alertmanager.yml","${pwd}/prometheus.yml:/etc/prometheus/prometheus.yml","${pwd}/prometheus_rule.yml:/etc/prometheus/prometheus_rule.yml","&","'","''","'');","'';","'.'","'.[]","'.status'","'/metrics'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo01.log'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo02.log'","'/u01/app/oracle/fast_recovery_area/xe/onlinelog/redo03.log'","'/v1/metrics'","'actiontech'@'%'","'actiontech'@'%';","'binlog_format';","'binlog_row_image';","'dtle'","'email","'gtid_mode';","'http://127.0.0.1:4646'","'log_bin'","'log_slave_updates';","'nomad'","'prometheus_rule.yml'","'receiver@actionsky.com'","'repeat_interval'","'root'@'%'","'sender_account'","'smtp.gmail.com:587'","'t10',","'t7',","'team","'test","'test'@'%';","'{\"signal\":","(","(\"firstname\"","()","(),(),","(0.00","(0.02","(1","(1,","(1991),","(2,","(2.19.03.0+","(2.19.11.0+)","(20,10),","(2020),","(3,","(3.20.08.0+)","(4,","(50,maxvalue),","(64m)","(65,maxvalue),","(8小时)","(\\n","(`author_last_published`","(`col2`","(`employee_id`","(`firstname`","(`id`)\\n)","(a","(a(2));","(a(3));","(a);","(a,","(actiontech/dtle#688)","(all)","(author_last_publish","(bind)","(c","(c_varchar_1","(col1","(col_nam","(col_name)","(column_list)","(d","(data","(ddl)","(dtle使用的传输协议)","(employee_id))","(foreign","(http","(hy000):","(id","(id)","(id));","(id);","(job_name,","(key_part(prefix","(key_part));","(key_part);","(key_part,","(lower_case_table_names)","(maxvalue));","(maxvalue,maxvalue));","(my.cnf中填写合法文件名)","(mysql","(nomad","(partit","(schemachangetopic)","(select","(sidea","(sqrt(sidea","(year_col","(year_col)","(与mysql通信的内网dtl","(中继)","(参考配置中开启)","(双向复制","(可使用","(如dble)","(如阿里云rds会增加隐式主键列,","(字节)","(将自动求差集获取上述","(执行节点,运行dtle插件)","(目前仅支持关系符和简单函数)","(相关参数:","(省略未更改项目)","(管理节点)和client","(运行dtle插件)支持多种不同的部署结构,","(适用dtle","(通过","(需要server集群存活一半以上)","(预计完成时间)",")","))",");",")将现有job导出","*","***************************","**/","*.*","+",".","...","...)","...,","...='...';","...identifi","./dtle",".id,",".rpm",".status'","/","/**","//dtle//","/1024","/1024)","/30","/dtle/etc/dtle/nomad.hcl","/dtle/var/lib/nomad","/etc/consul","/etc/dtle/consul.hcl","/etc/dtle/nomad.hcl:","/etc/dtle/nomad.hcl:","/etc/nomad","/opt/dtl","/opt/dtle/etc/dtle/","/opt/dtle/var/log/nomad/","/path/to/prometheus.yml","/path/to/prometheus.yml:/etc/prometheus/prometheus.yml","/percent(0","/u01/app/oracle/oradata/archive_log","/usr/share/dtle/scripts/","/usr/share/dtle/scripts/dtl","/v2/database/column","/v2/database/instance_connect","/v2/database/schema","/v2/job/gtid","/v2/job/migration/cr","/v2/job/migration/delet","/v2/job/migration/detail","/v2/job/migration/paus","/v2/job/migration/resum","/v2/job/migration/revers","/v2/job/migration/reverse_start","/v2/job/migration/upd","/v2/job/reverse_start","/v2/job/subscription/cr","/v2/job/subscription/delet","/v2/job/subscription/detail","/v2/job/subscription/paus","/v2/job/subscription/resum","/v2/job/subscription/upd","/v2/job/sync/cr","/v2/job/sync/delet","/v2/job/sync/detail","/v2/job/sync/paus","/v2/job/sync/resum","/v2/job/sync/revers","/v2/job/sync/reverse_start","/v2/job/sync/upd","/v2/jobs/migr","/v2/jobs/subscript","/v2/jobs/sync","/v2/log/level","/v2/login","/v2/login/captcha","/v2/loginwithoutverifycod","/v2/monitor/task","/v2/mysql/column","/v2/mysql/instance_connect","/v2/mysql/schema","/v2/node","/v2/role/cr","/v2/role/delet","/v2/role/list","/v2/role/upd","/v2/tenant/list","/v2/user/cr","/v2/user/current_us","/v2/user/delet","/v2/user/list","/v2/user/list_act","/v2/user/reset_password","/v2/user/upd","/v2/validation/job","0","0,","0.概述","02000aba3e28:1","0242ac120003:1","0242ac120004:1","0242ac130002:1","0242ac130002:6","0242ac150002:1","04t06","06cd","09t14:05:00+08:00","0eb1","1","1\"","1\"}","1\"})","1\"}[30s])","1\"}[60s])","1\"}[60s]))","1,","1.","1.0","1.0.mysql的单向复制/聚合/分散","1.1","1.1.跨数据中心的双向复制","1.2","1.2.公有云间的数据同步","1.3","1.3.mysql到kafka的数据变更通知","1.4","1.4.oracle到mysql的数据同步","1.不支持复制event","1.不支持复制trigger","1.目标端数据库@@foreign_key_check","10","10,","100","100)","1004","1004,","100:200:300","10g;","11","11);","11,","11e8","11e9","11g","12,","123","1236","127.0.0.1","127.0.0.1:4646/v1/client/allocation/b0a227c1","127.0.0.1:4646/v1/job","127.0.0.1:4646/v1/job/","127.0.0.1:4646/v1/job/mi","127.0.0.1:8190","127.0.0.1:8190/metric","127.0.0.1:8193","127.0.0.1:8500,","128","12开始支持)","13","13,","13540040119,","13910506562,","14,","143934","143962\",","1486500577691","15","15,","1521,","1521:1521","154,","16,","1641807976,","17,","175\",","18,","1800000000000,","18503063188,","185e","18930110869,","19,","1m","1的配置为例,具体配置参考节点配置:","2","2.","2.0","2.0.1.http","2.0.mysql的单向复制","2.1.mysql的聚合复制","2.2.mysql的数据分散","2.3.mysql的跨数据中心的双向复制","2.4.阿里云到京东云的mysql复制","2.5.mysql到kafka的数据变更通知","2.6.oracle到mysql的数据同步","2.7.多nomad","2.dtle","2.x","2.x升级到dtle","2.x并删除数据目录。","2.x的http","2.x的显著差异","2.x运行中。","2.源端event产生的数据会复制到目标端","20,","200","2000","2020","2022","21),","2181:2181","22),","23),","24));","2500","28800","2bb9","2to3.pi","2升级到3","2次重启均失败后,会根据reschedule配置,在其他节点上执行","3","3,","3.","3.0.功能/场景的映射列表","3.1.使用限制","3.10.consul","3.11.oracl","3.2.端口使用说明","3.21.07.0中nomad升级为1.1.2,需要添加如下配置使nomad提供监控数据","3.21.07.0来搭建一个dtle的监控系统。","3.21.10.0+.","3.3.对目标端数据库的影响(gtid_executed表)","3.4.1.延迟监控告警","3.4.2.搭建监控系统","3.4.监控项说明","3.5","3.5.部署结构","3.6.ddl支持度","3.7.dcl支持度","3.8.dtle","3.9.binlog","3.x","3.x。将导出的job配置提交到","3.x。配置/etc/dtle/nomad.hcl,","3.x作为nomad插件运行,并且需要consul伴随执行。","300","3000:3000","32","3306,","33061","33061:3306","33062","33062:3306","33063","33063:3306","39.502.log.gz","4","4,","4.","4.0.安装步骤","4.1.节点配置","4.2.命令说明","4.22.07.x升级到4.22.11后,","4.3.1.性能调优","4.3.2.job示例","4.3.作业(job)配置","4.4.1.dtle","4.4.http","4.5.mysql","4.6.dtle","4.7.问题诊断","400","439,","46","4646","4646:4646","4647","4648","4;","5","5\",","5,","5.1.时间/资源估算","5.2","5.3","5.4","5.6/5.7","5.7)和caching_sha2_password(mysql","5.7.22+","500","500m;","5646:4646","5;","5]目标端账户需要creat","5s","6,","6.如何参与","6580","66","67108864","7\",","7,","7,42158e2f","7.路线图","7d5a0766","7to11.pi","7to11.py更新现有job配置格式.","8","8,","8.0","8.0)","8.0)或","8.0),其他认证方式不详","8190","8190:8190","8193","820","8500","8500:8500","852990221","86","8]","8aeb","8de7","9,","9.9.9.9","9090:9090","9092:9092","9093:9093","928f","961786003",":","=",">",">1","?)","?))","@@foreign_key_check","@@foreign_key_checks=off。外键的级连操作(如on","@@foreign_key_checks=on。可以触发外键级连操作。","@@gtid_purged;","@@net_write_timeout","@@version\\g\"","@job","@job.json","@job1.json","@src1_dst.json","@src2_dst.json","@src_dst1.json","@src_dst2.json","[","[\"127.0.0.1\",","[\"127.0.0.1:9093\"]","[\"127.0.0.1:9192\",","[\"a\"],","[\"b\"],","[\"dc1\"],","[\"kafka","[\"noddldroptable\"]","[\"nodmldelete\",","[\"shanghai\",","[\"val\"]","['10.186.63.20:4646']","['10.186.63.20:8190']","['10.186.63.76:4646']","['10.186.63.76:8190']","['127.0.0.1:8190','127.0.0.2:8190']","['prometheus']","[1]","[]","[],","[if","[mysql","[x]","[{","\\","\\g","]","],","_systemd_unit=dtl","_utf32\"...\")","`a`","`actiontech`.*","`alter_name2`","`alter_new_name1`","`col2`)values(?,","`col2`=?where((`col1`","`emp_id_uk_demo`(`employee_id`))","`id`","`test`.`addcolumn`","`test`.`caseinsensitive`","`test`.`char_256_columns`","`test`.`char_256_columns`(`col1`,","`test`.`dropcolumn1`","`test`.`dropcolumn1`.`col1","`test`.`droptable`","`test`.`employees_demo`","`test`.`modifycolumn`","`test`.`renamecolumn`","`test`.`renamecolumn`.`col1`","`test`.`renamecolumn`.`colnew1`","a\",","a\"]","a.a","a.a;","above.","access","acd7d195","action","action.","actiondb的数据传输","actiontech.github.io/dtl","actiontech/dtl","actiontech/dtle#321)","actiontech/dtle#541","actiontech/dtle#600","actiontech/dtle:latest","actiontech@%","actiontech@180.169.60.146","ad","add","addcolumnclas","address","address=\"http://127.0.0.1:4646\"","address=\"http://192.168.1.1:4646\"","address=...,","address=http://127.0.0.1:4646","address为,需要是本地网卡配置的地址","addr为对外告知连接用的地址","admin/admin登录","admin_onli","advertis","advertise_addr","after,","agent","agent,","agent数量不限","agent端。","agent端的http接口,将本地的job.json提交到nomad","alert","alert:","alerting:","alertmanag","alertmanager.yml","alertmanagers:","alertmanager配置","alertnam","alloc","allocation.","allocation//stat","allocation:","allocation_id","allow_anonymous_login=y","allow_plaintext_listener=y","alter","alter,","alter_name2","alter_new_name1","alway","annot","annotations:","api","api_addr","apikey","apikeyauth","api、nomad","api。参考值:\"0.0.0.0:8190\"。为空则关闭兼容层。","api中用于对mysql密码解码。(具体用法见dtl","api兼容层的端口","api兼容层,则需要额外映射8190端口:","api的封装。","api说明","api(开启方式见\"节点配置\",api_addr),可与dtl","applier_tx_queue_s","archivelog;","args=[0,","args=[3,","args=[5,","attempt","attribut","author","auto_gtid","auto_incr","auto_increment,","auto_increment,\\n","auto_increment=100;","auto_increment=4","auto_increment值和源端不一致(mysql","autogtid","b","b);","b,","b0a227c1","b274","b322","b8bfe7607adc/sign","b910","b;","backlog","base64captcha","bash","basic","basic_task_profil","bdd1","befor","before,","begin","bfile","big_tx_max_job","big_tx_max_jobs时,所有job都会进入等待模式。","bigint","bin.000003\",","bin.000075//dtle//11909","bin=bin","binari","binary(16)","binary;","binary_doubl","binary_float","bind","bind_addr","binlog","binlog)","binlog_event_queue_s","binlog_format","binlog_relay","binlog_row_imag","binlog_transaction_dependency_track","binlog_valid","binlogfil","binlogpo","binlogrelay","binlog中的数据与表结构不符)","binlog储存位置为","binlog暂存到dtle本地","binlog读到本地,","bitnami/kafka","bitnami/kafka:latest","bitnami/zookeep","blob","bodi","bool","boolean","bootstrap","bootstrap_expect","bound","broker","brokers,","btree;","buffer(源端)","buffer(目标端)","buffer.dest_queue_s","buffer.send_by_size_ful","buffer.send_by_timeout","buffer.src_queue_s","buffer_statu","bug","bug#83030)","bulkinsert1","bulkinsert2","bulkinsert3","c","c));","c139","c;","c_varchar_2","captcha","captcha_id","captcha_typ","cascade;","cascade)将无法生效。","cat","cbaa","cdc","cdc场景","cert_file_path","chang","changes.topic\"","change消息中,key永远为null,","char","char(100)","char(13),","char(20)","char(20))","char(20),","char(20);","char(5))","char(5),","char(n),","charact","character(n)","character_set","characterist","charset","charset=latin1\",","check","check(expr));","checksum","checksum=1;","chown","chr","chunk_siz","chunksiz","chunksize为配置项","client","client,","client.","client_addr","client。一个nomad进程可以同时作为server和client,也可以只担任一个角色。","client数量任意","client节点上执行。当源端目标端mysql之间网络延迟很大时,应在各个主机/机房设立nomad","client需部署在网络边界上","client(运行dtle插件)执行job","client,并限制","clob","cluster","cn","cn/3/3.4_metrics.html","code","code:","col1","col1=2;","col2","col2='a","col3","collat","collate=gbk_chinese_ci;","collate=latin1_swedish_ci;","collate=utf8_general_ci;","collection_interv","colnew1","column","column_definit","column_definition);","column_map_from","columnmapfrom","columnmapfrom:","columnmapto:","columnmapto参数,将表a和表b合并到表colmap。忽略原id,使用新的自增id作为主键。","columns(a,b)","columns;","comment","comment';","comment='';","commit;","common.joblistitemv2","common.jobstep","common.rol","common.us","commun","compat","compress","compression='zlib';","config","config.","config=/path/to/nomad.hcl","configur","config中设置parallelworkers,控制增量并行回放线程数。参考值为8~64。","connect","connect,resourc","connection_config","connection_info","connection_valid","connectionconfig","consistency=1","consol","constraint","consul","consul.servic","consul:latest","consul中保存的dtle进度(gtid)","consul中储存的job","consul的传输/通信会使用如下端口:","consul的地址,","consul配置","consumer.sh","contain","convert","converter。目前仅支持json","count(*)","cpu","cpu=100,memory=300。","cpu使用率(dtl","cpu使用率(nomad)","cpu使用率(总计)","creat","create,","create_tim","curl","curl命令实际上是调用nomad","current","current_coordin","current_timestamp","current_us","current_user_password","d","d29f","data","data_dir","data_schem","data_sourc","databas","database_typ","datacent","date","date)","date);","datetim","datetime)","day(p)","db_name","db_name;","db_recovery_file_dest_s","dc1","dc1\"","dc1\",","dc1,","dc1.json","dc1.json,","dc1内的配置并重启","dc1内的配置并重启:","dc1到dc2的复制任务","dc1容器存在两个网络","dc1的gtid:","dc1通信的公网dtle","dc2","dc2\"","dc2\",","dc2,","dc2.","dc2.json","dc2.json,","dc2内的配置并重启","dc2内的配置并重启:","dc2容器存在两个网络","dc2的gtid:","dc2通信的公网dtle","dcl支持度","dcl类型","ddl","ddl支持","ddl支持度","ddl类型","ddl语句示例","debezium","dec(p,s)","decimal(38)","decimal(p,s)","decimal(p,s),","default","default,","default:tru","definer;","delay","delay\"","delay.tim","delay_count","delay_funct","delet","delete,","delete后job信息仍会在nomad上保留一段时间供查询,直到nomad自动回收(gc)","demo","demo\"","demo\",","demo.a","demo.b","demo.colmap","demo.demo_tbl","demo.demo_tbl\"","demo.demo_tbl(a","demo.renamedemo","demo.test1rename,demo.test2rename,demo.test3renam","demo.test1shard,demo.test2shard,demo.customer,demo.test3shard","demo.testdemo","demo;","demo_tbl的复制数据条件","demo_tbl的复制数据条件为a","demo_tbl的复制数据条件为a>=5","demorenam","dependency_history_s","dependencyhistorys","desc","descript","description:","dest","dest,","dest:","dest_applied_incr_query_count","dest_applied_incr_tx_count","dest_task","dest_us","destconnectionconfig","desttyp","detail.","dev.","dictionari","disabled.","dml","dml支持","dml类型","dn","doc","docker","docs/alloc","docs/job","docs/nod","docs/statu","doubl","double,sideb","double,sidec","driver","driver.dtl","driver.dtle.full_vers","driver.dtle.vers","driver_config_valid","driverconfigvalid","drop","drop,","drop_table_if_exist","dropcolumnclaus","droptableifexist","dst","dst\",","dst1","dst1\",","dst2","dst2\",","dst:9092","dst:9092\"],","dst_addr_list","dst_config","dst_data_bas","dst_database_typ","dst_kafka","dst_pwd","dtle","dtle(存储dtle元数据)","dtle.gtid_execut","dtle.gtid_executed_v4","dtle.gtid_executed_v4;","dtle.gtid_executed_v4的建表语句如下:","dtle_buffer_dest_queue_s","dtle_buffer_src_queue_s","dtle_delay_tim","dtle_delay_time{host=\"dtl","dtle_log_level","dtle_node_info","dtle_vers","dtle不检测数据冲突。如果回放报错(如应数据冲突导致update了不存在的列),则job报错。","dtle二进制文件仅作为nomad插件使用。各项功能通过nomad二进制执行。","dtle会使用两个固定数量(行数)的批量插入preparedstatement,默认为4和8。超过8的会被分到下一批。小于4的会单独插入。","dtle会在目标端自动创建表dtle.gtid_executed_v4,","dtle会将ddl写入schemachangetopic。该topic值可配置.","dtle全量标记增量开始位置,","dtle单独生成日志,不再和nomad合并。每512mb进行rotate和压缩,生成文件形如dtl","dtle在传输/回放事务时,取时间戳和当前时间的差值为延迟值","dtle增量复制依赖binlog,如果binlog被清除则复制会出错","dtle所有监控项:https://actiontech.github.io/dtl","dtle插件需要consul以储存任务信息","dtle支持mysql到kafka的数据变更通知,","dtle支持mysql间的双向复制,","dtle支持oracle到mysql的数据同步通知,","dtle支持的值为0或1。","dtle根据数据量(内存计数值)来估计内存占用。因程序处理,实际使用的内存有放大效应","dtle监控labels:instance的值建议设置为dtle服务器的hostnam","dtle配置的mysql用户,","dtle集群","dumpentrylimit","dynamically.","e","e37dcf7a4bca\",","each","east","eeb399e9\"","effect","email_configs:","emp_id_uk_demo","emp_last_name_nn_demo","employee_id","empty_blob","empty_clob","enabl","encrypt","enforc","engin","engine=innodb","engine=innodb;","entry冲突insert语句,可能导致目标端的","err:","error","error:","eta","etl","eval_create_index","evalu","evaluation_interval:","event","event,","event_body;","event_nam","event_name;","event_name_new;","event_typ","exec","exec_master_row_count","exec_master_tx_count","execute,","exist","exists]","exists,保持库同步","expand_syntax_support","expandsyntaxsupport","export","expr:","extractor","extractor_tx_queue_s","fail","fail_ov","failov","fals","false,","false)。","faq","featur","file","filter","filter_job_dest_ip","filter_job_dest_port","filter_job_id","filter_job_src_ip","filter_job_src_port","filter_job_statu","filter_ten","filter_usernam","finish","fire","first","first;","fk_child_5_1;","float","float(p)","float类型无法精确匹配)","for:","foreign","foreignkeycheck","format:","formdata","from和to的列数量必须相等.","full","full_t7_1","fulltext","function","ga","gb18030","gb2312,","gbk,","gener","gitbook","github","github.com/actiontech/dtl","github:","global","global:","gno编号。若某行该列为0,则表明这是一个汇总行","grafana/grafana","grant","grep","group","group.","group:","group_max_s","group_timeout","groupmaxs","groupmaxsize默认值1,即每个事物立刻发送。增大后将等待数据量达到设定值再打包发送多个事务。","groups:","grouptimeout","gtid","gtid)","gtid,","gtid.","gtid:","gtid_mod","gtid_mode_valid","gtid_next","gtid_next=...","gtid_set","gtid_set:","gtidstart","gtid点位","gtid点位,","gtid点位为","gtid点位为空,","h","hash","hash(col1);","hash(expr)","hcl","header","healthi","hex(source_uuid),","hextoraw","host","hostname=prometheu","http","http://${grafana_server_ip}:3000","http://${prometheus_server_ip}:9090/target","http://127.0.0.1:4646,","http://127.0.0.1:4646,为","http://127.0.0.1:8190/v2/log/level","http://127.0.0.1:9090,","https://debezium.io/docs/connectors/mysql/#data","https://debezium.io/documentation/reference/1.8/tutorial.html","https://github.com/actiontech/dtle/issues/787","https://github.com/actiontech/dtle/issues/795#issuecom","https://stedolan.github.io/jq/tutorial/","https://www.consul.io/docs/agent/options.html#configuration_fil","https://www.nomadproject.io/api","https://www.nomadproject.io/docs/configuration/","https://www.nomadproject.io/docs/job","https://www.nomadproject.io/docs/operations/metr","https://www.nomadproject.io/docs/runtime/interpolation#interpreted_node_var","hub","id","id;","id=1","id=2","id=3","identifi","ignor","imag","immediate;","in_byt","in_messag","includ","increase(dtle_network_in_bytes{host=\"dtl","increase(dtle_network_out_bytes{host=\"dtl","indec","index","index(key_part,","index,","index_nam","index_name;","index_name_new;","index_name_old","index_typ","indic","inf/nan数据","inf/nan数据,mysql","info","info.","init","innodb","insert","insert,","insert使用replace回放,故insert冲突时,效果是last","insert)","instanc","instance.","instance:","int","int(11)","int(11));","int)","int);","int,","int,`last_name`","int,nam","int64.","integ","integer,","interfaces,","intern","interv","into语句或者执行产生dupl","introduct","ip","ipv6","ip}:8190/swagger/index.html通过swagg","irate(dtle_dest_applied_incr_query_count[30s])","irate(dtle_dest_applied_incr_tx_count[30s])","irate(dtle_src_extracted_incr_query_count[30s])","irate(dtle_src_extracted_incr_tx_count[30s])","is_mysql_password_encrypt","is_password_encrypt","issue,","issues页面","itd","ivh","jd","job","job.","job.hcl","job.hcl通过以下配置在replicatedodb指定的范围内忽略db1.tb1,最终只复制库db1结构,但不复制db1下的任何表","job.hcl通过以下配置在replicatedodb指定的范围内忽略db1.tb1,最终复制库db1下除了tb1以外的表","job.hcl通过以下配置在replicatedodb指定的范围内忽略表db1和db1下的所有表,最终效果是没有要复制的库表","job.hcl通过以下配置忽略表db1及db1内所有的表","job.json","job.json中replicatedodb配置:","job.json格式差异","job.json的内容说明参看","job1.hcl","job?purge=tru","job_base_info","job_config","job_create_tim","job_id","job_modify_index","job_nam","job_name,","job_name:","job_stag","job_stage_ful","job_stage_incr","job_statu","job_step","job_validation_error","job_validation_warn","job、group","job、task、alloc的概念","job删除后进度(gtid)仍然保存在consul","job包含多个task。一个dtl","job有src和dest两个task。","job相关","job示例:","job配置","job配置expandsyntaxsupport=tru","job,可运行hcl或json格式的job。","journalctl","jq","jq是一款格式化、提取json内容的工具。一般需使用linux包管理器安装。","json","json文件。需手动填写文件里的密码。","kafka","kafka_broker_addr","kafka_top","kafka_zookeeper_connect=kafka","kafkaconfig","kafka的数据传输","kafka目标端信息,","key","key(col3)","key(id,","key)","key)\"","key);","key,","key;","key_file_path","key_part));","key_part));\"","key_part);","key_t1_1","key_t2_1","key_t3_1","key_t4_1","key_t5_1","key_t6_1","key_t8_1","key_t9_1","key后,原外键父表依然会被认为是外键父表。","key和value各自又有schema和payload","key是该次变更的主键","kibibits/sec","kv中","l","label","labels:","last_nam","latin1","latin2","latin2_general_ci;","layer","le)","leader","less","level","limit","linear","list","list.","lob_erase,sel_lob_loc","localhost.localdomain","localtimestamp","locat","lock","lock,以防止在创建快照期间表结构发生变化","log","log_archive_dest_1='location=/u01/app/oracle/oradata/archive_log'","log_bin","log_bin_trust_function_cr","log_fil","log_level","log_slave_upd","logfil","login","loginv2","loginwithoutverifycodev2","logminer不支持","logminer解析异常","logs;和select","long","longblob","longtext","longtext,","lower_case_table_names参数,","mail","mails'","manager数量应为1、3或5个","map","mapping支持","master","master_auto_posit","max_delay","maxvalue);","mb","mebibyt","member","memori","memory.full_kb_count","memory.full_kb_est","memory.incr_kb_count","memory.incr_kb_est","menu_level","menu_url","messag","message_group_max_s","message_group_timeout","messagegroupmaxs","messagegrouptimeout","metrics_path:","mhz","migrat","migration_job_config","migration_src","minute.","minutes.","minutes.\"","misc","mkdir","mode","mode=on","model","models.basictaskprofil","models.binlogvalid","models.bufferstat","models.buttonitem","models.captcharespv2","models.configur","models.connectioninfo","models.connectionrespv2","models.connectionvalid","models.createorupdatemysqltokafkajobparamv2","models.createorupdatemysqltokafkajobrespv2","models.createorupdatemysqltomysqljobparamv2","models.createorupdatemysqltomysqljobrespv2","models.createrolereqv2","models.createrolerespv2","models.createuserreqv2","models.createuserrespv2","models.currentcoordin","models.currentuserresp","models.databaseconnectionconfig","models.datasourceconfig","models.delaycount","models.deletejobrespv2","models.deleterolerespv2","models.deleteuserrespv2","models.desttaskconfig","models.dstconfig","models.dtlenodeinfo","models.gettaskprogressrespv2","models.getuserloginresv2","models.gtidmodevalid","models.jobbaseinfo","models.jobgtidresp","models.joblistrespv2","models.kafkadesttaskconfig","models.listactionrespv2","models.listcolumnsrespv2","models.listschemasrespv2","models.loginwithoutverifycodereqv2","models.menuitem","models.mysqldesttaskconfig","models.mysqlsrctaskconfig","models.mysqltaskvalidationreport","models.mysqltokafkajobdetailrespv2","models.mysqltomysqljobdetailrespv2","models.natsmessagestatist","models.nodelistitemv2","models.nodelistrespv2","models.oraclesrctaskconfig","models.pausejobrespv2","models.privilegesvalid","models.resetpasswordreqv2","models.resetpasswordrespv2","models.resumejobrespv2","models.reverseconfig","models.reversejobreq","models.reversejobresp","models.reversestartrespv2","models.rolelistresp","models.schemaitem","models.serveridvalid","models.srcconfig","models.srctaskconfig","models.tableconfig","models.tableitem","models.taskev","models.tasklog","models.taskprogress","models.tenantlistresp","models.throughputstat","models.updataloglevelrespv2","models.updaterolereqv2","models.updaterolerespv2","models.updateuserreqv2","models.updateuserrespv2","models.userlistresp","models.userloginreqv2","models.userloginresv2","models.validatejobreqv2","models.validatejobrespv2","modifi","modifycolumnclaus","month","more","mount;","mt","mts。在源端mysql设置","multipl","mysql","mysql:5.7","mysql>","mysql_character_set","mysql_dest_task_config","mysql_host","mysql_native_password(mysql","mysql_password","mysql_port","mysql_root_password=pass","mysql_schema","mysql_src_task_config","mysql_tabl","mysql_task_validation_report","mysql_us","mysql分布式中间件","mysql到kafka的数据变更通知","mysql同步支持","mysql数据类型到","mysql源端信息,","mysql版本为5.7.18","mysql版本为5.7.21","mysql的gtid集合(区间),","mysql的数据传输","mysql的跨数据中心的双向复制","mysql目标端信息,","name","name:","name=grafana","name=prometheu","nat","nats_advertis","nats_bind","nats_message_statu","nchar","nchar(n)","nchar(n)/nvarchar(n)","nclob","need","net","network","network.in_byt","network.in_msg","network.out_byt","network.out_msg","network=dtl","new","new_1","new_1;","new_2","new_2;","new_3","new_3;","new_4","new_4;","new_5,","new_6;","noddl","noddlaltert","noddlaltertableaddcolumn,","noddlaltertablealtercolumn","noddlaltertablechangecolumn,","noddlaltertabledropcolumn","noddlaltertablemodifycolumn,","noddlcreateschema,","noddlcreatet","noddldropindex,","noddldropschema,","noddldroptable,","noddltrunc","node","node_addr","node_address","node_id","node_nam","node_name、data_dir、各类地址和端口,","node_statu","node_status_descript","nodml","nodmldelete,","nodmlinsert,","nodmlupd","nomad","nomad.servic","nomad_addr","nomad_addr=\"http://192.168.1.1:4646\"","nomad_data_dir/binlog/job_name/mysql_server_uuid。一般情况job被删除时会自动清除binlog目录。若未清除则需手动清除。","nomad_http_address","nomad_vers","nomad原生metrics可访问:http://127.0.0.1:4646/v1/metrics?format=prometheu","nomad可以配置成","nomad将自动向consul注册,组成集群:","nomad所有监控项:","nomad角色分为","nomad配置","nomad(本体)全部配置","none","not_exists_event_name;","not_exists_sp_name;","not_exists_tbl_nam","not_exists_tbl_name;","null","null)","null);","null,","null,`lastname`","null,lastnam","null,uniqu","null;","num","num;","number","number(*)","number(6),","number(p)","number(p,0),","number(p,s)","number,","numeric(p,s)","nvarchar(n)","nvarchar2(n)","object","object_typ","object_us","object数组","occur","occurred:","ok","old","old_1","old_1;","old_2","old_2;","old_3","old_3;","old_3不在目标端,无法执行该语句","old_4","old_4;","old_5","old_6","on;","only.","op:","open;","oper","operation_object_typ","operation_us","option","option’,回放用户需要有被赋权的权限","option)","oracl","oracle;","oracle_allow_remote=tru","oracle_home=/u01/app/oracle/product/11.2.0/x","oracle_sid=x","oracle_src_task_config","oracleconfig","oracle到mysql的数据同步","oracle源端信息,","order","order_bi","out\",进入调试模式","out_byt","out_messag","overrid","p","p0","p1","p2","p3","p4","p5","pages:","parallel_work","parallelwork","paramet","params:","parent_id","partit","partition_nam","partition_names;","pass_word","password","password'","password.","path=$oracle_home/bin:$path","paus","payload是具体的数据","pdf下载","percent(0","ping","plugin","plugin并不能访问nomad监控接口,dtle有关的监控需要通过api兼容层访问。","plugin无法获取nomad日志级别,此处需额外设置)","po","port","posit","position.snapshot==false则表明:这是增量过程中执行的ddl。","position.snapshot==true表明这是全量初始化时的表结构(通过show","post","pos。","ppass","precis","prefix","prefix的情况)","primari","primary切换","privileg","privileges_valid","procedur","process","process,","process_resident_memory_bytes{instance=\"dtl","process_resident_memory_bytes{instance=\"nomad","progress","progress_pct","prom/alertmanag","prom/prometheu","prometheus.yml","prometheus_metr","prometheus_rule.yml","prometheus可直观查看监控项并记录历史值,","prometheus配置","provid","public","public),","public的网络地址,","publish_metr","pull","purg","purge再重新添加,也需要根据restart参数重启","qps(源端)","qps(目标端)","qq","queri","queues\",","queuesiz","queuesize为传输队列长度,","quota","r0","r1","r2","r3","rang","rate","rate(process_cpu_seconds_total{instance=\"dtl","raw","raw(n)","rawtohex","rawtohex(chr(34))","read_master_log_po","read_master_row_count","read_master_tx_count","real","receiv","receiver:","receivers:","reconnect","redefining,","refer","reference_opt","reference_option);","reference_option;","references,","relay","relay(中继)机制.","relay_master_log_fil","reload","reload,","remark","renam","renamecolumnclas","renametest1,","renametest2,","renametest3","renaming,","reorder","repeat","repeat_interval:","repl_chan_buffer_s","replac","replchanbuffers","replic","replicate_do_db","replicate_ignore_db","replicatedodb","replicateignoredb","replication_appli","report","request","request流程即可","requir","requires.","reschedul","resend","reset","resourc","respons","restart","restart=alway","restrict;","resum","retri","retrieved_gtid_set","retry_join","retry_tim","retrytxlimit","return","revers","reverse_config","revok","rf","rm","role","role.","role_list","roma_logmin","roma_logminer;","roma_logminer_priv","roma_logminer_privs;","root","root@%:","root@180.169.60.146","route:","routine,","routine_body;","row","rowid","rownum","rowsiz","rowsize为数据行的平均大小","rpc","rpm","rpm安装包提供了json和hcl格式的job样例。","rsa_private_key_path","rtt","rule","rule_files:","rules:","run","s","sampl","sasl.password","sasl.us","schedul","schema","schema.t","schema/cr","schema_nam","schema_name.trigger_name;","schemachangetop","schema含义不同","schema指明了数据的格式,","scn","scn点位为0,","scope","scope=spfile;","scrape","scrape_configs:","scrape_interval:","sec)","second(s)","seconds(s)","seconds.","secur","select","select,","select_statement;","select_statement;\"","send_by_size_ful","send_by_timeout","sent,","serf","serf端口","server","server_id_valid","server、client.","server关联的consul地址.","server和client可运行于同一进程,也可单独启动server或cli","server搭配一个consul","server数量为奇数,一般使用1或3个,不超过5个。","server管理job数据","server部署","server集群可部署在任一数据中心,","server,两者运行于同一台主机。","servic","service_nam","servicenam","session","session,execute_catalog_role,select","set","set=gbk","set=latin1","set=utf8;","set_user_id,","set`col1`=?,","setgtidnext","setup_error","sever","severity:","share","shell>","show","shutdown","sidea","sideb","sideb)));","signal","signal接口返回的错误信息来传递stats。","simple_exampl","size","skip_create_db_t","skipcreatedbt","skipcreatedbtable).","slave","slave,","slavenetwritetimeout","slave线程的超时时间。mysql默认值为60,太短可能导致断连。太长则会导致异常连接回收不及时。","smallint","smtp","smtp_auth_password:","smtp_auth_username:","smtp_from:","smtp_require_tls:","smtp_smarthost:","some_command_print_json","some_data","sourc","source,","source_uuid","source_uuid,","source_uuid:","sp_name","sp_name()","sp_name(func_parameters)","sp_name(proc_parameters)","sp_name;","specification/","specification/constraint","sql","sql)","sqlfilter","sqlfilter只能简单过滤相关语句。不会自动转换后续语句。例如","sqlfilter注意事项","sqlplu","sql执行量统计","sql类型","src","src\",","src1","src1\",","src1到dst的复制定义文件","src2","src2\",","src2到dst的复制定义文件","src_addr_list","src_config","src_data_bas","src_database_typ","src_extracted_incr_query_count","src_extracted_incr_tx_count","src_pwd","src_task","src_user","srcconnectionconfig","srcoracleconfig","src到dst1的复制定义文件","src到dst2的复制定义文件","stage","start","startup","stat","statement","static_configs:","stats_collection_interv","statu","status;、show","status\\g\"","step_nam","step_schedul","step_statu","stop","string","string.","string数组","subscript","subscription_job_config","subscription_top","successfulli","sum(increase(dtle_network_in_bytes{host=\"dtl","sum(increase(dtle_network_out_bytes{host=\"dtl","sum(process_resident_memory_bytes{instance=~\"nomad","sum(rate(process_cpu_seconds_total{instance=~\"nomad","summari","summary.md","summary:","super","super权限","supplement","sure","symbol","sync","sync_job_config","sys/oracl","sysdba","system","system.logmnr_col$","system.logmnr_obj$","system.logmnr_uid$","system.logmnr_user$","system_user权限,","systemctl","systimestamp","t","t1","t1;","t2","t3","t4","t5","t6","t7","t8","t9","tabl","table.columnmapfrom","table.columnmapto","table.delet","table.insert","table.tablenam","table.tableregex","table.tablerenam","table.upd","table.wher","table_nam","table_regex","table_renam","table_schema","table_schema_regex","table_schema_renam","tablenam","tables,","tableschema","tableschemaregex","tableschemarenam","tablespac","table等生成)。","take","target","targets:","task","task)","task:","task_ev","task_log","task_nam","task_step_nam","taskdelay","tasks_statu","task分别放在src","task在nomad节点上的执行,称为allocation。同一个task的多次执行(如失败","task级配置,src/dest","task需各自重复。默认值为","tbl_name","tbl_name(key_part)","tbl_name(key_part);","tbl_name;","tbl_name_1,","tbl_name_2,","team","telemetri","temporari","tenant","tenant_list","test","test.\"modifycolumn\"","test.\"t1\"","test.addcolumn","test.char_20000_column","test.char_256_column","test.character_256_column","test.dropcolumn1","test.dropt","test.employees_demo(","test.renamecolumn","test1src,test2src,test3src,cust","test;","test”按钮","text","text_cn","text_en","them.","throughput.num","throughput.tim","throughput_statu","time","time]目录下","timestamp","timestamp(p)","tinyint/smallint/int/bigint/decimal(p)","to:","to_dat","to_dsinterv","to_timestamp","to_yminterv","toindex_name_new;","token","topic","topic\",","topic.demo.demo_tbl","topic.schema.table.envelope,","topic.schema.table.value,","topics.sh","topicwithschemat","tps(源端)","tps(目标端)","track","tracking,则可以使用dtle的依赖计算功能(usemysqldepend","transaction,select_catalog_role,select","transaction_write_set_extract","transform","trigger","trigger_body;","trigger_nam","trigger_name;","trigger、ev","true","true,","true。","truncat","ts_ms:","ttin","twowaysync","twowaysyncgtid","type","types”的转换","u","ui中可以看出,组成了3节点consul,其中一个为leader。","ui查看接口文档","ui查看接口文档,打开界面如下:","ui界面调用api,具体步骤如下:","ui管理。","ui调用api","ui调用。","ui配套使用。","ui,确定我们构建了一个","unexpect","uniqu","unistr","unknown","unlimit","updat","update,","uri","uroot","urowid(n)","us","usag","use_my_sql_depend","usemysqldepend","user","user()","user();","user,","user.","user_list","usernam","users;","utf32","utf8","utf8,","utf8;","utf8_bin);","utf8_general_ci","utf8_general_ci;","utf8mb4","utf8mb4_general_ci;","v","val","valid","valu","value)));","values(0),(10)\"","values(1)\"","values(1),(2),(3)\"","values(1,'ryan');","values(11)\"","values(12)\"","values(4),(5),(6)\"","value是该次变更的整行数据","value部分有值:","varbinary(n)","varchar","varchar(15)","varchar(25)","varchar(255));","varchar(255),","varchar(30)","varchar(35))","varchar(45)","varchar(64)","varchar(66)","varchar(n)","varchar2(25)","varchar2(45)","varchar2(n)","variabl","varying(n)","verbos","verifi","version","version:","vi","view","view,","view_nam","view_name_1,","view_name_2;","wait","wait_on_job","warn","web","web界面","where((`col1`","whether","win。","with.","within","without","wnameless/oracl","work","worker","writeset","writeset;","x","xdelet","xe","xget","xmltype","xpost","xxhash64;","xxx.rpm","xxxx.mysql.rds.aliyuncs.com\",","ye","year(col3)","year(p)","yyyy.public.jcloud.com\",","zone","zookeep","zookeeper:2181","{","{dtle_pid},dtle会自动生成信息文件,存放在/tmp/dtle_dump_[d","{{","|","}","}\"","}'","},","}]","}],","}}","},","~","“kafka","。","一、搭建dtle运行环境","一个","一个nomad进程可同时扮演","一个节点可同时处理多个传输链路","一直为0","一致性ddl元数据","一般每个nomad","一节","三、部署grafana","上的","下个版本支持功能","下同。","下面描述","不一致的具体表现、特征","不为目标库创建复制库和复制表.","不会重复传输同一事务.","不同的是:","不带约束","不必要保障","不支持","不支持inf/","不支持minus查询","不支持原因","不支持外键约束","不支持建表语句包含if","不支持按函数分发","不要提交到nomad原生端口","不需高权限即可实现数据复制","且job存续期间,mysql上该参数的值不可改变。","两节介绍的方式.","中","中foreignkeycheck","中replicatedodb配置:","中。","中指定","中文技术参考手册","为","为了使用户能够记录进度,job删除后,dtle不会自动删除consul上的信息.","为了便于查看延迟曲线以及跟踪高延迟情况,可用prometheus抓取dtle的监控项并使用alertmanager发送告警,","为了避免mysql源端超时,等待时间的上限是","为了避免无限reschedule带来的问题,dtle安装包提供的样例job配置中(/usr/share/dtle/scripts/example.job.*),限制reschedule为每半小时1次:","为另外两个节点也做出修改。","为空","为空.","为该次变更的元数据","为该表的表结构.","主键>=5的行复制到目标库2.","主键的行复制到目标库1,","之前版本的dtle无需添加此配置","之后由dtle自动创建表结构","也可不提前建表.","也可将","事件","事务统计","二、部署prometheu","二选一填写。","五、最后创建多个panel同时展示","京东云","京东云rds实例的用户权限是以schema为基础的.","仅","仅作为","仅支持","仅支持full模式","仅支持row模式","仅支持以下字符集:","从","从3.21.10.0开始,dtle增量回放时,默认set","从3.x","从4.22.09.0开始,","从4.22.09.0开始,动态修改日志级别直接调用api即可生效(不需要事先修改配置文件或重启dtle)。","从4.22.11.0开始,dtle配置发生变化","从dtle","从任务启动时间开启增量复制","从此处下载dtle的","从源表中,","代码库","以database为对象的ddl","以index为对象的ddl","以table为对象的ddl","以下是一个消息的key.","以下是一个消息的value,","以下步骤以docker容器的方式快速演示如何搭建mysql的单向复制环境.","以下步骤以docker容器的方式快速演示如何搭建mysql的数据分散环境.","以下步骤以docker容器的方式快速演示如何搭建mysql的汇聚复制环境.","以下步骤以docker容器的方式快速演示如何搭建mysql的跨数据中心的双向复制.","以下步骤以docker容器的方式快速演示如何搭建oracle到mysql的单向复制环境.","以下步骤演示如何搭建从阿里云rds到京东云rds的mysql复制.","以体验全量复制过程.","以储存任务元数据。","以添加一个cpu使用率监控为例配置一个panel","以默认值建立大量轻量级任务,会导致资源不够而pending,可适当调小。","任务","任务元数据信息在集群中同步","任务分为源端任务和目标端任务,","任务启动时间点开始,将指定库表结构数据传输到目标端","任务延迟","任务暂停/恢复","任务有无报错","任务的内存消耗和每行大小、事物大小、队列长度有关。注意真实资源消耗,避免oom。","会对数据的回环状况进行判断,","会自动从consul中储存的gtid继续复制","传输","传输任务会转移到其他client执行","传输任务会转移到其他server执行","传输完所有的表数据,继续增量同步","估算","但不支持大小写混用。","位置:dtle//gtid","作业(job)配置","作业管理","作业配置一般采用","作业配置,使用方法如下","作为nomad插件运行","作为server.","使源端目标端mysql事务gtid相同。可用以避免循环复制。需要","使用","使用docker运行prometheus:","使用dtle并行复制计算事务依赖时,保存的行数。增大可以潜在地增加并行度,但会更消耗内存。","使用hcl格式:","使用raw查看原始值","使用recurse删除job_name下所有项目","使用web","使用多节点部署时,请注意更改","使用导出脚本(","使用方法参见","使用正则挑选复制库表","使用表dtle.gtid_executed_v4模仿gtid机制,","使用限制","依据步骤3读取的scn位置,全表扫描所有相关数据库表和schema例:","依照指定的顺序,","保存运行信息","修改","修改dtle的配置","修改容器dtle","修改日志级别","修改日志级别为debug","修改目标端的gtid元数据表","值","停止(删除)job","允许同时处理大事务的job数量。默认值:启动时可用内存/2g。该值至少为1。如有6g可用内存,则该值默认为3","允许设置参数值2,","元素内容见下方说明","免一致性快照事务的全量复制","全国支持:","全部启动后,","全部启动后,从web","全部的filter:","全部配置","全量","全量+增量","全量/增量复制时,","全量不复制function","全量不复制创建procedur","全量估计值","全量同步过程,表结构同步完成前,不支持对同步的表做ddl操作","全量复制","全量复制也可断点续传","全量复制时,","全量支持","全量流程","全量计数值","全量过程,","全量过程.","全量部分是否需要支持?即,创建job前,源端已存在的用户是否需要被迁移至目标端?#358","公式为:","公式示例","公有云间的数据同步","关于","关于kafka的消息格式,","关于不支持","关于外键","关于大事务","其中","其中:","其中与","其中与src1_dst.json不同的是:","其中定义了:","其中的不同之处在于:","其中,dml","其中,总行数","其中:","其他","其他对象ddl","其他节点使用此地址连接本节点。跨公网传输需要设成上层路由器地址并设置网络穿透","其功能特点是:","其场景是:","其普遍场景是:","其普遍场景是用于跨数据中心的数据双向同步.","其消息格式具体可参考","其类型为","具体参考","典型用法","典型的查询方法","兼容mysql的","兼容mysql的单向复制/聚合/分散","兼容层地址,可以在此地址使用dtle","兼容层端口","内存估计值","内存使用","内存使用(dtle","内存使用(nomad)","内存使用(总计)","内存使用估计","内存占用估算","内存占用系数","内存计数值","内容如下:","再次添加job时,consul中保存的gtid优先于job配置中的项目","写入的行数","写入目标表时,","准备prometheus配置文件同时接收nomad和dtle的metr","准备src1_dst.json,","准备src2_dst.json,","准备src_dst1.json,","准备src_dst2.json,","准备作业定义文件","准备告警规则文件","准备数据阶段","准备文件job","准备文件job.json,","准备测试数据","准备配置文件","出现","函数名","函数支持","函数支持解析为null","分为","分别表达操作类型:","分割。","分发","分发到","分开部署","列map","列出所有job","列出所有节点:","列出某job的所有alloc","列名变换","列映射(暂不支持正则表达式)。见demo","列选择、列顺序变换","则不再尝试","则为","则复制指定数据库中的所有表","则复制整个数据库实例.","则完全执行replicatedodb配置.","则忽略指定数据库中的所有表","则需要","创建","创建dc1到dc2的复制任务","创建dc2到dc1的复制任务","创建两个网络","创建同步账号","创建复制任务","创建实例级别迁移","创建源端","创建源端(1个)和目标端(2个)","创建源端(2个)和目标端(1个)","创建源端/目标端","创建源端表结构","创建目标端","创建网络","创建配置文件","删除","利用docker部署grafana服务","利用docker部署prometheus服务","到","前先执行creat","前置知识:nomad","剩余行数","功能/场景的映射列表","功能说明","加密","动态增减同步对象","区别任务处于全量还是增量状态","升级步骤","华东地区:","华北地区:","华南地区:","协助诊断","单server,单cli","单server,多cli","单一dtle实例","单一数据通道","单个mysql","单个mysql复制到kafka","单个mysql的不同表","单个mysql的同一表的不同记录","单位","单位为事务组数。事务组大小和groupmaxsize/grouptimeout有关。","单位为字节.","单位为毫秒.","单向复制到","单向数据复制的常见场景如下:","单库map","单库mapping结果","单表map","单表mapping结果","即payload的解读方式,","即使失败的job被stop","即先将源端mysql","即类似如下报错","即:预计完成时间","卸载dtle","原两端的connectionconfig的分别重命名为srcconnectionconfig和destconnectionconfig","原则上要求源端和目标端设置相同。","参数","参数名","参数说明","参数说明详见作业配置.","参看5.3","参考","参考2.2.mysql","参考3.8.dtle","参考样例配置中这一段","及启动脚本和参考配置。","双向复制到","反向任务会交换正向任务的columnmapfrom/columnmapto","反向任务使用的gtid。当值为\"auto\"时,从当前","发送到目标端的行数","取决于启动时的可用内存","只","只填写columnmapfrom的用法现已deprecated.","只复制满足该条件的数据行.","只支持增量复制)","只是简单的包含了主键.","只有","只需将promethues的访问地址添加到url中,点击“sava","可为目标表全部列或部分列.","可以引用表中的列名.","可以查看节点名、节点id和dtle插件信息(部分项省略)。","可以理解为“类定义”","可使用","可使用hcl格式job配置文件","可使用删除/添加job来达成相同的效果。","可使用压缩/限速等功能,","可参照mysql的跨数据中心的双向复制","可取值:","可在源端准备提前建表demo.demo_tbl,","可填写多元素.","可增加传输时压缩率,适合低带宽网络。","可指定合法的gtid","可指定合法的scn","可支持的部署方式同","可查看监控项,或在prometheus中配置从此地址获取监控项。","可用bulkinsert1和bulkinsert2调整批量插入使用的数量。","可用于公有云间的数据同步,","可直接在github","可进行自动任务分配","可通过搭建prometheus查看延迟情况,","可部署于公有云的云主机服务上","可配置","可配置多张表,","可针对异常监控项及时发出告警信息,","各由agent执行.","合并到","同nomad本体配置中的.","同一个数据目标","同上","同步lob_write,lob_trim,","同步库/表结构到mysql","同步结果以纳秒保存","同步起点","后引入的","后期是否考虑优化/支持","后期是否考虑支持","后自动从当前","向dtle发布任务:","吞吐统计(未实现)","否","否(insert","启动alertmanagerdock","启动dtle:","启动nomad节点","启动oracle镜像","告警规则文件","命令行工具","命令行工具提交)文件。样例配置在","命令行工具运行job,","命令说明","和","和binlogfile配套使用.","和与dtle","四、常用的监控项","回放端的并发数.","回访模式(并行回放)","因目标端没有改名前的表,会有error","在3.21.10.0以前,dtle回放时会设置set","在config段落中填写dtle专有配置。","在dtle","在dtle的增量复制过程中,如果源端执行replac","在job.json源端任务配置中将binlogrelay设为tru","在jobs界面,点击run","在job配置文件中,table字段增加若干参数,详情参考4.3","在latin1/2表中,不支持非latin字符(如中文)(#388)","在src1和src2中分别插入数据,","在src中插入数据,","在两个网络中分别创建dtle","在两个网络中分别创建mysql","在传输过程中维持数据的事务性,","在使用不同功能时,","在修改dtle配置文件的时候需要注意以下两点:","在回放时,","在数据目标端是以相同的事务方式进行回放.","在数据链路上,","在本地节点上执行,以充分利用dtle的压缩传输。","在某个nomad","在浏览器上访问grafana的页面","在浏览器上访问prometheus的页面","在源端mysql中创建表结构,","在源端写入数据:","在目标端mysql中创建表结构","在目标端删除参与复制的表,","地址","地址,","地址.","场景","基于rpm包的安装","基于容器使用","基本架构","堆栈/内存/运行状态/pprof信息:执行kil","填写dtle兼容层的地址。可填多个。","填写请求参数后点击\"execute\"调用api","增、删、改","增加","增加复制任务","增量","增量任务开始的binlog位置,","增量任务开始的binlog文件(即源端mysql上","增量估计值","增量复制","增量复制开始的","增量复制时,","增量支持","增量的并行回放(mts)相关","增量计数值","增量过程,","增量部分dcl的操作会被支持","增量阶段中源端完成抽取并解析的dml/ddl数量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_src_extracted_query_count[1m])","增量阶段中源端完成抽取并解析的事务总量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_src_extracted_tx_count[1m])","增量阶段中目标端完成回放的事务总量。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_dest_applied_tx_count[1m])","增量阶段中目标端执行的ddl/dml总量(未commit前也算)。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_dest_applied_query_count[1m])","处理","处理该行变更的时间.","备注","复制","复制一个库中的多个表","复制任务","复制任务缓存的大小,","复制停顿、不开始","复制到kafka的数据格式支持avro","复制多个库中的多个表","复制对象(按条件复制部分记录)","复制对象(整库复制)","复制对象(整表复制)","复制手段(binlog","复制指定数据库","复制整个实例的所有数据库","复制时,","复制时处理ddl语句","复制时处理ddl语句;","复制时处理dml语句","复制时处理dml语句;","复制模式(全量+增量)","复制模式(增量)","复制过程中是否有ddl","复制配置文件","复制链路(跨网络边际)","复制链路(链路压缩)","复制阶段(全量/增量)","复杂类型","复杂类型,","多server多client配置","多server部署配置","多server,多cli","多个mysql","多个mysql复制到kafka","多个mysql的表","多个数据目标","多个数据通道","多库map","多库mapping结果","多种数据传输模式","多种数据处理模式","多种数据通道模式","多种源/目标端","多表map","多表mapping结果","大事务指传输、处理数据量较大的事务,一般由dml组成。ddl事务(queryevent)不会太大,尽管某些ddl需要较长的执行时间。","如","如上图,","如下图,","如为双向复制,需确保业务上无数据冲突","如为空[],","如何修改","如何全职参与","如何参与","如何搭建dtle的监控系统","如只测试增量复制,","如果agent不在默认地址,则需要指定","如果job中设置setgtidnext=true,","如果一段时间(15s)没有事务,则重置延迟值为0","如果不需要追加库表名,请设为fals","如果使用带有binlogrelay的纯增量复制,","如果关闭此选项,","如果因版本和权限问题,不能在源端mysql上设置writeset","如果开启此选项,","如果想获得","如果要后续添加同名job,并且不想从consul保存的位置继续(而是从job配置中指定的位置开始),则","如果要重建同名job(并放弃进度),除了在nomad上删除,还需要在consul上删除","如果通过dtle,","如要使用链路压缩等功能,","如需测试指定位置增量复制,","如需要使用dtle","字段映射","字段映射关系参看","字段类型","安装dtle","安装dtle:","安装包,","安装包默认将参考配置装在了如下位置(安装时未设置","安装并配置dtle","安装步骤","完整参考","完整可参考","官方技术支持","实例级别job.json配置样例:","实现为执行creat","容器的版本列表参看docker","容灾","对于","对于gtid=0的汇总行,该列批量储存gno编号,如1","对于twowaysync双向任务,","对于一个多行的大事务,dtle会按行分开处理、传输并执行(但在目标端仍作为一个事务提交)。","对于双写的场景,","对于存在外键关系的一系列表,需要这些表在同一个job的复制范围内,才能正常执行。","对于数据源的事务产生的数据,","对于纯增量job,开启binlogrelay时,必须用gtid指定复制起点(进度),不能使用binlogfile/pos。","对于跨网段的nomad集群,需要配置上层路由地址并在各级路由配置nat(端口映射)","对于非utf8编码执行的ddl,不支持ddl中含有混合编码字符串,如(col","对公有云上rds服务给予的权限进行了适配,","对公有云的","对目标端数据库的影响(gtid_executed表)","对目标表需要select权限","对链路提供限流参","导出脚本主要意义在于保存复制进度。","导致","将","将一个数据源的数据","将两个dtle通过公网连通","将从未复制的gtid开始增量复制","将以下内容提供给爱可生工程师,我们将帮助您诊断故障。","将在当前目录得到一系列job","将多个数据源的数据","将源表中的数据中,","工具.","左侧目录区","已写入目标端的行数","已删除的job需要自行删除consul上的信息:","已包含nomad。consul可使用其官方image。","已复制的gtid集合(不是点位),","已有","已用时间","带where条件复制任务","带宽(总计","带宽(按task分组","带约束","常用如下:","常用通用配置","常量3.2","并执行以下命令可安装dtle","并插入数据","并插入数据,","并查询(prometheus提供补全)需要的监控项。","并相应配置nomad.hcl。","库.表名变换","应填写和最近nomad","应满足一下配置,否则在开启mts的情况下不能保证数据一致性","延迟告警示例。","延迟监控告警示例","延迟统计","延迟统计仅对增量(含kafka输出)有效,其原理为:","建表语句支持,但是数据复制有缺陷","建议由业务端确保数据不会冲突。","开发并开源的","开启dtle的监控,确保publish_metrics的值为tur","开启nomad的监控,确保正确配置telemetri","开启兼容层(设定api_addr、nomad_addr)","开启双向任务。","开始增量。","开始增量任务.","开始增量时binlog极有可能被清除","开机自动启动","开源社区微信公众号","引擎","强制要求","当client发生故障时,","当oracle执行ddl时,","当oracle执行dml时,同步字段变更到mysql","当server发生故障时,","当task报错时,会根据restart配置,30分钟内在同一节点上重启最多两次","当一个job处理大事务时,需要等待该段数据在目标端执行完毕才会获取下一批数据。","当值大于1时,","当前仅支持8.0语法","当前写入速率","当前发送速率","当前解析逻辑无法获取完整数据","当同时处理大事务的job数量达到","当执行发生某些错误时(如:deadlock),重试事务的次数","当数据变更时,","当源端使用批量插入,即","当目标端是mysql数据库时,","当结果中","当结果出现","影响","待支持","必填?","必须用gtid指定复制起点,不能使用binlogfile/pos。","快速开始","忽略指定的库","忽略指定的表","性能低、延迟大","性能调优","总时间","总行数","恢复需要根据之前的job.json(或hcl)添加job","您可以联系我们:","您对全职参与类似的项目有兴趣,","意味着interval过后继续尝试","或","或\"kafka\"","或json格式","或使用curl访问http","或查看web","或第三方数据中心","或者使用浏览器访问","所有常规配置填在源端任务(src","执行同步的任务名","执行过的gtid","执行错误,列数目不对","执行错误,目标表已存在","批量插入第一级数量。见性能调优","批量插入第三级数量。","批量插入第二级数量。","批量插入(bulk","拆分到","拥有5个字段","指定)","指定purge可立刻删除","指定rsa私钥文件的绝对路径,目前只在http","指定写入的列.","指定的topic.库名.表名,","指定私钥文件的绝对路径","指定要忽略的库表,优先级高于replicatedodb。如为空[],","指定证书文件的绝对路径","按数据源/数据目标的映射关系划分","按格式填写完成后提交即可","按照github的pul","按网络类型划分","按集群规模划分","接口变更","推荐使用mysql","提交)或","提交代码","提交功能","提交缺陷","提供可靠的元数据存储","提供告警功能","提供数据扩容方案","提取全部列或部分列.","提取字段(status):","插件)","插件使用consul进行任务元数据储存","插件的配置","插件运行在","插入数据之前的src1上的gtid点位","插入数据之前的src2上的gtid点位","支持","支持)","支持1:1的复制","支持1:n的数据拆分,","支持2g级别的大事务","支持;","支持ddl","支持mgr","支持mysql","支持mysql认证方式","支持n:1的数据汇聚,","支持oracl","支持pdb(多租户,oracl","支持procedure,function,event的增量部分迁移(须创建库级别的迁移job),但存在源端与目标端字符集不完全一致的问题#357","支持server级默认字符集不一致情形","支持user增量部分的迁移(须创建实例级别的迁移job),且支持grant,revoke(要求回放用户有gr","支持同构传输和异构传输","支持回环传输","支持复制","支持多对多的数据传输","支持字符集latin1、latin2、gbk、utf8、utf8mb4、binari","支持库/表/行级别","支持按主键分发;","支持更丰富的函数","支持更多种类的公有云间的数据迁移","支持网络内的数据传输","支持自动故障转移","支持跨网络边际的传输","支持跨网络边际的数据传输","支持链路压缩","收集监控项的周期(秒)","放大系数","效果图:","数据不一致","数据产生量","数据传输的端口","数据冲突","数据分散复制,","数据变换","数据后处理件","数据库名","数据库映射正则表达式,可用于多个数据库重命名","数据库用户可能无法拥有","数据延迟(源端)","数据延迟(目标端)","数据源地址","数据源密码","数据源服务名","数据源用户名","数据源的字符集","数据源端口","数据目录。目前用于存放binlog(job配置中binlogrelay=true时)","数据管理","数据管理。","数据过滤","文档库","新建","新表不会在目标端创建","新表不会在目标端创建,dtle会报错重启","新表在目标端创建,后续数据传输正常","方法参考","无法和mts同时使用:","无法自动获取该地址,","日志文件位于","日志级别(由于dtle","日志(请用gzip压缩)","时区未解析","时间/资源估算","时,dtle会在目标端使用批量插入。","时,任务处于全量阶段","时,任务处于增量阶段","是","是上海爱可生信息技术股份有限公司","是否使用binlog","是否支持","是否跳过一些事件,","是否输出监控项","暂不支持","暂不支持使用正则表达式匹配列。","更多可参考","更适合于跨数据中心的场景.","曹先生","最大长度限制为6,oracle为9","有group/task层级,一个group中的tasks会被放在同一个节点执行。dtle要求src和dest","有如下字段:","服务发现(多节点自动注册)","服务启动命令:","服务无法启动,无日志输出,使用如下命令查看std日志","本体使用consul进行多节点注册和发现","本节api示例默认使用swagg","本项目的维护方(上海爱可生信息技术股份有限公司)一直在招聘","权限","权限,","权限.","权限。","条件及限制","极值问题","架构","某些mysql部署会定期清除binlog","查找不一致数据出现的位置","查看dst1/dst2中的数据,","查看dst中的数据,","查看nomad本体版本","查看作业id和状态:","查看作业状态","查看作业状态:","查看响应:","查看所有","查看执行(client)节点,即运行dtle插件的节点","查看方法(以默认consul地址为例):","查看某一节点的dtle插件版本","查看某个","查看某个allocation的执行状态","查看某个节点的状态","查看版本","查看监控项并记录历史值","查看目标端数据是否一致","查看管理(server)节点","查询任务进度","查询目标端的gtid元数据表","标准rpm安装包已集成","根据go内存分配器原理,job处理完后,内存可能不会立刻被释放给操作系统","根据scn节点开启增量复制","根据业务功能提供了一套http","根据配置延迟5s以上并持续1min时,receiver@actionsky.com","格式化json内容:","梁先生","检查mysql是否启动成功:","检查京东云rds的环境","检查任务运行状态:","检查方式","检查是否正常","检查是否正常:","检查是否联通:","检查权限:","检查阿里云rds的环境","概述","模板,","此后mysql生成的binlog中将附带tx依赖信息,dtle回放时可以利用依赖信息进行调度。","此处为172.22.0.2","此处为172.22.0.3","此处概要说明","此处表示该job可以运行在datacenter为\"shanghai\"和\"beijing\"的节点上","此外还可以使用nomad命令行工具。nomad将命令行工具和agent端放在了同一个可执行文件中。","此时nomad命令作为http客户端连接nomad","此时可在任一端对表demo.demo_tbl进行ddl/dml等各种操作,","此时可在源端对表demo.demo_tbl进行ddl/dml等各种操作,","步骤可参考","每个元素有如下字段:","每个消息分为key和valu","每次读取","每行数据变更会有一个消息","水平扩展","汪先生","注意:","注意gtid可能有多行,需要完整记录。","注意source_uuid以binary储存,直接查询会乱码,需要hex()转换","注意事项","注意保留添加job时使用的job配置文件","注意和sql","注意:不支持自动创建目标表,需预先手动创建。","注意:通过兼容层只能看到本节点运行的任务的监控项。","注:dtle后续重启时,仍然使用配置文件中的日志级别。","注:hcl格式中${some_text}会被认为是变量引用。正则替换中输入此类文字时,则需使用双$符号:$${some_text}。","注:tablechanges结构在dtle中尚未实现。","洪先生","测试","测量约为","浏览器访问","消息使用的topic","消息格式","消息格式兼容","涉及外键引用父表的事务,回放时会单独回放,不能并行。","添加job","添加panel","添加两个job模拟两个mysql实例之间传输数据","源任务(src)配置在dc1的dtle节点上执行","源任务(src)配置在dc2的dtle节点上执行","源数据库和目标数据库","源端","源端/目标端的连接字符串","源端mysql在执行事务时,binlog中记录了时间戳","源端trigger产生的数据会复制到目标端","源端任务和目标端任务在指定datacenter上故障转移dtle配置文件:","源端任务有如下配置项:","源端发送)","源端发送数据时,","源端和目标端大小写敏感配置","源端和目标端都有延迟统计,取两者中大值为延迟","源端数据库uuid号","源端用户","源端的连接字符串","点位.","点击\"tri","点此下载","然后浏览器访问","版本","版本开始,dtle更改了架构,作为nomad插件运行(而非此前的单一二进制文件),并需要运行","环境配置并启动oracl","生态","用\"c\",","用一个nomad节点同时作为serv","用于","用作断点续传/数据检查等.","用户权限/存储过程ddl/函数ddl","用户权限说明","用户需自行确保在发生过滤的情况下,后续dml/ddl能正确执行。","由于dtle","由于nomad","由于nomad插件api限制,","由于nomad没有提供合适的api","由于trigger或event可能会更改表数据,目标端存在trigger或event时,存在二次触发的问题(源端已经触发过一次),会引起数据不一致,故dtle不复制trigger和event。源端trigger/event变更的数据,会被写进binlog,并由dtle复制到目标端。","由于用户校验功能限制,大多数接口调用需要在header中携带登录成功返回的token,在swagger页面可点击swagger页面顶部的authorize按钮,将token填入value的文本框中,swagger页面中其他接口即可正常使用","申请京东云ec","界面","界面。可查看jobs、servers和clients。","界面。可查看kv中的job进度(gtid)。","的","的nomad部署。","的单向复制","的商业支持,","的复制.","的完整配置参考","的数据分散","的数据文件不兼容,直接升级无法保留进行中的job。(若无需保留的job,则可直接升级。)","的时间值。","的汇聚复制","的结果","的结果).","的连接字符串","的连接配置","监控","监控项","监控项:","监控项说明","目前支持的公有云同步通道:","目录","目标任务(dest)配置在dc1的dtle节点上执行","目标任务(dest)配置在dc2的dtle节点上执行","目标端","目标端不会受到不完整的事务的影响.","目标端不会有重命名后的表","目标端会进行并行回放","目标端向kafka发送消息时,","目标端固定填写一个配置项","目标端执行事务前执行set","目标端接收)","目标端数据库用户需要有相应表的create权限.","目标端数据库用户需要有相应表的drop权限.","目标端用户","目标端的用于回放数据的数据库用户需要对这张表有相应权限.","目标端账户需要creat","直接网络连通","省略未修改配置","省略未更改项","硬编码为24","确保dtle","确认日志级别为info。debug日志会大幅降低性能。","示例","示例主机ip为192.168.0.17,","移除了暂停/恢复job的功能.","端口","端口使用说明","端口号","端口配置可在/etc/dtle/nomad.hcl中修改","等功能)","等待mysql事务数据包达到一定大小(messagegroupmaxsize字节)后将该包序列化并发送.","等待数据包达到一定大小(groupmaxsize字节)后发送该包.","等待数据包达到超时时间(grouptimeout毫秒)发送该包.","等待数据包达到超时时间(messagegrouptimeout毫秒)发送该包.","简单的部署结构:","类别","类型","类型为table.","索引同步","级配置。配置后该job/group/task会绑定在指定的节点上执行","结果","缓存/队列状态","缓存件","网站:爱可生开源社区","网络(带宽/延迟)","网络流量状态","而不使用mysql原生gtid机制的原因是:","而云环境下,","联系我们","聚合到","背景","背景:","自动创建目标端的gtid元数据表","自动创建表结构","自动创建表结构功能;","至少需要1个manager和1个ag","节点可同时作为","节点管理","节点配置","若不配置,","若全量耗时较长,","若需要执行grant和revoke,则回放用户需要有‘gr","获取binlog信息","获取gtid点位,","获取mysql","获取同步的库/表的结构信息,同步到目标端","获取同步表的row","获取当前告警规则/内容","获取当前所需同步的库/表,从服务器上的redo日志获取当前系统改变号(scn)的位置","获取某个job信息","虽然在dtle的文档里提供各种监控项的介绍,但是对于不熟悉prometheus和grafana配置的同学来说上手还是有些难度的。今天我就来dtl","行数过多时,会触发汇总机制","表","表dtle.gtid_executed_v4的作用是存储已经回放的事务的gtid,","表中是乱码","表名","表名映射匹配正则表达式,用于多个表同时重命名.","表的内容","表示此复制是","表示此复制是从任务启动时间点开始复制.","表结构、是否有无pk表","表结构会包含在","表结构说明:","表统计(未实现)","西南地区:","要复制的表为demo.demo_tbl","要复制的表为test.t1","见","见下方","规格是1c4g40g","解析源端binlog,","设为","设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口","设定grouptimeout可避免数据量不足时等待过久。默认值100(毫秒)。一般设成略小于","设置同步配置","访问","访问http://127.0.0.1:9090/alerts,","访问http://{dtle","访问地址","该用法本质上是对http","该行为可用job配置中dest部分foreignkeychecks控制,默认为true。如有必要,可将其设为false。","该表用uuid以binary储存以提升性能。注意查询方式gtid_executed表","语句示例","语句被过滤","语句需要","语法为sql表达式,","语法支持","说明","说明。和","说明)","请联系我们的研发团队.","读取后分块发送的分块大小。空闲内存较小时需适当调小。适用于大全量/增量大事务","调整mysql","跨dc的部署结构","跨数据中心的双向复制","路线图","转化后mysql","轮询的scn区间目前写死的100000,优化为动态数值","轮询读取的间隔目前写死的5秒,优化为动态数值","输出","输出,","迁移的目标库","过滤条件","运维","运行","返回值应为布尔值.","这里以dtle","进行三节点集群部署,","进行了适配","进行数据扫描","进行目标端触发器检查","进行缓存刷新","适用于多个数据中心间的数据同步","适用于对可用性较高的场景,","适用于简单的场景,","选择","选择添加promethu","通用","通用问题","通知","通过","通过swagger","通过网络压缩传输数据.","通过配置alertmanager对延迟异常任务发出告警","遇到问题,首先确认使用了最新稳定版dtle。","遗留问题:在外键子表上alter","避免冲突。","避免源端清除binlog导致任务失败.","邮箱收到告警如下:","部分job信息储存在了consul上。其中最重要的是进度,即","部分参数可能影响复制性能。","部分结果异常","部署结构","部署结构(节点、dtle/mysql所在)","配置","配置/dtle/etc/dtle/nomad.hcl修改的内容如下:","配置dc1到dc2的复制","配置dc2到dc1的复制","配置ip","配置两个节点的dtle集群来演示,其拓扑如下:","配置文件位于","配置添加数据源","配置示例如下","配置项","释放row","重命名后的数据库名称,当进行多数据库重命名时,支持正则表达式,使用见demo","重命名后的表名,当进行多表重命名时,支持支持正则表达,见demo","重命名成功,后续数不应据传到目标端","重命名成功,后续数据传输正常","重建job时,若consul上已有进度,则会使用consul上的进度(而非job配置中的起点)。","重要!","重试)会创建多个allocation。","针对任务延迟异常发送告警","链路压缩/链路限流","链路管理","问题诊断","队列","阿里云","阿里云到京东云的mysql复制","限制","限定故障转移域","限流","除了使用curl命令外,还可以通过swagg","集合.)","集群模式","集群相关","需保持一致","需具有以下权限","需另外运行consul,用于","需执行show","需要mysql和dtle主机的时间基本正确","需要保持","需要删除consul重的数据。见","需要另外启动consul","需要在创建迁移job前,通过京东云rds为该mysql实例创建两个schema:","需要在开始全量时将mysql","需要开启","需要指定bind_addr和advertise.rpc为本机的dtl","需要模拟","需要用户手动重复填写一遍.","需要申请京东云ecs,","需配置如下参数","非官方版","非技术指标","靠谱的研发工程师/靠谱的测试工程师.","预计完成时间","首先配置nomad.hcl中打开api兼容层,并配置publish_metr","验证全量和增量的数据均存在","验证数据:","验证目标端数据","验证相关的topic存在:","验证配置生效","高可用(故障转移)","高可用(断点续做)","高可用的部署结构:","默认2000。全量复制时每次选取的行数。增大可以增加吞吐量,但同时会占用更多内存。","默认60,增量事物队列数量。增大可以降低可能的空等,但同时会占用更多内存。","默认为","默认为空,","默认使用mysql的并行回放事务依赖关系检测。如果不能开启源端mysql的writeset追踪,可将此设为false,使用dtle的依赖检测。","默认值","默认值1表示即刻发送数据","默认只能从从本机查询。若要从外部访问kv,请更改/etc/dtle/consul.hcl中的","默认开启一个web服务,可使用curl工具向其发送http请求。","默认开启目标端mysql连接上的","默认情况下,","默认最终topic为","默认有如下","默认的启动脚本(systemd)使用单节点配置。","默认端口不同","(默认值为1)","(默认值为true)",",使用默认用户",",我们暂且借用nomad"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"dtle 中文技术参考手册\n目录\n参考 gitbook 左侧目录区 或 SUMMARY.md\nPDF下载\nPDF下载\n官方技术支持\n\n代码库 github: github.com/actiontech/dtle\n文档库 github: github.com/actiontech/dtle-docs-cn\n文档库 github pages: actiontech.github.io/dtle-docs-cn\nQQ group: 852990221\n网站:爱可生开源社区\n开源社区微信公众号\n\n\n\n联系我们\n如果想获得 dtle 的商业支持, 您可以联系我们:\n\n全国支持: 400-820-6580\n华北地区: 86-13910506562, 汪先生\n华南地区: 86-18503063188, 曹先生\n华东地区: 86-18930110869, 梁先生\n西南地区: 86-13540040119, 洪先生\n\n"},"0/0_overview.html":{"url":"0/0_overview.html","title":"0.概述","keywords":"","body":"概述\ndtle (Data-Transformation-le) 是上海爱可生信息技术股份有限公司 开发并开源的 CDC 工具. 其功能特点是: \n\n多种数据传输模式\n支持链路压缩\n支持同构传输和异构传输\n支持跨网络边际的传输 \n\n\n多种数据处理模式\n支持库/表/行级别 数据过滤\n\n\n多种数据通道模式\n支持多对多的数据传输\n支持回环传输\n\n\n多种源/目标端\n支持MySQL - ActionDB的数据传输\n支持MySQL - MySQL的数据传输\n\n\n支持MySQL - Kafka的数据传输\n支持Oracle - MySQL的数据传输\n\n\n集群模式\n提供可靠的元数据存储\n可进行自动任务分配\n支持自动故障转移\n\n\n\n"},"1/1.0_mysql_replication.html":{"url":"1/1.0_mysql_replication.html","title":"1.0.MySQL的单向复制/聚合/分散","keywords":"","body":"1.0 兼容MySQL的单向复制/聚合/分散\n如下图, dtle 支持 兼容MySQL的 单向数据复制的常见场景如下: \n\n按数据源/数据目标的映射关系划分\n支持1:1的复制\n支持n:1的数据汇聚, 将多个数据源的数据 聚合到 同一个数据目标\n支持1:n的数据拆分, 将一个数据源的数据 拆分到 多个数据目标\n\n\n按网络类型划分\n支持网络内的数据传输\n支持跨网络边际的数据传输 (可使用 链路压缩/链路限流 等功能)\n\n\n按集群规模划分\n可配置 单一dtle实例 处理 单一数据通道\n可配置 dtle集群 处理 多个数据通道\n\n\n\n \n"},"1/1.1_bidirectional_replication.html":{"url":"1/1.1_bidirectional_replication.html","title":"1.1.跨数据中心的双向复制","keywords":"","body":"1.1 跨数据中心的双向复制\n如下图, dtle支持MySQL间的双向复制, 其普遍场景是用于跨数据中心的数据双向同步.\n \n其中: \n\ndtle 会对数据的回环状况进行判断, 不会重复传输同一事务.\ndtle 在传输过程中维持数据的事务性, 对于数据源的事务产生的数据, 在数据目标端是以相同的事务方式进行回放. 对于双写的场景, 目标端不会受到不完整的事务的影响.\ndtle 在数据链路上, 可使用压缩/限速等功能, 更适合于跨数据中心的场景.\n\n"},"1/1.2_sync_between_cloud.html":{"url":"1/1.2_sync_between_cloud.html","title":"1.2.公有云间的数据同步","keywords":"","body":"1.2 公有云间的数据同步\ndtle 可用于公有云间的数据同步, 可支持的部署方式同 1.0 和 1.1 两节介绍的方式. 其中的不同之处在于: \n\ndtle 可部署于公有云的云主机服务上\ndtle 对公有云上RDS服务给予的权限进行了适配, 不需高权限即可实现数据复制\ndtle 对公有云的 MySQL 非官方版 进行了适配 (如阿里云RDS会增加隐式主键列, 导致 binlog中的数据与表结构不符)\n\n目前支持的公有云同步通道: \n\n阿里云 -> 京东云\n\n"},"1/1.3_mysql_kafka.html":{"url":"1/1.3_mysql_kafka.html","title":"1.3.MySQL到Kafka的数据变更通知","keywords":"","body":"1.3 MySQL到Kafka的数据变更通知\n如下图, dtle支持MySQL到Kafka的数据变更通知, 其普遍场景是: \n\n当数据变更时, 通知 缓存件 进行缓存刷新\n当数据变更时, 通知 数据后处理件 进行数据扫描\n\n\n"},"1/1.4_oracle_mysql.html":{"url":"1/1.4_oracle_mysql.html","title":"1.4.Oracle到MySQL的数据同步","keywords":"","body":"1.4 Oracle到MySQL的数据同步\n如下图, dtle支持Oracle到MySQL的数据同步通知, 其场景是: \n\n当Oracle执行DDL时, 同步库/表结构到MySQL\n当Oracle执行DML时,同步字段变更到MySQL\n\n\n"},"2/2.0_mysql_replication_1_1.html":{"url":"2/2.0_mysql_replication_1_1.html","title":"2.0.MySQL的单向复制","keywords":"","body":"MySQL 的单向复制\n以下步骤以docker容器的方式快速演示如何搭建MySQL的单向复制环境.\n创建网络\ndocker network create dtle-net\n创建源端/目标端 MySQL\ndocker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n\ndocker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2\n检查是否联通: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"select @@version\\G\"\n创建 dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest\ndocker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle\n# 如需要使用dtle 2.x HTTP API兼容层,则需要额外映射8190端口:-p 8190:8190\n检查是否正常: \n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n准备作业定义文件\n准备文件job.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\": \"mysql-src\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\": \"mysql-dst\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中定义了: \n\n源端/目标端的连接字符串\n要复制的表为demo.demo_tbl\nGTID点位为空, 表示此复制是 全量+增量 的复制. 如只测试增量复制, 可指定合法的GTID\n\n准备测试数据\n可在源端准备提前建表demo.demo_tbl, 并插入数据, 以体验全量复制过程. \n也可不提前建表.\n创建复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job.json -s | jq\n查看作业状态\n> curl -XGET \"http://127.0.0.1:4646/v1/job/dtle-demo\" -s | jq '.Status'\n测试\n此时可在源端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致\n"},"2/2.0.1_interface.html":{"url":"2/2.0.1_interface.html","title":"2.0.1.HTTP API、nomad 命令行工具 和 Web界面","keywords":"","body":"HTTP API、nomad 命令行工具 和 Web界面\nHTTP API\ncurl命令实际上是调用nomad agent端的HTTP接口,将本地的job.json提交到nomad agent端。\ncurl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job.json -s | jq\ndtle rpm安装包提供了json和hcl格式的job样例。\njq\njq是一款格式化、提取json内容的工具。一般需使用Linux包管理器安装。\n典型用法\n# 格式化json内容:\nsome_command_print_json | jq\n\n# 提取字段(Status):\nsome_command_print_json | jq '.Status'\n具体参考 https://stedolan.github.io/jq/tutorial/\nnomad 命令行工具\n此外还可以使用nomad命令行工具。nomad将命令行工具和agent端放在了同一个可执行文件中。\n使用 nomad 命令行工具运行job, 使用hcl格式:\nnomad job run -address=\"http://192.168.1.1:4646\" job1.hcl\n# 或\nexport NOMAD_ADDR=\"http://192.168.1.1:4646\"\nnomad job run job1.hcl\n该用法本质上是对HTTP API的封装。\nnomad Web 界面\n浏览器访问 http://127.0.0.1:4646, 为 nomad Web 界面。可查看Jobs、Servers和Clients。\n在Jobs界面,点击Run Job,可运行HCL或JSON格式的job。\nconsul\n\nnomad 本体使用consul进行多节点注册和发现\ndtle nomad 插件使用consul进行任务元数据储存\n\n浏览器访问 http://127.0.0.1:4646,为 consul Web 界面。可查看KV中的Job进度(Gtid)。\n或\ncurl -XGET \"127.0.0.1:8500/v1/kv/dtle/aa/Gtid?raw\n"},"2/2.1_mysql_replication_n_1.html":{"url":"2/2.1_mysql_replication_n_1.html","title":"2.1.MySQL的聚合复制","keywords":"","body":"MySQL 的汇聚复制\n以下步骤以docker容器的方式快速演示如何搭建MySQL的汇聚复制环境.\n创建网络\ndocker network create dtle-net\n创建源端(2个)和目标端(1个) MySQL\ndocker run --name mysql-src1 -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n\ndocker run --name mysql-src2 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2\n\ndocker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33063:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=3\n检查是否联通: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"select @@version\\G\"\n在源端MySQL中创建表结构, 获取GTID点位, 并插入数据\n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"show master status\\G\" | grep \"Executed_Gtid_Set\"\n mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"insert into demo.demo_tbl values(1),(2),(3)\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"show master status\\G\" | grep \"Executed_Gtid_Set\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"insert into demo.demo_tbl values(4),(5),(6)\"\n在目标端MySQL中创建表结构\n> mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n创建 dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest\ndocker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle\n检查是否正常: \n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n准备作业定义文件\nsrc1到dst的复制定义文件\n准备src1_dst.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo-src1-dst\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"f6def853-cbaa-11e8-8aeb-0242ac120003:1-7\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\": \"mysql-src1\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\": \"mysql-dst\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中定义了: \n\n源端/目标端的连接字符串\n要复制的表为demo.demo_tbl\nGTID点位为 准备数据阶段 插入数据之前的src1上的GTID点位\n\nsrc2到dst的复制定义文件\n准备src2_dst.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo-src2-dst\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"f74aacb5-cbaa-11e8-bdd1-0242ac120004:1-7\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\": \"mysql-src2\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\": \"mysql-dst\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中与src1_dst.json不同的是: \n\n源端的连接字符串\nGTID点位为 准备数据阶段 插入数据之前的src2上的GTID点位\n\n创建复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @src1_dst.json -s | jq\n curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @src2_dst.json -s | jq\n查看作业ID和状态:\n> curl -XGET \"127.0.0.1:4646/v1/jobs\" -s | jq '.[] | .ID, .Status'\n测试\n在src1和src2中分别插入数据, 查看dst中的数据, 验证全量和增量的数据均存在\n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"insert into demo.demo_tbl values(11)\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"insert into demo.demo_tbl values(12)\"\n mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"select * from demo.demo_tbl\"\n"},"2/2.2_mysql_replication_1_n.html":{"url":"2/2.2_mysql_replication_1_n.html","title":"2.2.MySQL的数据分散","keywords":"","body":"MySQL 的数据分散\n以下步骤以docker容器的方式快速演示如何搭建MySQL的数据分散环境. 数据分散复制, 将源表中的数据中, 主键的行复制到目标库1, 主键>=5的行复制到目标库2.\n创建网络\ndocker network create dtle-net\n创建源端(1个)和目标端(2个) MySQL\ndocker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n\ndocker run --name mysql-dst1 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2\n\ndocker run --name mysql-dst2 -e MYSQL_ROOT_PASSWORD=pass -p 33063:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=3\n检查是否联通: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"select @@version\\G\"\n在源端MySQL中创建表结构, 获取GTID点位, 并插入数据\n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"show master status\\G\" | grep \"Executed_Gtid_Set\"\n mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"insert into demo.demo_tbl values(1),(2),(3)\"\n在目标端MySQL中创建表结构\n> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n创建 dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest\ndocker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle\n检查是否正常: \n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n准备作业定义文件\nsrc到dst1的复制定义文件\n准备src_dst1.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo-src-dst1\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\",\n \"Where\":\"a其中定义了: \n\n源端/目标端的连接字符串\n要复制的表为demo.demo_tbl\ndemo_tbl的复制数据条件为a\n\nsrc到dst2的复制定义文件\n准备src_dst2.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo-src-dst2\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\",\n \"Where\":\"a>=5\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\": \"mysql-src\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\": \"mysql-dst2\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中定义了: \n\n源端/目标端的连接字符串\n要复制的表为demo.demo_tbl\ndemo_tbl的复制数据条件为a>=5\n\n其中与src1_dst.json不同的是: \n\n源端的连接字符串\ndemo_tbl的复制数据条件\n\n创建复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @src_dst1.json -s | jq\n curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @src_dst2.json -s | jq\n查看作业ID和状态:\n> curl -XGET \"127.0.0.1:4646/v1/jobs\" -s | jq '.[] | .ID, .Status'\n测试\n在src中插入数据, 查看dst1/dst2中的数据, 验证全量和增量的数据均存在\n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"insert into demo.demo_tbl values(0),(10)\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"select * from demo.demo_tbl\"\n mysql -h 127.0.0.1 -P 33063 -uroot -ppass -e \"select * from demo.demo_tbl\"\n"},"2/2.3_dc_to_dc_bidirectional.html":{"url":"2/2.3_dc_to_dc_bidirectional.html","title":"2.3.MySQL的跨数据中心的双向复制","keywords":"","body":"MySQL的跨数据中心的双向复制\n以下步骤以docker容器的方式快速演示如何搭建MySQL的跨数据中心的双向复制.\n创建两个网络\ndocker network create dtle-net-dc1\ndocker network create dtle-net-dc2\n在两个网络中分别创建MySQL\ndocker run --name mysql-dc1 -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net-dc1 -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n\ndocker run --name mysql-dc2 -e MYSQL_ROOT_PASSWORD=pass -p 33062:3306 --network=dtle-net-dc2 -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=2\n检查MySQL是否启动成功: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"select @@version\\G\"\n在两个网络中分别创建dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net-dc1 -d consul:latest\ndocker run --name dtle-dc1 -p 4646:4646 --network=dtle-net-dc1 -d actiontech/dtle\n\n# dtle-dc2 will work as a client only. No need to start consul-dc2.\ndocker run --name dtle-dc2 -p 5646:4646 --network=dtle-net-dc2 -d actiontech/dtle\n将两个dtle通过公网连通\ndocker network create dtle-net-public\ndocker network connect dtle-net-public dtle-dc1\ndocker network connect dtle-net-public dtle-consul\ndocker network connect dtle-net-public dtle-dc2\n修改dtle的配置\n修改容器dtle-dc1内的配置并重启\n修改容器dtle-dc1内的配置并重启:\ndocker exec -u root -it dtle-dc1 vi /dtle/etc/dtle/nomad.hcl\n...\ndocker exec -u root -it dtle-dc1 rm -rf /dtle/var/lib/nomad\ndocker restart dtle-dc1\n配置/dtle/etc/dtle/nomad.hcl修改的内容如下: \nname = \"nomad1\" # rename for each node\n\n# ... (省略未更改项目)\n\nbind_addr = \"172.22.0.2\"\nadvertise {\n http = \"172.22.0.2\"\n rpc = \"172.22.0.2\"\n serf = \"172.22.0.2\"\n}\n\nplugin \"dtle\" {\n config {\n nats_bind = \"172.22.0.2:8193\"\n nats_advertise = \"172.22.0.2:8193\"\n nomad_addr = \"172.22.0.2:4646\"\n # ...\n }\n}\n其中: \n\n由于dtle-dc1容器存在两个网络 (与MySQL通信的内网dtle-net-dc1, 和与dtle-dc2通信的公网dtle-net-public), 需要指定bind_addr和advertise.rpc为本机的dtle-net-public的网络地址, 此处为172.22.0.2\n\n修改容器dtle-dc2内的配置并重启\n修改容器dtle-dc2内的配置并重启:\ndocker exec -u root -it dtle-dc2 vi /dtle/etc/dtle/nomad.hcl\n...\ndocker exec -u root -it dtle-dc2 rm -rf /dtle/var/lib/nomad\ndocker restart dtle-dc2\n配置/dtle/etc/dtle/nomad.hcl修改的内容如下: \nname = \"nomad2\" # rename for each node\n\n# ... (省略未更改项目)\n\nbind_addr = \"172.22.0.3\"\nadvertise {\n http = \"172.22.0.3\"\n rpc = \"172.22.0.3\"\n serf = \"172.22.0.3\"\n}\n\nserver {\n # 重要!\n # 只有 dtle-dc1 作为server. dtle-dc2 仅作为 client.\n enabled = false\n}\n\nplugin \"dtle\" {\n config {\n nats_bind = \"172.22.0.3:8193\"\n nats_advertise = \"172.22.0.3:8193\"\n nomad_addr = \"172.22.0.3:4646\"\n # ...\n }\n}\n其中: \n\n由于dtle-dc2容器存在两个网络 (与MySQL通信的内网dtle-net-dc2, 和与dtle-dc1通信的公网dtle-net-public), 需要指定bind_addr和advertise.rpc为本机的dtle-net-public的网络地址, 此处为172.22.0.3\n\n检查是否正常\n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n或查看Web UI,确定我们构建了一个 1 server 2 client 的nomad部署。\n配置dc1到dc2的复制\n获取mysql-dc1的GTID: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"show master status\\G\" | grep \"Executed_Gtid_Set\"\n准备文件job-dc1-dc2.json, 内容如下: \n{\n \"Job\": {\n \"ID\":\"dtle-demo-dc1-2-dc2\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Constraints\": [{\n \"LTarget\": \"${node.unique.name}\",\n \"RTarget\": \"nomad1\",\n \"Operand\": \"=\"\n }],\n \"Config\": {\n \"Gtid\":\"41f102d4-d29f-11e8-8de7-0242ac130002:1-5\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\":\"mysql-dc1\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\":\"mysql-dc2\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Constraints\": [{\n \"LTarget\": \"${node.unique.name}\",\n \"RTarget\": \"nomad2\",\n \"Operand\": \"=\"\n }],\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中定义了: \n\n源端/目标端的连接字符串\n要复制的表为demo.demo_tbl\nGTID点位, 表示此复制是 增量复制 (双向复制 只支持增量复制)\n源任务(src)配置在dc1的dtle节点上执行 (通过 Constraints 指定)\n目标任务(dest)配置在dc2的dtle节点上执行 (通过 Constraints 指定)\n\n创建dc1到dc2的复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job-dc1-dc2.json -s | jq\n查看作业状态\n> curl -XGET \"127.0.0.1:4646/v1/job/dtle-demo-dc1-2-dc2\" -s | jq '.Status'\n配置dc2到dc1的复制\n获取mysql-dc2的GTID: \n> mysql -h 127.0.0.1 -P 33062 -uroot -ppass -e \"show master status\\G\" \n准备文件job-dc2-dc1.json, 内容如下: \n{\n \"Job\": {\n \"ID\":\"dtle-demo-dc2-2-dc1\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Constraints\": [{\n \"LTarget\": \"${node.unique.name}\",\n \"RTarget\": \"nomad2\",\n \"Operand\": \"=\"\n }],\n \"Config\": {\n \"Gtid\":\"41f102d4-d29f-11e8-8de7-0242ac130002:6-7,42158e2f-d29f-11e8-b322-0242ac150002:1-5\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\":\"mysql-dc2\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"DestConnectionConfig\": {\n \"Host\":\"mysql-dc1\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Constraints\": [{\n \"LTarget\": \"${node.unique.name}\",\n \"RTarget\": \"nomad1\",\n \"Operand\": \"=\"\n }],\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n其中与 dc1到dc2的复制任务 不同的是: \n\n源端/目标端的连接字符串\nGTID点位\n源任务(src)配置在dc2的dtle节点上执行\n目标任务(dest)配置在dc1的dtle节点上执行\n\n创建dc2到dc1的复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job-dc2-dc1.json -s | jq\n查看作业状态\n> curl -XGET \"127.0.0.1:4646/v1/job/dtle-demo-dc2-2-dc1\" -s | jq '.Status'\n测试\n此时可在任一端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致\n数据冲突\ndtle不检测数据冲突。如果回放报错(如应数据冲突导致update了不存在的列),则job报错。\n其中,DML insert使用replace回放,故insert冲突时,效果是last-win。\n建议由业务端确保数据不会冲突。\n"},"2/2.4_ali_to_jd.html":{"url":"2/2.4_ali_to_jd.html","title":"2.4.阿里云到京东云的MySQL复制","keywords":"","body":"阿里云到京东云的MySQL复制\n以下步骤演示如何搭建从阿里云RDS到京东云RDS的MySQL复制.\n检查阿里云RDS的环境\nMySQL版本为5.7.18\n检查权限: \nmysql> select user();\n+---------------------+\n| user() |\n+---------------------+\n| root@180.169.60.146 |\n+---------------------+\n1 row in set (0.02 sec)\n\n\nmysql> show grants for 'root'@'%' \\G\n*************************** 1. row ***************************\nGrants for root@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' WITH GRANT OPTION\n1 row in set (0.02 sec)\n检查京东云RDS的环境\nMySQL版本为5.7.21\n注意: 京东云RDS实例的用户权限是以schema为基础的. 需要在创建迁移job前,通过京东云RDS为该MySQL实例创建两个schema: dtle(存储dtle元数据) 和 迁移的目标库\nmysql> select user();\n+---------------------------+\n| user() |\n+---------------------------+\n| actiontech@180.169.60.146 |\n+---------------------------+\n1 row in set (0.00 sec)\n\n\nmysql> show grants for 'actiontech'@'%';\n+------------------------------------------------------------+\n| Grants for actiontech@% |\n+------------------------------------------------------------+\n| GRANT USAGE ON *.* TO 'actiontech'@'%' |\n| GRANT ALL PRIVILEGES ON `actiontech`.* TO 'actiontech'@'%' |\n+------------------------------------------------------------+\n2 rows in set (0.00 sec)\n申请京东云ECS\n需要申请京东云ECS, 用于\n示例主机IP为192.168.0.17, 规格是1c4g40g\n安装并配置dtle\n安装dtle:\nrpm -ivh dtle-xxx.rpm\n配置 /etc/dtle/nomad.hcl:\n# 省略未修改配置\nbind_addr = \"192.168.0.17\"\n\nadvertise {\n http = \"192.168.0.17\"\n rpc = \"192.168.0.17\"\n serf = \"192.168.0.17\"\n}\n启动dtle: \nsystemctl start dtle-consul dtle-nomad\n增加复制任务\n复制配置文件 job.json 内容如下:\n{\n \"Job\": {\n \"ID\":\"ali-jd-demo\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\":\"\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"actiontech\",\n \"Tables\": []\n }],\n \"SrcConnectionConfig\": {\n \"Host\":\"rm-xxxx.mysql.rds.aliyuncs.com\",\n \"Port\":\"3306\",\n \"User\":\"root\",\n \"Password\":\"Acti0ntech\"\n },\n \"DestConnectionConfig\": {\n \"Host\":\"mysql-cn-east-2-yyyy.public.jcloud.com\",\n \"Port\":\"3306\",\n \"User\":\"actiontech\",\n \"Password\":\"Acti0ntech\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n向dtle发布任务: \ncurl -XPOST \"192.168.0.17:4646/v1/jobs\" -d @job.json\n检查任务运行状态: \ncurl -XGET \"192.168.0.17:4646/v1/job/ali-jd-demo\" -s | jq '.Status'\n其他\n如要使用链路压缩等功能, 可参照MySQL的跨数据中心的双向复制\nconsul 默认只能从从本机查询。若要从外部访问KV,请更改/etc/dtle/consul.hcl中的 client_addr 。\n并相应配置nomad.hcl。\n"},"2/2.5_mysql_kafka.html":{"url":"2/2.5_mysql_kafka.html","title":"2.5.MySQL到Kafka的数据变更通知","keywords":"","body":"MySQL到Kafka的数据变更通知\n以下步骤以docker容器的方式快速演示如何搭建MySQL的单向复制环境.\n创建网络\ndocker network create dtle-net\n创建源端 MySQL\ndocker run --name mysql-src -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n检查是否联通: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n创建源端表结构\n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"CREATE DATABASE demo; CREATE TABLE demo.demo_tbl(a int primary key)\"\n创建目标端 Kafka\ndocker run --name kafka-zookeeper -p 2181:2181 -e ALLOW_ANONYMOUS_LOGIN=yes --network=dtle-net -d bitnami/zookeeper\ndocker run --name kafka-dst -p 9092:9092 -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 -e ALLOW_PLAINTEXT_LISTENER=yes --network=dtle-net -d bitnami/kafka\n检查是否联通: \n> docker run -it --rm \\\n --network dtle-net \\\n -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \\\n bitnami/kafka:latest kafka-topics.sh --list --zookeeper kafka-zookeeper:2181\n创建 dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest\ndocker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle\n检查是否正常: \n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n准备作业定义文件\n准备文件job.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"Gtid\": \"\",\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"demo\",\n \"Tables\": [{\n \"TableName\": \"demo_tbl\"\n }]\n }],\n \"SrcConnectionConfig\": {\n \"Host\": \"mysql-src\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n },\n \"KafkaConfig\": {\n \"Topic\": \"demo-topic\",\n \"Brokers\": [\"kafka-dst:9092\"],\n \"Converter\": \"json\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"kafka\"\n }\n }]\n }]\n }\n}\n其中定义了: \n\n源端 MySQL 的连接字符串\n目标端 Kafka 的 broker 访问地址\n要复制的表为demo.demo_tbl\nGTID点位为空, 表示此复制是 全量+增量 的复制. 如只测试增量复制, 可指定合法的GTID\n\n创建复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job.json -s | jq\n查看作业状态:\n> curl -XGET \"127.0.0.1:4646/v1/job/dtle-demo\" -s | jq '.Status'\n测试\n在源端写入数据: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"INSERT INTO demo.demo_tbl values(1)\"\n...\n验证相关的topic存在:\n> docker run -it --rm \\\n --network dtle-net \\\n -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \\\n bitnami/kafka:latest kafka-topics.sh --list --zookeeper kafka-zookeeper:2181\n验证数据:\n> docker run -it --rm \\\n --network dtle-net \\\n -e KAFKA_ZOOKEEPER_CONNECT=kafka-zookeeper:2181 \\\n bitnami/kafka:latest kafka-console-consumer.sh --bootstrap-server kafka-dst:9092 --topic demo-topic.demo.demo_tbl --from-beginning\n此时可在源端对表demo.demo_tbl进行DDL/DML等各种操作, 查看目标端数据是否一致\n关于Kafka的消息格式, 参看5.3 Kafka 消息格式\n"},"2/2.6_oracle_mysql.html":{"url":"2/2.6_oracle_mysql.html","title":"2.6.Oracle到MySQL的数据同步","keywords":"","body":"Oracle到MySQL的数据同步\n以下步骤以docker容器的方式快速演示如何搭建Oracle到MySQL的单向复制环境.\n创建网络\ndocker network create dtle-net\n创建源端 Oracle\n # 启动oracle镜像\n docker run -it -d -p 1521:1521 --name oracle-src --network=dtle-net -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g-r2\n\n # 环境配置并启动oracle\n docker exec -it oracle-src bash\n mkdir /u01/app/oracle/oradata/archive_log\n chown oracle /u01/app/oracle/oradata/archive_log\n\n export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe\n export PATH=$ORACLE_HOME/bin:$PATH\n export ORACLE_SID=XE\n\n service oracle-xe start\n\n # 设置同步配置\n sqlplus SYS/oracle AS SYSDBA \n alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/archive_log' scope=spfile;\n alter system set db_recovery_file_dest_size = 10G;\n\n shutdown immediate;\n startup mount;\n alter database add logfile group 3 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo01.log' size 500m;\n alter database add logfile group 4 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo02.log' size 500m;\n alter database add logfile group 5 '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo03.log' size 500m;\n alter database archivelog;\n alter database add supplemental log data (all) columns;\n alter database open;\n\n # 创建同步账号\n create role roma_logminer_privs;\n grant create session,execute_catalog_role,select any transaction,select_catalog_role,select any dictionary to roma_logminer_privs;\n grant select on SYSTEM.LOGMNR_COL$ to roma_logminer_privs;\n grant select on SYSTEM.LOGMNR_OBJ$ to roma_logminer_privs;\n grant select on SYSTEM.LOGMNR_USER$ to roma_logminer_privs;\n grant select on SYSTEM.LOGMNR_UID$ to roma_logminer_privs;\n create user roma_logminer identified by oracle default tablespace users;\n grant roma_logminer_privs to roma_logminer;\n alter user roma_logminer quota unlimited on users;\n创建目标端 MySQL\ndocker run --name mysql-dst -e MYSQL_ROOT_PASSWORD=pass -p 33061:3306 --network=dtle-net -d mysql:5.7 --gtid-mode=ON --enforce-gtid-consistency=1 --log-bin=bin --server-id=1\n检查是否联通: \n> mysql -h 127.0.0.1 -P 33061 -uroot -ppass -e \"select @@version\\G\"\n创建 dtle\ndocker run --name dtle-consul -p 8500:8500 --network=dtle-net -d consul:latest\ndocker run --name dtle -p 4646:4646 --network=dtle-net -d actiontech/dtle\n# 如需要使用dtle 2.x HTTP API兼容层,则需要额外映射8190端口:-p 8190:8190\n检查是否正常: \n> curl -XGET \"127.0.0.1:4646/v1/nodes\" -s | jq\n准备作业定义文件\n准备文件job.json, 内容如下: \n{\n \"Job\": {\n \"ID\": \"dtle-demo\",\n \"Datacenters\": [\"dc1\"],\n \"TaskGroups\": [{\n \"Name\": \"src\",\n \"Tasks\": [{\n \"Name\": \"src\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"ReplicateDoDb\": [{\n \"TableSchema\": \"TEST\",\n \"Tables\": [{\n \"TableName\": \"t1\"\n }]\n }],\n \"SrcOracleConfig\": {\n \"User\": \"roma_logminer\",\n \"Password\": \"oracle\",\n \"Host\": \"oracle-src\",\n \"Port\": 1521,\n \"ServiceName\": \"XE\",\n \"Scn\": 0\n },\n \"DestConnectionConfig\": {\n \"Host\": \"mysql-dst\",\n \"Port\": 3306,\n \"User\": \"root\",\n \"Password\": \"pass\"\n }\n }\n }]\n }, {\n \"Name\": \"dest\",\n \"Tasks\": [{\n \"Name\": \"dest\",\n \"Driver\": \"dtle\",\n \"Config\": {\n \"DestType\": \"mysql\"\n }\n }]\n }]\n }\n}\n\n其中定义了: \n\n源端 Oracle 的连接配置\n目标端 MySQL 的连接配置\n要复制的表为TEST.t1\nSCN点位为0, 表示此复制是从任务启动时间点开始复制. 如需测试指定位置增量复制, 可指定合法的SCN\n\n创建复制任务\n> curl -XPOST \"http://127.0.0.1:4646/v1/jobs\" -d @job.json -s | jq\n查看作业状态:\n> curl -XGET \"127.0.0.1:4646/v1/job/dtle-demo\" -s | jq '.Status'\n测试\n在源端写入数据: \n sqlplus SYS/oracle AS SYSDBA \n create user TEST identified by oracle;\n grant connect,resource to TEST;\n create table TEST.\"t1\" (id int,name varchar(255));\n insert into TEST.\"t1\" values(1,'ryan');\n commit;\n验证目标端数据\n 查看目标端数据是否一致\n字段映射关系参看 5.4 Oracle MySQL 字段映射\n"},"2/2.7_multi_node.html":{"url":"2/2.7_multi_node.html","title":"2.7.多nomad server部署","keywords":"","body":"多server部署配置\nnomad可以配置成\n\n单server,单client\n单server,多client\n多server,多client\n\n其中\n\nserver管理job数据\nserver数量为奇数,一般使用1或3个,不超过5个。\nclient(运行dtle插件)执行job\nclient数量任意\nserver和client可运行于同一进程,也可单独启动server或client\n\n需另外运行consul,用于\n\nnomad 服务发现(多节点自动注册)\ndtle 保存运行信息\n\n一般每个nomad server搭配一个consul server,两者运行于同一台主机。\n下面描述 多server多client配置 。\nconsul配置\n修改 /etc/dtle/consul.hcl\n# Rename for each node\nnode_name = \"consul1\"\n\n# 配置IP\n\n# Address that should be bound to for internal cluster communications\nbind_addr = \"0.0.0.0\"\n# Address to which Consul will bind client interfaces, including the HTTP and DNS servers\nclient_addr = \"127.0.0.1\"\nadvertise_addr = \"127.0.0.1\"\n\n# ... 省略未更改项\n\nbootstrap_expect = 3\nretry_join = [\"127.0.0.1\", \"127.0.0.2\", \"127.0.0.3\"] # will use default serf port\n为另外两个节点也做出修改。\n全部启动后,从Web UI中可以看出,组成了3节点consul,其中一个为Leader。\n\nnomad配置\n修改 /etc/dtle/nomad.hcl:\nname = \"nomad1\" # rename for each node\n# ... 省略未更改项\nadvertise {\n http = \"127.0.0.1:4646\"\n rpc = \"127.0.0.1:4647\"\n serf = \"127.0.0.1:4648\"\n}\nserver {\n enabled = true\n bootstrap_expect = 3\n}\nconsul {\n address = \"127.0.0.1:8500\"\n}\nplugin \"dtle\" {\n config {\n # ... 省略未更改项\n nats_bind = \"127.0.0.1:8193\"\n nats_advertise = \"127.0.0.1:8193\"\n consul = \"127.0.0.1:8500\"\n nomad_addr = \"127.0.0.1:4646\" # compatibility API need to access a nomad server\n }\n}\n全部启动后, nomad将自动向consul注册,组成集群:\n\n\n"},"3/3.0_function_scenario_mapping.html":{"url":"3/3.0_function_scenario_mapping.html","title":"3.0.功能/场景的映射列表","keywords":"","body":"功能/场景的映射列表\n\n\n\n场景\n复制手段(binlog-binlog)\n复制手段(binlog-sql)\n复制模式(全量+增量)\n复制模式(增量)\n\n\n\n\n单个MySQL 单向复制到 单个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL 双向复制到 单个MySQL\n支持\n支持\n-\n支持\n\n\n多个MySQL的表 合并到 单个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL的不同表 分发到 多个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL的同一表的不同记录 分发 到 多个MySQL\n支持按主键分发; 不支持按函数分发\n支持\n支持\n支持按主键分发; 不支持按函数分发\n\n\n公有云间的数据同步\n不支持\n支持\n支持\n支持\n\n\n单个MySQL复制到Kafka\n-\n-\n支持\n支持\n\n\n多个MySQL复制到Kafka\n-\n-\n支持\n支持\n\n\n\n\n\n\n场景\n复制对象(整库复制)\n复制对象(整表复制)\n复制对象(按条件复制部分记录)\n\n\n\n\n单个MySQL 单向复制到 单个MySQL\n支持\n支持\n支持\n\n\n单个MySQL 双向复制到 单个MySQL\n支持; 不支持建表语句包含if not exists #361\n支持\n支持\n\n\n多个MySQL的表 合并到 单个MySQL\n-\n支持\n支持\n\n\n单个MySQL的不同表 分发到 多个MySQL\n-\n支持\n支持\n\n\n单个MySQL的同一表的不同记录 分发 到 多个MySQL\n-\n支持\n支持\n\n\n公有云间的数据同步\n支持\n支持\n支持\n\n\n单个MySQL复制到Kafka\n支持\n支持\n支持\n\n\n多个MySQL复制到Kafka\n支持\n支持\n支持\n\n\n\n\n\n\n场景\n复制链路(链路压缩)\n复制链路(跨网络边际)\n回访模式(并行回放)\n\n\n\n\n单个MySQL 单向复制到 单个MySQL\n支持\n支持\n支持\n\n\n单个MySQL 双向复制到 单个MySQL\n支持\n支持\n支持\n\n\n多个MySQL的表 合并到 单个MySQL\n支持\n支持\n支持\n\n\n单个MySQL的不同表 分发到 多个MySQL\n支持\n支持\n支持\n\n\n单个MySQL的同一表的不同记录 分发 到 多个MySQL\n支持\n支持\n支持\n\n\n公有云间的数据同步\n支持\n支持\n支持\n\n\n单个MySQL复制到Kafka\n支持\n支持\n-\n\n\n多个MySQL复制到Kafka\n支持\n支持\n-\n\n\n\n\n\n\n场景\n自动创建表结构\n支持DDL\nAgent 水平扩展\n\n\n\n\n单个MySQL 单向复制到 单个MySQL\n支持\n支持\n支持\n\n\n单个MySQL 双向复制到 单个MySQL\n-\n支持\n支持\n\n\n多个MySQL的表 合并到 单个MySQL\n支持\n支持\n支持\n\n\n单个MySQL的不同表 分发到 多个MySQL\n支持\n支持\n支持\n\n\n单个MySQL的同一表的不同记录 分发 到 多个MySQL\n支持\n支持按主键分发; 不支持按函数分发\n支持按主键分发; 不支持按函数分发\n\n\n公有云间的数据同步\n支持\n支持\n支持\n\n\n单个MySQL复制到Kafka\n支持\n不支持\n支持\n\n\n多个MySQL复制到Kafka\n支持\n不支持\n支持\n\n\n\n\n\n\n场景\n高可用(故障转移)\n高可用(断点续做)\n任务暂停/恢复\n监控\n\n\n\n\n单个MySQL 单向复制到 单个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL 双向复制到 单个MySQL\n支持\n支持\n支持\n支持\n\n\n多个MySQL的表 合并到 单个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL的不同表 分发到 多个MySQL\n支持\n支持\n支持\n支持\n\n\n单个MySQL的同一表的不同记录 分发 到 多个MySQL\n支持按主键分发; 不支持按函数分发\n支持按主键分发; 不支持按函数分发\n支持按主键分发; 不支持按函数分发\n支持\n\n\n公有云间的数据同步\n支持\n支持\n支持\n支持\n\n\n单个MySQL复制到Kafka\n支持\n不支持\n支持\n支持\n\n\n多个MySQL复制到Kafka\n支持\n不支持\n支持\n支持\n\n\n\n"},"3/3.1_limitation.html":{"url":"3/3.1_limitation.html","title":"3.1.使用限制","keywords":"","body":"使用限制\n限制\n\n仅支持 MySQL 5.6/5.7 版本\n仅支持 InnoDB 引擎\n仅支持以下字符集:\nlatin1\nlatin2\ngb2312, gbk, gb18030\nutf8, utf8mb4\nutf32\nbinary\n\n\n在latin1/2表中,不支持非latin字符(如中文)(#388)\n对于非UTF8编码执行的DDL,不支持DDL中含有混合编码字符串,如(col varchar default _utf32\"...\")\nbinlog 仅支持row模式\nbinlog image 仅支持FULL模式\n源端和目标端大小写敏感配置 (lower_case_table_names) 需保持一致 \n需要开启 GTID\n不支持 Trigger\n暂不支持 View\n支持procedure,function,event的增量部分迁移(须创建库级别的迁移job),但存在源端与目标端字符集不完全一致的问题#357\n支持user增量部分的迁移(须创建实例级别的迁移job),且支持grant,revoke(要求回放用户有grant option)\n支持MySQL认证方式 mysql_native_password(MySQL 5.7)和caching_sha2_password(MySQL 8.0),其他认证方式不详\n在dtle的增量复制过程中,如果源端执行replace into语句或者执行产生Duplicate entry冲突insert语句,可能导致目标端的 AUTO_INCREMENT值和源端不一致(MySQL Bug#83030)\n\n源端 MySQL 需配置如下参数\n\n\n\n参数\n值\n检查方式\n\n\n\n\nlog_bin\nON (my.cnf中填写合法文件名)\nshow global variables like 'log_bin'\n\n\nbinlog_format\nROW\nshow global variables like 'binlog_format';\n\n\nbinlog_row_image\nFULL\nshow global variables like 'binlog_row_image';\n\n\nlog_slave_updates\nON\nshow global variables like 'log_slave_updates';\n\n\ngtid_mode\nON\nshow global variables like 'gtid_mode';\n\n\n\n\n对于 lower_case_table_names参数, dtle支持的值为0或1。\n原则上要求源端和目标端设置相同。\n且job存续期间,MySQL上该参数的值不可改变。\n允许设置参数值2, 但不支持大小写混用。\n\n\n\n关于外键 (foreign key)\n在3.21.10.0以前,dtle回放时会设置set @@foreign_key_checks=OFF。外键的级连操作(如on update cascade)将无法生效。\n从3.21.10.0开始,dtle增量回放时,默认set @@foreign_key_checks=ON。可以触发外键级连操作。\n对于存在外键关系的一系列表,需要这些表在同一个job的复制范围内,才能正常执行。\n该行为可用job配置中dest部分ForeignKeyChecks控制,默认为true。如有必要,可将其设为false。\n涉及外键引用父表的事务,回放时会单独回放,不能并行。\n遗留问题:在外键子表上alter table drop foreign key后,原外键父表依然会被认为是外键父表。\n"},"3/3.2_ports.html":{"url":"3/3.2_ports.html","title":"3.2.端口使用说明","keywords":"","body":"端口使用说明\n默认情况下, nomad 和 consul的传输/通信会使用如下端口: \n\n\n\n端口号\n说明\n\n\n\n\n8190\ndtle 2.x HTTP API兼容层的端口\n\n\n8500\nconsul HTTP 端口\n\n\n4646\nnomad HTTP 端口\n\n\n4647\nnomad RPC 端口\n\n\n4648\nnomad serf端口\n\n\n8193\n数据传输的端口\n\n\n\n如何修改\n端口配置可在/etc/dtle/nomad.hcl中修改\n"},"3/3.3_impact_on_dest.html":{"url":"3/3.3_impact_on_dest.html","title":"3.3.对目标端数据库的影响(gtid_executed表)","keywords":"","body":"对目标端数据库的影响(gtid_executed表)\n表 dtle.gtid_executed_v4\n当目标端是MySQL数据库时, dtle会在目标端自动创建表dtle.gtid_executed_v4, 目标端的用于回放数据的数据库用户需要对这张表有相应权限.\n表dtle.gtid_executed_v4的作用是存储已经回放的事务的GTID, 用作断点续传/数据检查等.\n使用表dtle.gtid_executed_v4模仿GTID机制, 而不使用MySQL原生GTID机制的原因是: 在回放时, set GTID_NEXT=... 语句需要 SUPER 权限, 而云环境下, 数据库用户可能无法拥有 SUPER 权限.\ndtle.gtid_executed_v4的建表语句如下: \nCREATE TABLE IF NOT EXISTS dtle.gtid_executed_v4 (\n job_name varchar(64) NOT NULL,\n source_uuid binary(16) NOT NULL,\n gtid int NOT NULL,\n gtid_set longtext,\n primary key (job_name, source_uuid, gtid)\n);\n\n表结构说明: \n\njob_name: 执行同步的任务名\nsource_uuid: 源端数据库UUID号\ngtid: 执行过的GTID gno编号。若某行该列为0,则表明这是一个汇总行\n行数过多时,会触发汇总机制\n\n\ngtid_set: 对于gtid=0的汇总行,该列批量储存gno编号,如1-100:200:300-400\n\n典型的查询方法\nSELECT job_name, HEX(source_uuid), gtid, gtid_set FROM dtle.gtid_executed_v4;\n-- 注意source_uuid以binary储存,直接查询会乱码,需要HEX()转换\n\n"},"3/3.4_metrics.html":{"url":"3/3.4_metrics.html","title":"3.4.监控项说明","keywords":"","body":"监控项说明\nnomad原生metrics可访问:http://127.0.0.1:4646/v1/metrics?format=prometheus\n由于nomad plugin并不能访问nomad监控接口,dtle有关的监控需要通过API兼容层访问。\n注意:通过兼容层只能看到本节点运行的任务的监控项。\n配置\n首先配置nomad.hcl中打开api兼容层,并配置publish_metrics = true。\nplugin \"dtle\" {\n config {\n api_addr = \"127.0.0.1:8190\"\n nomad_addr = \"127.0.0.1:4646\"\n publish_metrics = true\n stats_collection_interval = 15\n ...\n访问 127.0.0.1:8190/metrics 可查看监控项,或在prometheus中配置从此地址获取监控项。\n监控项\n\n\n\n类别\n监控项\n说明\n\n\n\n\n网络流量状态\n-\n-\n\n\n-\nnetwork.in_msgs\n-\n\n\n-\nnetwork.out_msgs\n-\n\n\n-\nnetwork.in_bytes\n-\n\n\n-\nnetwork.out_bytes\n-\n\n\n缓存/队列状态\n-\n-\n\n\n-\nbuffer.src_queue_size\n-\n\n\n-\nbuffer.dest_queue_size\n-\n\n\n-\nbuffer.send_by_timeout\n-\n\n\n-\nbuffer.send_by_size_full\n-\n\n\n内存使用估计\n-\n-\n\n\n--全量计数值\nmemory.full_kb_count\n-\n\n\n--增量计数值\nmemory.incr_kb_count\n-\n\n\n--全量估计值\nmemory.full_kb_est\n-\n\n\n--增量估计值\nmemory.incr_kb_est\n-\n\n\n延迟统计\n-\n-\n\n\n-\ndelay.time\n-\n\n\n表统计(未实现)\n-\n-\n\n\n-\ntable.insert\n-\n\n\n-\ntable.update\n-\n\n\n-\ntable.delete\n-\n\n\n吞吐统计(未实现)\n-\n-\n\n\n-\nthroughput.num\n-\n\n\n-\nthroughput.time\n-\n\n\n事务统计\n-\n-\n\n\n-\nsrc_extracted_incr_tx_count\n增量阶段中源端完成抽取并解析的事务总量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_src_extracted_tx_count[1m])\n\n\n-\ndest_applied_incr_tx_count\n增量阶段中目标端完成回放的事务总量。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算tps,如:irate(demo_dest_applied_tx_count[1m])\n\n\nsql执行量统计\n-\n-\n\n\n-\nsrc_extracted_incr_query_count\n增量阶段中源端完成抽取并解析的dml/ddl数量。从源端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_src_extracted_query_count[1m])\n\n\n-\ndest_applied_incr_query_count\n增量阶段中目标端执行的ddl/dml总量(未commit前也算)。从目标端任务启动开始计数,重启任务时计数清零。可配合prometheus的irate()计算qps,如:irate(demo_dest_applied_query_count[1m])\n\n\n\n内存使用\n\ndtle根据数据量(内存计数值)来估计内存占用。因程序处理,实际使用的内存有放大效应\n内存估计值 = 内存计数值 x 放大系数\n根据Go内存分配器原理,job处理完后,内存可能不会立刻被释放给操作系统\n\n任务延迟\n延迟统计仅对增量(含Kafka输出)有效,其原理为:\n\n源端MySQL在执行事务时,binlog中记录了时间戳\ndtle在传输/回放事务时,取时间戳和当前时间的差值为延迟值\n如果一段时间(15s)没有事务,则重置延迟值为0\n\n注意事项\n\n需要MySQL和dtle主机的时间基本正确\n源端和目标端都有延迟统计,取两者中大值为延迟\n\n为了便于查看延迟曲线以及跟踪高延迟情况,可用Prometheus抓取dtle的监控项并使用Alertmanager发送告警,\n步骤可参考 延迟告警示例。\n效果图:\n\n"},"3/3.4.1_delay_alert.html":{"url":"3/3.4.1_delay_alert.html","title":"3.4.1.延迟监控告警","keywords":"","body":"延迟监控告警示例\n Prometheus可直观查看监控项并记录历史值,\n 可通过搭建Prometheus查看延迟情况,\n Alertmanager 可针对异常监控项及时发出告警信息,\n 通过配置Alertmanager对延迟异常任务发出告警\nPrometheus配置\n查看监控项并记录历史值\n\n准备配置文件 prometheus.yml :\n\n# 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口\nalerting:\n alertmanagers:\n - static_configs:\n - targets: [\"127.0.0.1:9093\"] \n\n# 告警规则文件\nrule_files:\n - 'prometheus_rule.yml'\n\nscrape_configs:\n - job_name: 'dtle'\n\n # Override the global default and scrape targets from this job every 5 seconds.\n scrape_interval: 5s\n\n static_configs:\n - targets: ['127.0.0.1:8190','127.0.0.2:8190'] # 填写dtle兼容层的地址。可填多个。\n\n准备告警规则文件 prometheus_rule.yml\n\ngroups:\n- name: simple_example\n rules:\n\n # Alert for task that is delay more than 5s for >1 minutes.\n - alert: TaskDelay\n expr: dtle_delay_time > 5\n for: 1m\n labels:\n severity: warning\n annotations:\n summary: \"task {{ $labels.task_name }} has delay\"\n description: \"Task {{ $labels.task_name }} of instance {{ $labels.instance }} has delay 5s more than 1 minutes.\"\n\n使用docker运行Prometheus:\n\ndocker run \\\n -p 9090:9090 \\\n -v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml \\\n -v ${PWD}/prometheus_rule.yml:/etc/prometheus/prometheus_rule.yml \\\n prom/prometheus\n\n然后浏览器访问 http://127.0.0.1:9090, 并查询(Prometheus提供补全)需要的监控项。\n\n\n\n访问http://127.0.0.1:9090/alerts, 获取当前告警规则/内容\n\n\nAlertmanager配置\n针对任务延迟异常发送告警\n\n创建配置文件 alertmanager.yml 配置示例如下\n\nglobal:\n smtp_smarthost: 'smtp.gmail.com:587'\n smtp_from: 'SENDER_ACCOUNT'\n smtp_auth_username: 'SENDER_ACCOUNT'\n smtp_auth_password: 'email smtp verify password'\n smtp_require_tls: false\nroute:\n # If an alert has successfully been sent, wait 'repeat_interval' to resend them.\n repeat_interval: 10s\n # A default receiver\n receiver: team-dtle-mails\n\nreceivers:\n - name: 'team-dtle-mails'\n email_configs:\n - to: 'receiver@actionsky.com'\n\n启动alertmanagerdocker run -p 9093:9093 -v ${PWD}/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager\n\n\n\n根据配置延迟5s以上并持续1min时,receiver@actionsky.com 邮箱收到告警如下:\n\n[1] Firing\nLabels\nalertname = TaskDelay\nhost = localhost.localdomain\ninstance = dtle-1\njob = dtle\nseverity = warning\ntask_name = dest-fail-migration_src\nAnnotations\ndescription = Task dest-fail-migration_src of instance dtle-1 has delay 5s more than 1 minutes.\nsummary = task dest-fail-migration_src has delay\nSource\n"},"3/3.4.2_monitor.html":{"url":"3/3.4.2_monitor.html","title":"3.4.2.搭建监控系统","keywords":"","body":"如何搭建DTLE的监控系统\n背景:\n虽然在DTLE的文档里提供各种监控项的介绍,但是对于不熟悉prometheus和grafana配置的同学来说上手还是有些难度的。今天我就来DTLE 3.21.07.0来搭建一个DTLE的监控系统。\n一、搭建DTLE运行环境\n\n配置两个节点的DTLE集群来演示,其拓扑如下:\n\n\n在修改DTLE配置文件的时候需要注意以下两点:\n\n开启DTLE的监控,确保publish_metrics的值为ture\n开启nomad的监控,确保正确配置telemetry\n\n这里以dtle-src-1的配置为例,具体配置参考节点配置:\n# DTLE 3.21.07.0中nomad升级为1.1.2,需要添加如下配置使nomad提供监控数据\n# 之前版本的DTLE无需添加此配置\ntelemetry {\n prometheus_metrics = true\n collection_interval = \"15s\"\n}\n\nplugin \"dtle\" {\n config {\n data_dir = \"/opt/dtle/var/lib/nomad\"\n nats_bind = \"10.186.63.20:8193\"\n nats_advertise = \"10.186.63.20:8193\"\n # Repeat the consul address above.\n consul = \"10.186.63.76:8500\"\n\n # By default, API compatibility layer is disabled.\n api_addr = \"10.186.63.20:8190\" # for compatibility API\n nomad_addr = \"10.186.63.20:4646\" # compatibility API need to access a nomad server\n\n publish_metrics = true\n stats_collection_interval = 15\n }\n}\n\n添加两个job模拟两个MySQL实例之间传输数据\n\n\n\n二、部署prometheus\n\n准备prometheus配置文件同时接收nomad和DTLE的metrics\nDTLE监控labels:instance的值建议设置为DTLE服务器的hostname\n\nshell> cat /path/to/prometheus.yml\nglobal:\n scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.\n evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.\n\nscrape_configs:\n - job_name: 'nomad'\n scrape_interval: 15s\n metrics_path: '/v1/metrics'\n params:\n format: ['prometheus']\n static_configs:\n - targets: ['10.186.63.20:4646']\n labels:\n instance: nomad-src-1\n - targets: ['10.186.63.76:4646']\n labels:\n instance: nomad-dest-1\n\n - job_name: 'dtle'\n scrape_interval: 15s\n metrics_path: '/metrics'\n static_configs:\n - targets: ['10.186.63.20:8190']\n labels:\n instance: dtle-src-1\n - targets: ['10.186.63.76:8190']\n labels:\n instance: dtle-dest-1\n\n\n利用docker部署prometheus服务\nshell> docker run -itd -p 9090:9090 --name=prometheus --hostname=prometheus --restart=always -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus\n\n在浏览器上访问prometheus的页面 http://${prometheus_server_ip}:9090/targets 验证配置生效\n\n\n\n三、部署grafana\n\n利用docker部署grafana服务\nshell> docker run -d --name=grafana -p 3000:3000 grafana/grafana\n\n在浏览器上访问grafana的页面 http://${grafana_server_ip}:3000 ,使用默认用户 admin/admin登录\n\n配置添加数据源\n\n\n选择添加promethues\n\n\n只需将promethues的访问地址添加到URL中,点击“sava & test”按钮\n\n\n\n\n添加panel\n\n\n以添加一个CPU使用率监控为例配置一个panel\n\n\n\n\n四、常用的监控项\nnomad所有监控项: https://www.nomadproject.io/docs/operations/metrics\nDTLE所有监控项:https://actiontech.github.io/dtle-docs-cn/3/3.4_metrics.html\n\n\n\n说明\n公式示例\n单位\n\n\n\n\nCPU使用率(总计)\nsum(rate(process_cpu_seconds_total{instance=~\"nomad-src-1 | dtle-src-1\"}[60s])) * 100\nMisc / Percent(0-100)\n\n\nCPU使用率(DTLE )\nrate(process_cpu_seconds_total{instance=\"dtle-src-1\"}[60s]) * 100\nMisc / Percent(0-100)\n\n\nCPU使用率(nomad)\nrate(process_cpu_seconds_total{instance=\"dtle-src-1\"}[60s]) * 100\nMisc /Percent(0-100)\n\n\n内存使用(总计)\nsum(process_resident_memory_bytes{instance=~\"nomad-src-1 | dtle-src-1\"}) /1024 /1024\nData / mebibyte\n\n\n内存使用(DTLE )\nprocess_resident_memory_bytes{instance=\"dtle-src-1\"} /1024 /1024\nData / mebibyte\n\n\n内存使用(nomad)\nprocess_resident_memory_bytes{instance=\"nomad-src-1\"} /1024 /1024\nData / mebibyte\n\n\n带宽(总计 - 源端发送)\nsum(increase(dtle_network_out_bytes{host=\"dtle-src-1\"}[30s]) /30 /1024) * 8\nData rate / kibibits/sec\n\n\n带宽(按task分组 - 源端发送)\nincrease(dtle_network_out_bytes{host=\"dtle-src-1\"}[30s]) /30 /1024 * 8\nData rate / kibibits/sec\n\n\n带宽(总计 - 目标端接收)\nsum(increase(dtle_network_in_bytes{host=\"dtle-dest-1\"}[30s]) /30 /1024) * 8\nData rate / kibibits/sec\n\n\n带宽(按task分组 - 目标端接收)\nincrease(dtle_network_in_bytes{host=\"dtle-dest-1\"}[30s]) /30 /1024 * 8\nData rate / kibibits/sec\n\n\n数据延迟(源端)\ndtle_delay_time{host=\"dtle-src-1\"}\nTime / seconds(s)\n\n\n数据延迟(目标端)\ndtle_delay_time{host=\"dtle-dest-1\"}\nTime / seconds(s)\n\n\nTPS(源端)\nirate(dtle_src_extracted_incr_tx_count[30s])\nMisc / none\n\n\nTPS(目标端)\nirate(dtle_dest_applied_incr_tx_count[30s])\nMisc / none\n\n\nQPS(源端)\nirate(dtle_src_extracted_incr_query_count[30s])\nMisc / none\n\n\nQPS(目标端)\nirate(dtle_dest_applied_incr_query_count[30s])\nMisc / none\n\n\nBuffer(源端)\ndtle_buffer_src_queue_size\nMisc / none\n\n\nBuffer(目标端)\ndtle_buffer_dest_queue_size\nMisc / none\n\n\n\n五、最后创建多个panel同时展示\n\n"},"3/3.5_deployment.html":{"url":"3/3.5_deployment.html","title":"3.5.部署结构","keywords":"","body":"3.5 部署结构\n\n如上图, nomad (运行dtle插件)支持多种不同的部署结构, 其中: \n\n简单的部署结构: \n适用于简单的场景, 用一个nomad节点同时作为server (管理节点)和client (执行节点,运行dtle插件)\n一个节点可同时处理多个传输链路\n\n\n高可用的部署结构: \n适用于对可用性较高的场景, 将 nomad 和 consul 进行三节点集群部署, 任务元数据信息在集群中同步\n一个 nomad 节点可同时作为 server 和 client, 也可将 server 和 client 分开部署\n当server发生故障时, 传输任务会转移到其他server执行 (需要server集群存活一半以上)\n当client发生故障时, 传输任务会转移到其他client执行\n\n\n跨DC的部署结构\n适用于多个数据中心间的数据同步\nserver集群可部署在任一数据中心, 或第三方数据中心\n源数据库和目标数据库 不必要保障 直接网络连通\nclient需部署在网络边界上\n\n\n\n"},"3/3.6_DDL.html":{"url":"3/3.6_DDL.html","title":"3.6.DDL支持度","keywords":"","body":"DDL支持度\n以DATABASE为对象的DDL\n\n \n DDL类型\n \n DDL语句示例\n 全量\n 增量\n 备注\n \n \n CREATE DATABASE\n basic\n CREATE DATABASE db_name;\n CREATE DATABASE IF NOT EXISTS db_name;\n CREATE SCHEMA db_name;\n CREATE SCHEMA IF NOT EXISTS db_name;\n 支持\n 支持\n 1. 支持server级默认字符集不一致情形\n \n \n character set and collate\n CREATE SCHEMA db_name CHARACTER SET utf8 COLLATE utf8_general_ci;\n CREATE SCHEMA db_name DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;\n CREATE SCHEMA db_name CHARACTER SET=latin1 COLLATE=latin1_swedish_ci;\n CREATE DATABASE db_name COLLATE latin2_general_ci;\n CREATE DATABASE db_name CHARACTER SET binary;\n CREATE DATABASE db_name DEFAULT CHARACTER SET=gbk DEFAULT COLLATE=gbk_chinese_ci;\n 支持\n 支持\n 1. 支持字符集latin1、latin2、gbk、utf8、utf8mb4、binary\n \n \n ALTER DATABASE\n \n ALTER DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci\n 支持\n 支持\n 支持字符集latin1、latin2、gbk、utf8、utf8mb4、binary\n \n \n DROP DATABASE\n \n DROP DATABASE db_name;\n DROP DATABASE IF EXISTS db_name;\n DROP SCHEMA db_name;\n DROP SCHEMA IF EXISTS db_name;\n 支持\n 支持\n \n \n\n\n\n以TABLE为对象的DDL\n\n \n DDL类型\n \n \n DDL语句示例\n 全量\n 增量\n 备注\n \n \n CREATE TABLE\n column data types and attributes\n basic\n CREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition);\n 支持\n 支持\n \n \n \n character set\n CREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition CHARACTER SET utf8 COLLATE utf8_bin);\n 支持\n 支持\n \n \n \n null\n CREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition NULL);\n 支持\n 支持\n \n \n \n not null\n CREATE TABLE [IF NOT EXISTS] tbl_name (col_name column_definition NOT NULL);\n 支持\n 支持\n \n \n \n default\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20) DEFAULT '');\n 支持\n 支持\n \n \n \n auto_increment\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY);\n 支持\n 支持\n \n \n \n comment\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) COMMENT '');\n 支持\n 支持\n \n \n \n generated always\n CREATE TABLE [IF NOT EXISTS] tbl_name (sidea DOUBLE,sideb DOUBLE,sidec DOUBLE GENERATED ALWAYS AS (SQRT(sidea * sidea + sideb * sideb)));\n 支持\n 支持\n 建表语句支持,但是数据复制有缺陷\n https://github.com/actiontech/dtle/issues/787\n \n \n indexes and foreign keys\n check\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) CHECK(expr));\n 支持\n 支持\n \n \n \n primary key\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, PRIMARY KEY (id));\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20), PRIMARY KEY(id, c));\n 支持\n 支持\n \n \n \n key\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT KEY);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, KEY index_name (key_part));\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't7', KEY (key_part, key_part));\n 支持\n 支持\n \n \n \n index\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, INDEX index_name (key_part));\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't10', INDEX(key_part, key_part));\n 支持\n 支持\n \n \n \n unique\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT UNIQUE KEY);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, UNIQUE KEY index_name (key_part));\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20), UNIQUE INDEX (key_part(prefix value)));\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT, c CHAR(20) DEFAULT 't10', CONSTRAINT UNIQUE INDEX (key_part, key_part));\"\n 支持\n 支持\n \n \n \n fulltext\n CREATE TABLE [IF NOT EXISTS] tbl_name (c_varchar_1 varchar(255), c_varchar_2 varchar(255), FULLTEXT KEY index_name (key_part, key_part));\n 支持\n 支持\n \n \n \n foreign key\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, FOREIGN KEY index_name (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, parent_id INT, FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option);\n 支持\n 支持\n 应满足一下配置,否则在开启MTS的情况下不能保证数据一致性\n 1.目标端数据库@@foreign_key_checks = 1 (默认值为1)\n 2.dtle job 中ForeignKeyChecks = true (默认值为true)\n \n \n table options\n engine\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) ENGINE=InnoDB;\n 支持\n 支持\n \n \n \n auto_increment\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) AUTO_INCREMENT=100;\n 支持\n 支持\n \n \n \n character set\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) CHARACTER SET=utf8;\n 支持\n 支持\n \n \n \n collate\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) DEFAULT COLLATE=utf8_general_ci;\n 支持\n 支持\n \n \n \n checksum\n CREATE TABLE [IF NOT EXISTS] tbl_name (c CHAR(20)) CHECKSUM=1;\n 支持\n 支持\n \n \n \n comment\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) COMMENT='';\n 支持\n 支持\n \n \n \n compression\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT(11) AUTO_INCREMENT PRIMARY KEY) COMPRESSION='ZLIB';\n 支持\n 支持\n \n \n \n table partitioning\n hash\n CREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5)) PARTITION BY HASH(col1);\n CREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATETIME) PARTITION BY HASH ( YEAR(col3) );\n 支持\n 支持\n \n \n \n key\n CREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY KEY(col3) PARTITIONS 4;\n 支持\n 支持\n \n \n \n linear key\n CREATE TABLE [IF NOT EXISTS] tbl_name (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY LINEAR KEY(col3) PARTITIONS 5;\n 支持\n 支持\n \n \n \n range\n CREATE TABLE [IF NOT EXISTS] tbl_name (year_col INT, some_data INT) PARTITION BY RANGE (year_col) (PARTITION p0 VALUES LESS THAN (1991), PARTITION p1 VALUES LESS THAN (2020), PARTITION p5 VALUES LESS THAN MAXVALUE);\n 支持\n 支持\n \n \n \n range columns\n CREATE TABLE [IF NOT EXISTS] tbl_name (a INT NOT NULL, b INT NOT NULL) PARTITION BY RANGE COLUMNS(a,b) (PARTITION p1 VALUES LESS THAN (20,10), PARTITION p2 VALUES LESS THAN (50,MAXVALUE), PARTITION p3 VALUES LESS THAN (65,MAXVALUE), PARTITION p4 VALUES LESS THAN (MAXVALUE,MAXVALUE));\n 支持\n 支持\n \n \n \n list\n CREATE TABLE [IF NOT EXISTS] tbl_name (id INT, name VARCHAR(35)) PARTITION BY LIST (id) (PARTITION r0 VALUES IN (1, 5, 9, 13, 17, 21), PARTITION r1 VALUES IN (2, 6, 10, 14, 18, 22), PARTITION r2 VALUES IN (3, 7, 11, 15, 19, 23), PARTITION r3 VALUES IN (4, 8, 12, 16, 20, 24));\n 支持\n 支持\n \n \n \n like statement\n tracked to tracked\n CREATE TABLE new_1 LIKE old_1;\n 支持\n 支持\n 新表在目标端创建,后续数据传输正常\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_1\"\n },\n {\n \"table_name\": \"new_1\"\n }\n ]\n }\n ]\n }\n \n \n tracked to not tracked\n CREATE TABLE new_2 LIKE old_2;\n 支持\n 支持\n 新表不会在目标端创建\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_2\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to tracked\n CREATE TABLE new_3 LIKE old_3;\n 支持\n 支持\n 新表不会在目标端创建,DTLE会报错重启\n old_3不在目标端,无法执行该语句\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"new_3\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to not tracked\n CREATE TABLE new_4 LIKE old_4;\n 支持\n 支持\n 新表不会在目标端创建\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\"\": [\n {\n \"table_name\": \"old_1\"\n }\n ]\n }\n ]\n }\n \n \n alter table\n table options\n engine\n ALTER TABLE tbl_name ENGINE=InnoDB;\n /\n 支持\n \n \n \n auto_increment\n ALTER TABLE tbl_name AUTO_INCREMENT=100;\n /\n 支持\n \n \n \n character set\n ALTER TABLE tbl_name CHARACTER SET=utf8;\n /\n 支持\n \n \n \n collate\n ALTER TABLE tbl_name COLLATE=utf8_general_ci;\n /\n 支持\n \n \n \n checksum\n ALTER TABLE tbl_name CHECKSUM=1;\n /\n 支持\n \n \n \n comment\n ALTER TABLE tbl_name COMMENT='';\n /\n 支持\n \n \n \n compression\n ALTER TABLE tbl_name COMPRESSION='ZLIB';\n /\n 支持\n \n \n \n adding and dropping columns\n add\n ALTER TABLE tbl_name ADD d CHAR(20);\n /\n 支持\n \n \n \n add after\n ALTER TABLE tbl_name ADD d CHAR(20) AFTER b;\n /\n 支持\n \n \n \n add first\n ALTER TABLE tbl_name ADD d CHAR(20) FIRST;\n /\n 支持\n \n \n \n drop\n ALTER TABLE tbl_name DROP b;\n /\n 支持\n \n \n \n add multiple\n ALTER TABLE tbl_name ADD (d CHAR(20), e INT(11));\n /\n 支持\n \n \n \n drop multiple\n ALTER TABLE tbl_name DROP b, DROP COLUMN c;\n /\n 支持\n \n \n \n renaming, redefining, and reordering columns\n change name\n ALTER TABLE tbl_name CHANGE COLUMN b d INT(11) DEFAULT NULL;\n /\n 支持\n \n \n \n change type\n ALTER TABLE tbl_name CHANGE b b BIGINT DEFAULT NULL;\n /\n 支持\n \n \n \n modify type\n ALTER TABLE tbl_name MODIFY COLUMN b BIGINT DEFAULT NULL;\n /\n 支持\n \n \n \n chang multiple\n ALTER TABLE tbl_name CHANGE b d INT(11) DEFAULT NULL, CHANGE c e BIGINT DEFAULT NULL;\n /\n 支持\n \n \n \n modify multiple\n ALTER TABLE tbl_name MODIFY b BIGINT DEFAULT NULL, MODIFY c BIGINT DEFAULT NULL;\n /\n 支持\n \n \n \n modify character set\n ALTER TABLE tbl_name MODIFY b TEXT CHARACTER SET utf8;\n /\n 支持\n \n \n \n primary keys and indexes\n add primary key\n ALTER TABLE tbl_name ADD CONSTRAINT PRIMARY KEY (key_part);\n ALTER TABLE tbl_name ADD PRIMARY KEY (key_part, key_part);\n /\n 支持\n \n \n \n drop primary key\n ALTER TABLE tbl_name DROP PRIMARY KEY;\n /\n 支持\n \n \n \n add key\n ALTER TABLE tbl_name ADD KEY (key_part);\n ALTER TABLE tbl_name ADD INDEX index_name (key_part, key_part);\n /\n 支持\n \n \n \n drop key\n ALTER TABLE tbl_name DROP PRIMARY KEY;\n ALTER TABLE tbl_name DROP INDEX index_name;\n /\n 支持\n \n \n \n add unique key\n ALTER TABLE tbl_name ADD UNIQUE INDEX (key_part);\n ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE KEY index_name (key_part, key_part);\n /\n 支持\n \n \n \n drop unique key\n ALTER TABLE tbl_name DROP KEY id;\n ALTER TABLE tbl_name DROP INDEX index_name;\n /\n 支持\n \n \n \n foreign keys\n add foreign key\n ALTER TABLE tbl_name ADD CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;\n ALTER TABLE tbl_name ADD CONSTRAINT symbol FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;\n ALTER TABLE tbl_name ADD CONSTRAINT FOREIGN KEY index_name (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;\n ALTER TABLE tbl_name ADD FOREIGN KEY (col_name) REFERENCES tbl_name(key_part) ON DELETE reference_option ON UPDATE reference_option;\n ALTER TABLE tbl_name ADD FOREIGN KEY (col_name) REFERENCES tbl_name(key_part);\n /\n 支持\n 应满足一下配置,否则在开启MTS的情况下不能保证数据一致性\n 1.目标端数据库@@foreign_key_checks = 1 (默认值为1)\n 2.dtle job 中ForeignKeyChecks = true (默认值为true)\n \n \n drop foreign key\n ALTER TABLE tbl_name DROP FOREIGN KEY fk_child_5_1; \n /\n 支持\n 无法和MTS同时使用:\n https://github.com/actiontech/dtle/issues/795#issuecomment-961786003\n \n \n changing the character set\n modify character set\n ALTER TABLE tbl_name MODIFY b TEXT CHARACTER SET utf8;\n /\n 支持\n \n \n \n convert to\n ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;\n /\n 支持\n \n \n \n rename\n rename index\n ALTER TABLE tbl_name RENAME INDEX index_name_old to index_name_new;\n /\n 支持\n \n \n \n rename key\n ALTER TABLE tbl_name RENAME KEY index_name_old toindex_name_new;\n /\n 支持\n \n \n \n tracked to tracked\n ALTER TABLE old_1 RENAME TO new_1;\n /\n 支持\n 重命名成功,后续数据传输正常\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_1\"\n },\n {\n \"table_name\": \"new_1\"\n }\n ]\n }\n ]\n }\n \n \n tracked to not tracked\n ALTER TABLE old_2 RENAME AS new_2;\n /\n 支持\n 重命名成功,后续数不应据传到目标端\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_2\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to tracked\n ALTER TABLE old_3 RENAME AS new_3;\n /\n 支持\n 因目标端没有改名前的表,会有ERROR log\n old_3不在目标端,无法执行该语句\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"new_3\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to not tracked\n ALTER TABLE old_4 RENAME TO new_4;\n /\n 支持\n 目标端不会有重命名后的表\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_1\"\n }\n ]\n }\n ]\n }\n \n \n table partitioning\n ADD PARTITION\n ALTER TABLE tbl_name PARTITION BY HASH(expr) PARTITIONS num;\n ALTER TABLE tbl_name ADD PARTITION (PARTITION partition_names VALUES LESS THAN (MAXVALUE));\n /\n 支持\n \n \n \n DROP PARTITION\n ALTER TABLE tbl_name DROP PARTITION partition_names;\n /\n 支持\n \n \n \n drop table\n \n basic\n DROP TABLE tbl_name;\n /\n 支持\n \n \n \n if exists\n DROP TABLE IF EXISTS tbl_name RESTRICT;\n DROP TABLE IF EXISTS not_exists_tbl_name CASCADE;\n /\n 支持\n \n \n \n drop multiple\n DROP TABLE IF EXISTS not_exists_tbl_name CASCADE;\n DROP TABLE IF EXISTS tbl_name_1, tbl_name_2, not_exists_tbl_name;\n /\n 支持\n \n \n\n## 以INDEX为对象的DDL\n\n\n \n DDL类型\n \n DDL语句示例\n 全量\n 增量\n 备注\n \n \n CREATE INDEX\n basic\n CREATE INDEX key_t1_1 ON t1 (id);\n 支持\n 支持\n \n \n \n prefix key\n CREATE INDEX key_t2_1 ON t2 (a(2));\n CREATE UNIQUE INDEX key_t3_1 ON t3 (a(3));\n 支持\n 支持\n \n \n \n unique\n CREATE UNIQUE INDEX key_t4_1 ON t4 (id);\n 支持\n 支持\n \n \n \n unique not null\n CREATE UNIQUE INDEX key_t5_1 ON t5 (id);\n 支持\n 支持\n \n \n \n unique multiple\n CREATE UNIQUE INDEX key_t6_1 ON t6 (a, b);\n 支持\n 支持\n \n \n \n fulltext\n CREATE FULLTEXT INDEX full_t7_1 ON t7 (a);\n 支持\n 支持\n \n \n \n index_type\n CREATE INDEX key_t8_1 ON t8 (id) USING BTREE;\n 支持\n 支持\n \n \n \n comment\n CREATE INDEX key_t9_1 ON t9 (id) COMMENT 'test comment';\n 支持\n 支持\n \n \n \n DROP INDEX\n \n DROP INDEX key_t1_1 ON t1;\n 支持\n 支持\n \n \n\n\n其他对象DDL\n\n \n DDL类型\n \n DDL语句示例\n 全量\n 增量\n 备注\n \n \n RENAME\n tracked to tracked\n RENAME TABLE old_1 to new_1;\n /\n 支持\n 重命名成功,后续数据传输正常\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_1\"\n },\n {\n \"table_name\": \"new_1\"\n }\n ]\n }\n ]\n }\"\n \n \n tracked to not tracked\n RENAME TABLE old_2 to new_2;\n /\n 支持\n 重命名成功,后续数不应据传到目标端\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"old_2\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to tracked\n RENAME TABLE old_3 to new_3;\n /\n 支持\n 因目标端没有改名前的表,会有ERROR log\n old_3不在目标端,无法执行该语句\n {\n \"replicate_do_db\": [\n {\n \"table_schema\": \"action_db_1\",\n \"tables\": [\n {\n \"table_name\": \"new_3\"\n }\n ]\n }\n ]\n }\n \n \n not tracked to not tracked\n RENAME TABLE old_4 to new_4;\n /\n 支持\n 目标端不会有重命名后的表\n {\n \"\"replicate_do_db\"\": [\n {\n \"\"table_schema\"\": \"\"action_db_1\"\",\n \"\"tables\"\": [\n {\n \"\"table_name\"\": \"\"old_1\"\"\n }\n ]\n }\n ]\n }\n \n \n \n rename multiple\n RENAME TABLE old_5 to new_5, old_6 to new_6;\n /\n 支持\n \n \n \n TRUNCATE\n \n TRUNCATE tbl_name;\n TRUNCATE TABLE tbl_name;\n /\n 支持\n \n \n \n VIEW\n CREATE VIEW\n CREATE VIEW view_name AS select_statement;\n CREATE OR REPLACE VIEW view_name AS select_statement;\"\n 不支持\n 不支持\n \n \n \n ALTER VIEW\n ALTER VIEW view_name (column_list) AS select_statement;\n /\n 不支持\n \n \n DROP VIEW\n DROP VIEW view_name RESTRICT;\n DROP VIEW IF EXISTS view_name RESTRICT;\n DROP VIEW IF EXISTS view_name CASCADE;\n DROP VIEW view_name_1, view_name_2;\n /\n 不支持\n \n \n FUNCTION\n CREATE FUNCTION\n CREATE FUNCTION sp_name() RETURNS type characteristic routine_body;\n CREATE FUNCTION sp_name(func_parameters) RETURNS type characteristic RETURN routine_body;\n 不支持\n 支持\n 1. [MySQL 5]目标端账户需要CREATE ROUTINE, SUPER权限\n 2. [MySQL 8] 目标端账户需要CREATE ROUTINE, SET_USER_ID, SYSTEM_USER权限, SET GLOBAL log_bin_trust_function_creators = ON;\n 3. job配置ExpandSyntaxSupport=true\n 4. 全量不复制function\n \n \n ALTER FUNCTION\n ALTER FUNCTION sp_name SQL SECURITY DEFINER;\n ALTER FUNCTION sp_name COMMENT '';\n /\n 支持\n \n \n DROP FUNCTION\n DROP FUNCTION sp_name;\n DROP FUNCTION IF EXISTS sp_name;\n DROP FUNCTION IF EXISTS not_exists_sp_name;\n /\n 支持\n \n \n PROCEDURE\n CREATE PROCEDURE\n CREATE PROCEDURE sp_name() characteristic routine_body;\n CREATE PROCEDURE sp_name(proc_parameters) characteristic routine_body;\n 不支持\n 支持\n 1. [MySQL 5]目标端账户需要CREATE ROUTINE, SUPER权限\n 2. [MySQL 8] 目标端账户需要CREATE ROUTINE, SET_USER_ID, SYSTEM_USER权限, SET GLOBAL log_bin_trust_function_creators = ON;\n 3. job配置ExpandSyntaxSupport=true\n 4. 全量不复制创建procedure\n \n \n ALTER PROCEDURE\n ALTER PROCEDURE sp_name SQL SECURITY DEFINER;\n ALTER PROCEDURE sp_name COMMENT '';\n /\n 支持\n \n \n DROP PROCEDURE\n DROP PROCEDURE sp_name;\n DROP PROCEDURE IF EXISTS sp_name;\n DROP PROCEDURE IF EXISTS not_exists_sp_name;\n /\n 支持\n \n \n EVENT\n CREATE EVENT\n CREATE EVENT event_name ON SCHEDULE schedule COMMENT '' DO event_body;\n 不支持\n 不支持\n 1.不支持复制event\n 2.源端event产生的数据会复制到目标端\n \n \n ALTER EVENT\n ALTER EVENT event_name RENAME TO event_name_new;\n /\n 不支持\n \n \n DROP EVENT\n DROP EVENT IF EXISTS not_exists_event_name;\n DROP EVENT IF EXISTS event_name;\n DROP EVENT event_name;\n /\n 不支持\n \n \n TRIGGER\n CREATE TRIGGER\n CREATE TRIGGER trigger_name BEFORE INSERT on old FOR EACH ROW trigger_body;\n CREATE TRIGGER trigger_name AFTER INSERT on old FOR EACH ROW trigger_body;\n CREATE TRIGGER trigger_name BEFORE UPDATE on old FOR EACH ROW trigger_body;\n CREATE TRIGGER trigger_name AFTER UPDATE on old FOR EACH ROW trigger_body;\n CREATE TRIGGER trigger_name BEFORE DELETE on old FOR EACH ROW trigger_body;\n CREATE TRIGGER trigger_name AFTER DELETE on old FOR EACH ROW trigger_body;\n 不支持\n 不支持\n 1.不支持复制trigger\n 2. 源端trigger产生的数据会复制到目标端\n \n \n DROP TRIGGER\n DROP TRIGGER trigger_name;\n DROP TRIGGER IF EXISTS trigger_name;\n DROP TRIGGER schema_name.trigger_name;\n /\n 不支持\n \n\n\n关于不支持 Trigger、Event\n由于Trigger或Event可能会更改表数据,目标端存在Trigger或Event时,存在二次触发的问题(源端已经触发过一次),会引起数据不一致,故dtle不复制Trigger和Event。源端Trigger/Event变更的数据,会被写进binlog,并由dtle复制到目标端。\n"},"3/3.7_DCL.html":{"url":"3/3.7_DCL.html","title":"3.7.DCL支持度","keywords":"","body":"DCL支持度\n条件及限制\n\n创建实例级别迁移\n\"ExpandSyntaxSupport\": true\n增量部分DCL的操作会被支持\n全量部分是否需要支持?即,创建job前,源端已存在的用户是否需要被迁移至目标端?#358\n若需要执行grant和revoke,则回放用户需要有‘grant option’,回放用户需要有被赋权的权限\n\n\n\n\nDCL类型\n语句示例\n是否支持\n\n\n\n\nCREATE\ncreate user ...identified by ...\n支持\n\n\nALTER\nalter user ...identified by ...\n支持\n\n\nRENAME\nrename user ... to ...\n支持\n\n\nSET PASSWORD\nset password for ...='...';\n支持\n\n\nGRANT\ngrant all on . to 'test'@'%';\n支持\n\n\nREVOKE\nrevoke insert on . from 'test'@'%';\n支持\n\n\n\n实例级别job.json配置样例:\n{\n \"job_id\": \"dcl_expand_syntax_support_true\",\n \"src_task\": {\n \"task_name\": \"src\",\n \"mysql_src_task_config\": {\n \"expand_syntax_support\": true\n },\n \"replicate_do_db\": [],\n ...\n },\n \"dest_task\": {\n \"task_name\": \"dest\",\n ...\n }\n}\n"},"3/3.8_dtle_mapping.html":{"url":"3/3.8_dtle_mapping.html","title":"3.8.dtle mapping支持","keywords":"","body":"dtle mapping\n在job配置文件中,Table字段增加若干参数,详情参考4.3 作业配置,使用方法如下\nschema mapping\n单库mapping\njob.json中ReplicateDoDb配置:\n \"ReplicateDoDb\":[\n {\n \"TableSchema\":\"demo\",\n \"TableSchemaRename\":\"demoRename\"\n }\n ],\n单库mapping结果\nsrc : demo\ndest: demoRename\n多库mapping\njob.json中ReplicateDoDb配置:\n \"ReplicateDoDb\":[\n { \n \"TableSchemaRegex\":\"(\\\\w*)src(\\\\w*)\",\n \"TableSchemaRename\":\"rename${1}\",\n }\n ],\n多库mapping结果\nsrc : test1src,test2src,test3src,cust\ndest: renametest1, renametest2, renametest3\ntable mapping\n单表mapping\njob.json中ReplicateDoDb配置:\n \"ReplicateDoDb\":[\n {\n \"TableSchema\":\"demo\",\n \"Tables\":[\n {\n \"TableName\":\"testDemo\",\n \"TableRename\":\"renameDemo\"\n }\n ]\n }\n ],\n单表mapping结果\nsrc : demo.testDemo\ndest: demo.renameDemo\n多表mapping\njob.json中ReplicateDoDb配置:\n \"ReplicateDoDb\":[\n {\n \"TableSchema\":\"demo\",\n \"Tables\":[\n {\n \"TableRegex\":\"(\\\\w*)Shard(\\\\w*)\",\n \"TableRename\":\"${1}Rename\"\n }\n ]\n }\n ],\n多表mapping结果\nsrc : demo.test1Shard,demo.test2Shard,demo.customer,demo.test3Shard\ndest: demo.test1Rename,demo.test2Rename,demo.test3Rename\n列mapping\nsrc tables\ncreate table demo.a (id int primary key, a int);\ncreate table demo.b (id int primary key, b int);\n\ndst table\ncreate table demo.colmap (id int primary key auto_increment, val int);\n\n使用 ColumnMapFrom 和 ColumnMapTo参数,将表a和表b合并到表colmap。忽略原id,使用新的自增id作为主键。\n注意:不支持自动创建目标表,需预先手动创建。\n\"ReplicateDoDb\": [{\n \"TableSchema\":\"demo\",\n \"Tables\":[{\n \"TableName\": \"a\",\n \"TableRename\": \"colmap\",\n \"ColumnMapFrom\": [\"a\"],\n \"ColumnMapTo\": [\"val\"] \n }, {\n \"TableName\": \"b\",\n \"TableRename\": \"colmap\",\n \"ColumnMapFrom\": [\"b\"],\n \"ColumnMapTo\": [\"val\"]\n }]\n}],\n\"SkipCreateDbTable\": true,\n\"DropTableIfExists\": false,\n\n参数说明\n\nColumnMapFrom: 从源表中, 依照指定的顺序, 提取全部列或部分列.\nColumnMapTo: 写入目标表时, 指定写入的列. 可为目标表全部列或部分列.\nFrom和To的列数量必须相等.\n只填写ColumnMapFrom的用法现已deprecated.\n\n\n对于TwoWaySync双向任务, 反向任务会交换正向任务的ColumnMapFrom/ColumnMapTo\n\n暂不支持使用正则表达式匹配列。\n"},"3/3.9_binlog_relay.html":{"url":"3/3.9_binlog_relay.html","title":"3.9.Binlog Relay (中继)","keywords":"","body":"Binlog Relay (中继)\n背景\n\n某些MySQL部署会定期清除binlog\ndtle增量复制依赖binlog,如果binlog被清除则复制会出错\ndtle全量标记增量开始位置, 若全量耗时较长, 开始增量时binlog极有可能被清除\n\n\n需要在开始全量时将MySQL binlog暂存到dtle本地\n\n使用\n在job.json源端任务配置中将BinlogRelay设为true\n \"Type\": \"Src\",\n \"Config\": {\n \"BinlogRelay\": true,\n \"Gtid\": \"\",\n\n对于纯增量job,开启BinlogRelay时,必须用Gtid指定复制起点(进度),不能使用BinlogFile/Pos。\n参数说明详见作业配置.\n影响\nbinlog储存位置为 nomad_data_dir/binlog/job_name/mysql_server_uuid。一般情况job被删除时会自动清除binlog目录。若未清除则需手动清除。\n"},"3/3.10_consul.html":{"url":"3/3.10_consul.html","title":"3.10.consul 上的 job 数据管理","keywords":"","body":"consul 上的 job 数据管理\ndtle 3.x作为nomad插件运行,并且需要consul伴随执行。\n部分job信息储存在了consul上。其中最重要的是进度,即 Gtid 或 BinlogFile & Pos。\n查看方法(以默认consul地址为例):\n# 使用raw查看原始值\n$ curl -XGET \"127.0.0.1:8500/v1/kv/dtle/job_name/Gtid?raw\"\nacd7d195-06cd-11e9-928f-02000aba3e28:1-143934\n\n$ curl -XGET \"127.0.0.1:8500/v1/kv/dtle/job_name/BinlogPos?raw\"\nbin.000075//dtle//11909\n\n注意Gtid可能有多行,需要完整记录。\nBinlogFile & Pos 使用 //dtle// 分割。\n\n为了使用户能够记录进度,job删除后,dtle不会自动删除consul上的信息.\n重建Job时,若consul上已有进度,则会使用consul上的进度(而非job配置中的起点)。\n已删除的Job需要自行删除consul上的信息:\n# 使用recurse删除job_name下所有项目\n$ curl -XDELETE \"127.0.0.1:8500/v1/kv/dtle/job_name?recurse\"\n或者使用浏览器访问 127.0.0.1:8500, 使用Web UI管理。\n"},"3/3.11_oracle_mysql.html":{"url":"3/3.11_oracle_mysql.html","title":"3.11.Oracle MySQL同步支持","keywords":"","body":"CDC场景\n全量复制\n\n任务启动时间点开始,将指定库表结构数据传输到目标端\n\n全量流程\n\n获取当前所需同步的库/表,从服务器上的redo日志获取当前系统改变号(SCN)的位置\n获取同步表的ROW SHARE LOCK,以防止在创建快照期间表结构发生变化\n获取同步的库/表的结构信息,同步到目标端\n释放ROW SHARE LOCK\n依据步骤3读取的SCN位置,全表扫描所有相关数据库表和schema例:\nSELECT * FROM SCHEMA.TABLE AS OF SCN 123 where ROWNUM \n传输完所有的表数据,继续增量同步 \n\n限制\n全量同步过程,表结构同步完成前,不支持对同步的表做DDL操作\n增量复制\n\n根据SCN节点开启增量复制 \n从任务启动时间开启增量复制\n\nDML支持\nDML类型\n\n\n\nDML类型\noption\nOracle SQL\nMySQL SQL\n其他\n\n\n\n\nINSERT\n\nINSERT INTO TEST.CHARACTER_256_COLUMNS VALUES (4, NULL);\nreplace into `TEST`.`CHAR_256_COLUMNS`(`COL1`, `COL2`)values(?, ?)\nargs=[0, ]\n\n\nUPDATE\n\nUPDATE TEST.CHAR_20000_COLUMNS SET COL2='a a b ' WHERE COL1=2;\nupdate `TEST`.`CHAR_256_COLUMNS` set`COL1`=?, `COL2`=?where((`COL1` = ?) and (`COL2` = ?)) limit 1\nargs=[3, \"a a\", 3, \"a a\"]\n\n\nDELETE\n\nDELETE FROM TEST.CHAR_256_COLUMNS WHERE COL1 = 5;\ndelete from `TEST`.`CHAR_256_COLUMNS` where((`COL1` = ?) and (`COL2` = ?)) limit 1\nargs=[5, \"ABCDEFGHIJKLMNOPQRSTUVWXYZ \"]\n\n\n\n函数支持\n\n\n\n函数名\n是否支持\n其他\n\n\n\n\nEMPTY_BLOB\n是\n函数支持解析为NULL\n\n\nEMPTY_CLOB\n是\n函数支持解析为NULL\n\n\nCHR\n是\n\n\n\nHEXTORAW\n是\n\n\n\nDATE\n是\n\n\n\nTO_DATE\n是\n\n\n\nTO_DSINTERVAL\n是\n\n\n\nTO_YMINTERVAL\n是\n\n\n\nRAWTOHEX\n是\n\n\n\nUNISTR\n是\n\n\n\nRAWTOHEX(CHR(34))\n是\n\n\n\nTO_TIMESTAMP\n是\n\n\n\nLOCALTIMESTAMP\n是\n\n\n\nCURRENT_TIMESTAMP\n是\n\n\n\nSYSTIMESTAMP\n是\n\n\n\n\nDDL支持\n\n\n\nSQL类型\nOption\nOracle SQL\n转化后MySQL SQL\n语法支持\n\n\n\n\nCREATE TABLE\n不带约束\nCREATE TABLE \"test\".\"CaseInsensitive\" (\"firstName\" VARCHAR(15) NOT NULL,lastName VARCHAR2(45) NOT NULL)\nCREATE TABLE `test`.`CaseInsensitive` (`firstName` VARCHAR(15) NOT NULL,`LASTNAME` VARCHAR(45) NOT NULL) DEFAULT CHARACTER SET = UTF8MB4\n支持\n\n\nCREATE TABLE\n带约束\nCREATE TABLE TEST.employees_demo( employee_id NUMBER(6), last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn_demo NOT NULL, CONSTRAINT emp_id_uk_demo UNIQUE (employee_id))\nCREATE TABLE `TEST`.`EMPLOYEES_DEMO` (`EMPLOYEE_ID` INT,`LAST_NAME` VARCHAR(25) NOT NULL,UNIQUE `EMP_ID_UK_DEMO`(`employee_id`)) DEFAULT CHARACTER SET = UTF8MB4\n不支持外键约束\n\n\nALTER TABLE\nAddColumnClase\nalter table TEST.ADDCOLUMN add (author_last_published date);\nALTER TABLE `TEST`.`ADDCOLUMN` ADD COLUMN (`AUTHOR_LAST_PUBLISHED` DATETIME)\n支持\n\n\nALTER TABLE\nModifyColumnClause\nALTER TABLE test.\"MODIFYCOLUMN\" MODIFY ( alter_new_name1 CHAR ( 13 )) MODIFY ( alter_name2 VARCHAR ( 66 ))\nALTER TABLE `TEST`.`MODIFYCOLUMN` MODIFY COLUMN `ALTER_NEW_NAME1` CHAR(13), MODIFY COLUMN `ALTER_NAME2` VARCHAR(66)\n支持\n\n\nALTER TABLE\nDropColumnClause\nalter table TEST.DROPCOLUMN1 drop column COL1\nALTER TABLE `TEST`.`DROPCOLUMN1` DROP COLUMN `TEST`.`DROPCOLUMN1`.`COL1\n支持\n\n\nALTER TABLE\nRenameColumnClase\nalter table TEST.RENAMECOLUMN RENAME COLUMN COL1 TO COLNEW1\nALTER TABLE `TEST`.`RENAMECOLUMN` RENAME COLUMN `TEST`.`RENAMECOLUMN`.`COL1` TO `TEST`.`RENAMECOLUMN`.`COLNEW1` \n当前仅支持8.0语法\n\n\nDROP TABLE\n\nDROP TABLE TEST.DROPTABLE\nDROP TABLE `TEST`.`DROPTABLE` \n\n\n\ncreate schema/create user\n\n\n\n实现为执行create table 前先执行create schema if not exists,保持库同步 #840\n\n\n\n下个版本支持功能\n\n[ ] 支持 索引同步\n[ ] 同步LOB_WRITE,LOB_TRIM, LOB_ERASE,SEL_LOB_LOCATOR 事件\n[ ] 支持PDB(多租户,oracle 12开始支持)\n[ ] DTLE Oracle extractor 通过 SQL driver 轮询读取的间隔目前写死的5秒,优化为动态数值\n[ ] DTLE Oracle extractor 通过 SQL driver 轮询的SCN区间目前写死的100000,优化为动态数值\n\n"},"4/4.0_installation.html":{"url":"4/4.0_installation.html","title":"4.0.安装步骤","keywords":"","body":"安装步骤\n\n从 dtle 3.x 版本开始,dtle更改了架构,作为nomad插件运行(而非此前的单一二进制文件),并需要运行 consul 以储存任务元数据。\ndtle docker image 已包含nomad。consul可使用其官方image。\n标准rpm安装包已集成 consul 和 nomad 及启动脚本和参考配置。\n\n基于容器使用\ndocker pull consul:latest\ndocker pull actiontech/dtle:latest\n使用方法参见 快速开始 一节\n容器的版本列表参看docker hub\n基于rpm包的安装\n从此处下载dtle的 rpm 安装包, 并执行以下命令可安装dtle\nrpm -ivh --prefix /opt/dtle dtle-.rpm\n配置文件位于\n\n/opt/dtle/etc/dtle/\n\n服务启动命令: \nsystemctl start dtle-consul dtle-nomad\nsystemctl enable dtle-consul dtle-nomad # 开机自动启动\n日志文件位于 /opt/dtle/var/log/nomad/\n"},"4/4.1_node_configuration.html":{"url":"4/4.1_node_configuration.html","title":"4.1.节点配置","keywords":"","body":"节点配置\n安装包默认将参考配置装在了如下位置(安装时未设置--prefix的情况)\n\n/etc/consul\n/etc/nomad\n\n使用多节点部署时,请注意更改 node_name、data_dir、各类地址和端口, 避免冲突。\n默认的启动脚本(systemd)使用单节点配置。\n\nconsul 全部配置 https://www.consul.io/docs/agent/options.html#configuration_files\nnomad(本体)全部配置 https://www.nomadproject.io/docs/configuration/\n\nnomad 分为 server 和 client。一个nomad进程可以同时作为server和client,也可以只担任一个角色。\ndtle 插件运行在 nomad client 中。\nnomad 中 dtle 插件的配置\n参考样例配置中这一段\nplugin \"dtle\" {\n config {\n ...\n }\n}\n\n\n\n配置项\n类型\n默认值\n强制要求\n说明\n\n\n\n\nlog_level\nstring\n\"INFO\"\n否\n日志级别(由于dtle plugin无法获取nomad日志级别,此处需额外设置)\n\n\nlog_file\nstring\n\"/var/log/dtle/dtle.log\"\n否\n从4.22.09.0开始, dtle单独生成日志,不再和nomad合并。每512MB进行rotate和压缩,生成文件形如dtle-2022-11-04T06-46-39.502.log.gz\n\n\nbig_tx_max_jobs\nint\n取决于启动时的可用内存\n否\n允许同时处理大事务的job数量。默认值:启动时可用内存/2G。该值至少为1。如有6G可用内存,则该值默认为3\n\n\nnats_bind\nstring\n\"0.0.0.0:8193\"\n否\nNats (dtle使用的传输协议) 地址\n\n\nnats_advertise\nstring\n127.0.0.1:8193\n否\nNats Advertise 地址, 其他节点使用此地址连接本节点。跨公网传输需要设成上层路由器地址并设置网络穿透\n\n\napi_addr\nstring\n\"\" (参考配置中开启)\n否\n兼容层地址,可以在此地址使用dtle 2.x的HTTP API。参考值:\"0.0.0.0:8190\"。为空则关闭兼容层。\n\n\nnomad_addr\nstring\n\"127.0.0.1:4646\"\n否\nnomad 地址. 由于nomad插件API限制, dtle 无法自动获取该地址, 需要用户手动重复填写一遍.\n\n\nconsul\nstring\n\"127.0.0.1:8500\"\n否\nconsul的地址, 同nomad本体配置中的. 应填写和最近nomad server关联的consul地址. dtle插件需要consul以储存任务信息\n\n\ndata_dir\nstring\n\"/var/lib/nomad\"\n否\n数据目录。目前用于存放binlog(job配置中BinlogRelay=true时)\n\n\nstats_collection_interval\nint\n15\n否\n收集监控项的周期(秒)\n\n\npublish_metrics\nbool\nfalse\n否\n是否输出监控项\n\n\nrsa_private_key_path\nstring\n\"\"\n否\n指定rsa私钥文件的绝对路径,目前只在HTTP api中用于对mysql密码解码。(具体用法见dtle 3.x HTTP API 说明)\n\n\ncert_file_path\nstring\n\"\"\n否\n指定证书文件的绝对路径\n\n\nkey_file_path\nstring\n\"\"\n否\n指定私钥文件的绝对路径\n\n\n\n关于 (Bind) Address 和 Advertise Address\n\nbind address为,需要是本地网卡配置的地址\nadvertise addr为对外告知连接用的地址\n对于跨网段的nomad集群,需要配置上层路由地址并在各级路由配置NAT(端口映射)\n\n\n\n修改日志级别\n从4.22.09.0开始,动态修改日志级别直接调用API即可生效(不需要事先修改配置文件或重启dtle)。\ncurl -XPOST http://127.0.0.1:8190/v2/log/level -d \"dtle_log_level=INFO\"\n\n注:dtle后续重启时,仍然使用配置文件中的日志级别。\n"},"4/4.2_command.html":{"url":"4/4.2_command.html","title":"4.2.命令说明","keywords":"","body":"命令说明\ndtle二进制文件仅作为nomad插件使用。各项功能通过nomad二进制执行。\n启动nomad节点\nnomad agent -config=/path/to/nomad.hcl\n集群相关\n# 查看管理(server)节点\nnomad server members\nnomad server members -address=http://127.0.0.1:4646\n\n# 查看执行(client)节点,即运行dtle插件的节点\nnomad node status\nnomad node status -address=http://127.0.0.1:4646\n\n# 查看某个节点的状态\nnomad node status \n此时nomad命令作为HTTP客户端连接nomad agent, 如果agent不在默认地址,则需要指定 -address=..., 下同。\njob相关\n# 增加\nnomad job run job.hcl\nnomad job run -address=\"http://127.0.0.1:4646\" job.hcl\n\n# 删除\nnomad job stop -purge \n\n# 查看所有\nnomad job status\n\n# 查看某个\nnomad job status \nnomad job status -address=http://127.0.0.1:4646 \n查看版本\n查看nomad本体版本\nnomad version\n查看某一节点的dtle插件版本\nnomad node status -verbose | grep dtle\n输出\ndtle true true Healthy 2020-10-09T14:05:00+08:00\ndriver.dtle = 1\ndriver.dtle.full_version = 9.9.9.9-binlog-provider-7d5a0766\ndriver.dtle.version = 9.9.9.9\n"},"4/4.3_job_configuration.html":{"url":"4/4.3_job_configuration.html","title":"4.3.作业(job)配置","keywords":"","body":"\n作业(job)配置\n作业配置一般采用 json (HTTP API 提交)或 hcl (nomad 命令行工具提交)文件。样例配置在 /usr/share/dtle/scripts/ 中。\nnomad job 的完整配置参考 https://www.nomadproject.io/docs/job-specification/\nnomad job 有group/task层级,一个group中的tasks会被放在同一个节点执行。dtle要求src和dest task分别放在src 和 dest group. \ntask 中指定 driver = \"dtle\", 在config段落中填写dtle专有配置。\n从4.22.11.0开始,dtle配置发生变化\n\n所有常规配置填在源端任务(src task)\n原两端的ConnectionConfig的分别重命名为SrcConnectionConfig和DestConnectionConfig\n\n\n目标端固定填写一个配置项 DestType\n\n group \"dest\" {\n task \"dest\" {\n driver = \"dtle\"\n config {\n DestType = \"mysql\" # 或\"kafka\"\n }\n }\n }\n从3.x ~ 4.22.07.x升级到4.22.11后, 可使用 /usr/share/dtle/scripts/dtle-7to11.py更新现有job配置格式.\n./dtle-7to11.py 'http://127.0.0.1:4646'\n\ndtle 源端任务有如下配置项:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nGtid\n否\nString\n默认为 全量+增量 任务\nMySQL的GTID集合(区间), 可取值: 1. 默认为空, 则为 复制任务 2. 已复制的GTID集合(不是点位), 将从未复制的GTID开始增量复制\n\n\nGtidStart\n否\nString\n\n增量复制开始的 GTID 点位. (将自动求差集获取上述 GTID 集合.) 需要保持 Gtid 为空\n\n\nAutoGtid\n否\nBool\nfalse\n设为 true 后自动从当前 GTID 开始增量任务. 需要保持 Gtid 和 GtidStart 为空.\n\n\nBinlogRelay\n否\nBool\nfalse\n是否使用Binlog Relay(中继)机制. 即先将源端mysql binlog读到本地, 避免源端清除binlog导致任务失败. 注意: 如果使用带有BinlogRelay的纯增量复制, 必须用Gtid指定复制起点,不能使用BinlogFile/Pos。\n\n\nBinlogFile\n否\nString\n\n增量任务开始的Binlog文件(即源端mysql上 show master status 的结果).\n\n\nBinlogPos\n否\nInt\n0\n增量任务开始的Binlog位置, 和BinlogFile配套使用.\n\n\nReplicateDoDb\n否\nObject数组\n-\n如为空[], 则复制整个数据库实例. 可填写多元素. 元素内容见下方说明\n\n\nReplicateIgnoreDb\n否\nObject数组\n-\n指定要忽略的库表,优先级高于ReplicateDoDb。如为空[], 则完全执行ReplicateDoDb配置. 可填写多元素. 元素内容见下方说明\n\n\nSrcConnectionConfig\n否\nObject\n-\nMySQL源端信息, 见下方 ConnectionConfig 说明。和 OracleConfig 二选一填写。\n\n\nDestConnectionConfig\n否\nObject\n-\nMySQL目标端信息, 见下方 ConnectionConfig 说明。和 KafkaConfig 二选一填写。\n\n\nSrcOracleConfig\n否\nObject\n-\nOracle源端信息, 见下方 OracleConfig 说明。和 SrcConnectionConfig 二选一填写。\n\n\nKafkaConfig\n否\nObject\n-\nKafka目标端信息, 见下方 KafkaConfig 说明。和 DestConnectionConfig 二选一填写。\n\n\nDropTableIfExists\n否\nBool\nfalse\n全量复制时, 在目标端删除参与复制的表, 之后由dtle自动创建表结构 (相关参数: SkipCreateDbTable). 如果开启此选项, 目标端数据库用户需要有相应表的DROP权限.\n\n\nSkipCreateDbTable\n否\nBool\nfalse\n不为目标库创建复制库和复制表. 如果关闭此选项, 目标端数据库用户需要有相应表的CREATE权限.\n\n\nParallelWorkers\n否\nInt\n1\n回放端的并发数. 当值大于1时, 目标端会进行并行回放\n\n\nUseMySQLDependency\n否\nBool\ntrue\n默认使用MySQL的并行回放事务依赖关系检测。如果不能开启源端MySQL的WRITESET追踪,可将此设为false,使用dtle的依赖检测。\n\n\nDependencyHistorySize\n否\nInt\n2500\n使用dtle并行复制计算事务依赖时,保存的行数。增大可以潜在地增加并行度,但会更消耗内存。\n\n\nForeignKeyChecks\n否\nBool\ntrue\n3.21.10.0+. 默认开启目标端MySQL连接上的 @@foreign_key_checks\n\n\nReplChanBufferSize\n否\nInt\n32\n复制任务缓存的大小, 单位为事务组数。事务组大小和GroupMaxSize/GroupTimeout有关。\n\n\nChunkSize\n否\nInt\n2000\n全量复制时, 每次读取-传输-写入的行数\n\n\nDumpEntryLimit\n否\nInt\n67108864 (64M)\n复制时, 读取后分块发送的分块大小。空闲内存较小时需适当调小。适用于大全量/增量大事务\n\n\nExpandSyntaxSupport\n否\nBool\nfalse\n支持复制 用户权限/存储过程DDL/函数DDL\n\n\nGroupMaxSize\n否\nInt\n1\n源端发送数据时, 等待数据包达到一定大小(GroupMaxSize字节)后发送该包. 单位为字节. 默认值1表示即刻发送数据\n\n\nGroupTimeout\n否\nInt\n100\n源端发送数据时, 等待数据包达到超时时间(GroupTimeout毫秒)发送该包. 单位为毫秒.\n\n\nSqlFilter\n否\nString数组\n[]\n是否跳过一些事件, 如 [\"NoDMLDelete\", \"NoDDLDropSchema\", \"NoDDLDropTable\", \"NoDDLDropIndex\", \"NoDDLTruncate\"]。详见下文。\n\n\nSlaveNetWriteTimeout\n否\nInt\n28800 (8小时)\n调整MySQL slave线程的超时时间。MySQL默认值为60,太短可能导致断连。太长则会导致异常连接回收不及时。\n\n\nBulkInsert1\n否\nInt\n4\n批量插入第一级数量。见性能调优\n\n\nBulkInsert2\n否\nInt\n8\n批量插入第二级数量。\n\n\nBulkInsert3\n否\nInt\n128\n批量插入第三级数量。\n\n\nSetGtidNext\n否\nBool\nfalse\n目标端执行事务前执行set gtid_next = ..., 使源端目标端MySQL事务gtid相同。可用以避免循环复制。需要 REPLICATION_APPLIER (MySQL 8.0)或 SUPER 权限\n\n\nTwoWaySync\n否\nBool\nfalse\n开启双向任务。\n\n\nTwoWaySyncGtid\n否\nString\n\"\"\n反向任务使用的Gtid。当值为\"auto\"时,从当前 GTID 开始增量。\n\n\nRetryTxLimit\n否\nInt\n3\n当执行发生某些错误时(如:deadlock),重试事务的次数\n\n\n\nReplicateDoDb 每个元素有如下字段:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nTableSchema\n否\nString\n-\n数据库名\n\n\nTableSchemaRegex\n否\nString\n-\n数据库映射正则表达式,可用于多个数据库重命名\n\n\nTableSchemaRename\n否\nString\n-\n重命名后的数据库名称,当进行多数据库重命名时,支持正则表达式,使用见demo\n\n\nTables\n否\nObject数组\n-\n可配置多张表, 类型为Table. 若不配置, 则复制指定数据库中的所有表\n\n\nTable.TableName\n否\nString\n-\n表名\n\n\nTable.Where\n否\nString\n-\n只复制满足该条件的数据行. 语法为SQL表达式, 返回值应为布尔值. 可以引用表中的列名.\n\n\nTable.TableRegex\n否\nString\n-\n表名映射匹配正则表达式,用于多个表同时重命名.\n\n\nTable.TableRename\n否\nString\n-\n重命名后的表名,当进行多表重命名时,支持支持正则表达,见demo\n\n\nTable.ColumnMapFrom\n否\nString数组\n-\n列映射(暂不支持正则表达式)。见demo\n\n\nTable.ColumnMapTo\n否\nString数组\n-\n列映射(暂不支持正则表达式)。见demo\n\n\n\n注:hcl格式中${SOME_TEXT}会被认为是变量引用。正则替换中输入此类文字时,则需使用双$符号:$${SOME_TEXT}。\nReplicateIgnoreDb 每个元素有如下字段:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nTableSchema\n是\nString\n-\n数据库名\n\n\nTables\n否\nObject数组\n-\n可配置多张表, 类型为Table. 若不配置, 则忽略指定数据库中的所有表\n\n\nTable.TableName\n否\nString\n-\n表名\n\n\n\nConnectionConfig 有如下字段:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nHost\n是\nString\n-\n数据源地址\n\n\nPort\n是\nString\n-\n数据源端口\n\n\nUser\n是\nString\n-\n数据源用户名\n\n\nPassword\n是\nString\n-\n数据源密码\n\n\nCharset\n否\nString\nutf8mb4\n数据源的字符集\n\n\n\nKafkaConfig 有如下字段:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nTopic\n是\nString\n-\nKafka Topic\n\n\nSchemaChangeTopic\n否\nString\n\"schema-changes.Topic\"\nSchema change (DDL) 消息使用的topic\n\n\nTopicWithSchemaTable\n否\nBool\ntrue\n默认最终topic为 指定的Topic.库名.表名, 如果不需要追加库表名,请设为false\n\n\nBrokers\n是\nString数组\n-\nKafka Brokers, 如 [\"127.0.0.1:9192\", \"...\"]\n\n\nConverter\n否\nString\njson\nKafka Converter。目前仅支持json\n\n\nMessageGroupMaxSize\n否\nint\n1\n目标端向kafka发送消息时, 等待MySQL事务数据包达到一定大小(MessageGroupMaxSize字节)后将该包序列化并发送. 单位为字节. 默认值1表示即刻发送数据\n\n\nMessageGroupTimeout\n否\nint\n100\n目标端向kafka发送消息时, 等待数据包达到超时时间(MessageGroupTimeout毫秒)发送该包. 单位为毫秒.\n\n\nUser\n否\nString\n-\nKafka SASL.User\n\n\nPassword\n否\nString\n-\nKafka SASL.Password\n\n\n\nOracleConfig 有如下字段:\n\n\n\n参数名\n必填?\n类型\n默认值\n说明\n\n\n\n\nHost\n是\nString\n-\n数据源地址\n\n\nPort\n是\nString\n-\n数据源端口\n\n\nUser\n是\nString\n-\n数据源用户名\n\n\nPassword\n是\nString\n-\n数据源密码\n\n\nServiceName\n否\nString\nXE\n数据源服务名\n\n\nScn\n否\nint\n0\n同步起点\n\n\n\nSqlFilter注意事项\n全部的filter:\n\nNoDML\nNoDMLInsert, NoDMLDelete, NoDMLUpdate\nNoDDL\nNoDDLCreateSchema, NoDDLCreateTable\nNoDDLDropSchema, NoDDLDropTable, NoDDLDropIndex, NoDDLTruncate\nNoDDLAlterTable\nNoDDLAlterTableAddColumn, NoDDLAlterTableDropColumn\nNoDDLAlterTableModifyColumn, NoDDLAlterTableChangeColumn, NoDDLAlterTableAlterColumn\n\nSqlFilter只能简单过滤相关语句。不会自动转换后续语句。例如\n-- SqlFilter = [\"NoDDLDropTable\"]\n\n/** 源端 **/\n-- 已有 table a.a (id int primary key)\ndrop table a.a;\ncreate table a.a (id int primary key, val int);\ninsert into a.a values (1, 11);\n\n/** 目标端 **/\n-- 已有 table a.a (id int primary key)\n-- drop table 语句被过滤\ncreate table a.a (id int primary key, val int);\n-- 执行错误,目标表已存在\ninsert into a.a values (1, 11);\n-- 执行错误,列数目不对\n\n用户需自行确保在发生过滤的情况下,后续DML/DDL能正确执行。\nnomad job 常用通用配置\nconstraint\njob、group 或 task 级配置。配置后该job/group/task会绑定在指定的节点上执行\nconstraint {\n attribute = \"${node.unique.name}\"\n value = \"nomad3\"\n}\n完整参考\n\nhttps://www.nomadproject.io/docs/job-specification/constraint\nhttps://www.nomadproject.io/docs/runtime/interpolation#interpreted_node_vars\n\nresources\ntask级配置,src/dest task需各自重复。默认值为 cpu=100,memory=300。\n以默认值建立大量轻量级任务,会导致资源不够而pending,可适当调小。\n任务的内存消耗和每行大小、事物大小、队列长度有关。注意真实资源消耗,避免OOM。\ntask \"src\" {\n resources {\n cpu = 100 # MHz\n memory = 300 # MB\n }\n}\nrestart & reschedule\nnomad job 默认有如下 restart 和 reschedule 配置\nrestart { # group or task level\n interval = \"30m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\" # \"fail\" or \"delay\"\n # \"delay\" 意味着interval过后继续尝试\n # \"fail\" 则不再尝试\n}\nreschedule { # job or group level\n delay = \"30s\"\n delay_function = \"exponential\"\n max_delay = \"1h\"\n unlimited = true\n}\n\n当task报错时,会根据restart配置,30分钟内在同一节点上重启最多两次\n即使失败的job被stop -purge再重新添加,也需要根据restart参数重启 \n\n\n2次重启均失败后,会根据reschedule配置,在其他节点上执行\n\n为了避免无限reschedule带来的问题,dtle安装包提供的样例job配置中(/usr/share/dtle/scripts/example.job.*),限制reschedule为每半小时1次:\nreschedule {\n attempts = 1\n interval = \"30m\"\n unlimited = false\n}\n# 或json格式\n\"Reschedule\": {\n \"Attempts\": 1,\n \"Interval\": 1800000000000,\n \"Unlimited\": false\n}\n"},"4/4.3.1_tuning.html":{"url":"4/4.3.1_tuning.html","title":"4.3.1.性能调优","keywords":"","body":"性能调优\n部分参数可能影响复制性能。\nnomad constraint\n限制 task 在某个nomad client节点上执行。当源端目标端MySQL之间网络延迟很大时,应在各个主机/机房设立nomad client,并限制 task 在本地节点上执行,以充分利用dtle的压缩传输。\nReplChanBufferSize\n默认60,增量事物队列数量。增大可以降低可能的空等,但同时会占用更多内存。\nChunkSize\n默认2000。全量复制时每次选取的行数。增大可以增加吞吐量,但同时会占用更多内存。\nGroupMaxSize & GroupTimeout\nGroupMaxSize默认值1,即每个事物立刻发送。增大后将等待数据量达到设定值再打包发送多个事务。\n可增加传输时压缩率,适合低带宽网络。\n设定GroupTimeout可避免数据量不足时等待过久。默认值100(毫秒)。一般设成略小于 ping RTT 的时间值。\n增量的并行回放(MTS)相关\n推荐使用MySQL 5.7.22+ 和 MySQL 8.0 GA 后引入的 WriteSet MTS。在源端MySQL设置\nset global transaction_write_set_extraction = XXHASH64;\nset global binlog_transaction_dependency_tracking = WRITESET;\n-- will take effect for new session\n\n此后MySQL生成的binlog中将附带TX依赖信息,dtle回放时可以利用依赖信息进行调度。\n在dtle dest task config中设置ParallelWorkers,控制增量并行回放线程数。参考值为8~64。\n如果因版本和权限问题,不能在源端MySQL上设置WriteSet Tracking,则可以使用dtle的依赖计算功能(UseMySQLDependency = false)。\n批量插入(bulk insert)\n当源端使用批量插入,即 insert into ... values (),(), ..., () 时,dtle会在目标端使用批量插入。\ndtle会使用两个固定数量(行数)的批量插入PreparedStatement,默认为4和8。超过8的会被分到下一批。小于4的会单独插入。\n可用BulkInsert1和BulkInsert2调整批量插入使用的数量。\n"},"4/4.3.2_job_sample.html":{"url":"4/4.3.2_job_sample.html","title":"4.3.2.Job示例","keywords":"","body":"Job 示例\n复制整个实例的所有数据库\njob.hcl 中ReplicateDoDb配置:\n ReplicateDoDb = []\n复制指定数据库\n ReplicateDoDb = [{\n TableSchema = \"action_db_1\"\n }]\n复制一个库中的多个表\njob.hcl 中ReplicateDoDb配置:\n ReplicateDoDb = [{\n TableSchema = \"action_db_1\"\n Tables = [{\n TableName = \"sbtest1\"\n }, {\n TableName = \"sbtest2\"\n }, {\n TableName = \"sbtest3\"\n }]\n }]\n复制多个库中的多个表\njob.hcl 中ReplicateDoDb配置:\n ReplicateDoDb = [{\n TableSchema = \"action_db_1\"\n Tables = [{\n TableName = \"sbtest1\"\n }, {\n TableName = \"sbtest2\"\n }, {\n TableName = \"sbtest3\"\n }]\n }, {\n TableSchema = \"action_db_2\"\n Tables = [{\n TableName = \"sbtest1\"\n }, {\n TableName = \"sbtest2\"\n }, {\n TableName = \"sbtest3\"\n }]\n }]\n带where条件复制任务\n参考2.2.MySQL 的数据分散\n使用正则挑选复制库表\n参考3.8.dtle mapping 支持\n忽略指定的库\njob.hcl通过以下配置忽略表db1及db1内所有的表\n ReplicateDoDb = []\n ReplicateIgnoreDb = [{\n TableSchema = \"db1\"\n }]\njob.hcl通过以下配置在ReplicateDoDb指定的范围内忽略表db1和db1下的所有表,最终效果是没有要复制的库表\n ReplicateDoDb = [{\n TableSchema = \"db1\"\n Tables = [{\n TableName = \"tb1\"\n }]\n }]\n ReplicateIgnoreDb = [{\n TableSchema = \"db1\"\n }]\n忽略指定的表\njob.hcl通过以下配置在ReplicateDoDb指定的范围内忽略db1.tb1,最终复制库db1下除了tb1以外的表\n ReplicateDoDb = [{\n TableSchema = \"db1\"\n }]\n ReplicateIgnoreDb = [{\n TableSchema = \"db1\"\n Tables = [{\n TableName = \"tb1\"\n }]\n }]\njob.hcl通过以下配置在ReplicateDoDb指定的范围内忽略db1.tb1,最终只复制库db1结构,但不复制db1下的任何表\n ReplicateDoDb = [{\n TableSchema = \"db1\"\n Tables = [{\n TableName = \"tb1\"\n }]\n }]\n ReplicateIgnoreDb = [{\n TableSchema = \"db1\"\n Tables = [{\n TableName = \"tb1\"\n }]\n }]\n限定故障转移域\n源端任务和目标端任务在指定datacenter上故障转移dtle配置文件:\nname = \"dtle-1\" # rename for each node\ndatacenter = \"shanghai\"\n...\njob示例:\njob \"test_constraint\" {\n # 此处表示该job可以运行在datacenter为\"shanghai\"和\"beijing\"的节点上\n datacenters = [\"shanghai\", \"beijing\"]\n\n group \"Src\" {\n constraint {\n attribute = \"${node.datacenter}\"\n operator = \"=\"\n value = \"shanghai\"\n }\n task \"src\" {\n driver = \"dtle\"\n config {\n ReplicateDoDb = [{\n TableSchema = \"test\"\n }]\n ConnectionConfig = {\n ...\n }\n }\n }\n }\n group \"Dest\" {\n constraint {\n attribute = \"${node.datacenter}\"\n operator = \"=\"\n value = \"beijing\"\n }\n task \"dest\" {\n driver = \"dtle\"\n config {\n ConnectionConfig = {\n ...\n }\n }\n }\n }\n}\n"},"4/4.4_http_api.html":{"url":"4/4.4_http_api.html","title":"4.4.HTTP API说明","keywords":"","body":"HTTP API 说明\n(适用dtle 3.x nomad 插件)\nnomad 默认开启一个web服务,可使用curl工具向其发送HTTP请求。\n作业管理\n完整可参考\n\nhttps://www.nomadproject.io/api-docs/jobs\nhttps://www.nomadproject.io/api-docs/allocations\n\n常用如下:\n前置知识:nomad 中 job、task、alloc的概念\njob包含多个task。一个dtle job有src和dest两个task。\ntask在nomad节点上的执行,称为allocation。同一个task的多次执行(如失败-重试)会创建多个allocation。\n列出所有job\ncurl -XGET 127.0.0.1:4646/v1/jobs | jq\n添加job\ncurl -XPOST -data @job.json 127.0.0.1:4646/v1/jobs | jq\njob.json的内容说明参看 作业(job)配置\n获取某个job信息\ncurl -XGET 127.0.0.1:4646/v1/job/ | jq\n列出某job的所有allocation\ncurl -XGET \"127.0.0.1:4646/v1/job//allocations | jq\n查看某个allocation的执行状态\ncurl -XGET \"127.0.0.1:4646/v1/allocation/\" | jq\n区别任务处于全量还是增量状态\ncurl -XGET \"127.0.0.1:4646/v1/job//allocations\" | jq '.' | grep job_stage\n \"DisplayMessage\": \"job_stage_full\",\n \"DriverMessage\": \"job_stage_full\",\n \"DisplayMessage\": \"job_stage_incr\",\n \"DriverMessage\": \"job_stage_incr\",\n\n当结果中 只 出现 job_stage_full 时,任务处于全量阶段\n当结果出现 job_stage_incr 时,任务处于增量阶段\n\n停止(删除)job\ncurl -XDELETE 127.0.0.1:4646/v1/job/my-job\n# DELETE后job信息仍会在nomad上保留一段时间供查询,直到nomad自动回收(gc)\n# 指定purge可立刻删除\ncurl -XDELETE 127.0.0.1:4646/v1/job/my-job?purge=true\ndtle 3.x 移除了暂停/恢复job的功能. 可使用删除/添加job来达成相同的效果。\n\n注意保留添加job时使用的job配置文件\njob删除后进度(Gtid)仍然保存在consul kv中\n位置:dtle//Gtid\n再次添加job时,consul中保存的Gtid优先于job配置中的项目\n\n\n\n如果要后续添加同名job,并且不想从consul保存的位置继续(而是从job配置中指定的位置开始),则\n需要删除consul重的数据。见 consul 上的 job 数据管理。\n节点管理\n更多可参考\n\nhttps://www.nomadproject.io/api-docs/nodes\nhttps://www.nomadproject.io/api-docs/status\n\n列出所有节点:\ncurl -XGET \"127.0.0.1:4646/v1/nodes\" | jq\n[{\n \"Address\": \"127.0.0.1\",\n \"Datacenter\": \"dc1\",\n \"Drivers\": {\n \"dtle\": {\n \"Attributes\": {\n \"driver.dtle\": \"true\",\n \"driver.dtle.version\": \"9.9.9.9\",\n \"driver.dtle.full_version\": \"9.9.9.9-master-eeb399e9\"\n },\n \"Detected\": true,\n \"Healthy\": true,\n }\n },\n \"ID\": \"0e70636d-b274-c139-185e-e37dcf7a4bca\",\n \"Name\": \"nomad0\",\n \"Status\": \"ready\",\n \"Version\": \"0.11.2\"\n}]\n可以查看节点名、节点ID和dtle插件信息(部分项省略)。\n"},"4/4.4.1_dtle_http_api.html":{"url":"4/4.4.1_dtle_http_api.html","title":"4.4.1.dtle 3.x HTTP API说明","keywords":"","body":"dtle 3.x HTTP API 说明\ndtle 3.x 根据业务功能提供了一套HTTP API(开启方式见\"节点配置\",api_addr),可与dtle UI配套使用。 \n本节API示例默认使用swagger UI调用。\n通过swagger UI查看接口文档\n访问http://{dtle ip}:8190/swagger/index.html通过swagger UI查看接口文档,打开界面如下: \n\n通过swagger UI调用API\n除了使用curl命令外,还可以通过swagger UI界面调用API,具体步骤如下:\n1 点击\"Try it out\",进入调试模式\n\n2 填写请求参数后点击\"Execute\"调用API\n\n3 查看响应:\n\n4 由于用户校验功能限制,大多数接口调用需要在header中携带登录成功返回的token,在swagger页面可点击swagger页面顶部的Authorize按钮,将token填入Value的文本框中,swagger页面中其他接口即可正常使用\n\ndtle API Docs\nThis is a sample server for dev.\nVersion: 2.0\nSecurity\nApiKeyAuth \n\n\n\napiKey\nAPI Key\n\n\n\n\nIn\nheader\n\n\nName\nAuthorization\n\n\n\n/v2/database/columns\nGET\nDescription:\nlist columns of database source instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nhost\nquery\ndatabase host\nYes\nstring\n\n\nport\nquery\ndatabase port\nYes\ninteger\n\n\nuser\nquery\ndatabase user\nYes\nstring\n\n\npassword\nquery\ndatabase password\nYes\nstring\n\n\ndatabase_type\nquery\ndatabase_type\nYes\nstring\n\n\nservice_name\nquery\ndatabase service_name\nNo\nstring\n\n\nschema\nquery\ndatabase schema\nYes\nstring\n\n\ntable\nquery\ndatabase table\nYes\nstring\n\n\ncharacter_set\nquery\ndatabase character set\nNo\nstring\n\n\nis_password_encrypted\nquery\nindecate that database password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ListColumnsRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/database/instance_connection\nGET\nDescription:\nconnect to database instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nhost\nquery\ndatabase host\nYes\nstring\n\n\nport\nquery\ndatabase port\nYes\ninteger\n\n\nuser\nquery\ndatabase user\nYes\nstring\n\n\npassword\nquery\ndatabase password\nYes\nstring\n\n\ndatabase_type\nquery\ndatabase_type\nYes\nstring\n\n\nservice_name\nquery\ndatabase service_name\nNo\nstring\n\n\nis_password_encrypted\nquery\nindecate that database password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ConnectionRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/database/schemas\nGET\nDescription:\nlist schemas of database source instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\ndatabase_type\nquery\ndatabase_type\nYes\nstring\n\n\nhost\nquery\ndatabase host\nYes\nstring\n\n\nport\nquery\ndatabase port\nYes\ninteger\n\n\nuser\nquery\ndatabase user\nYes\nstring\n\n\npassword\nquery\ndatabase password\nYes\nstring\n\n\nservice_name\nquery\ndatabase service_name\nNo\nstring\n\n\ncharacter_set\nquery\ndatabase character set\nNo\nstring\n\n\nis_password_encrypted\nquery\nindecate that database password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ListSchemasRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/gtid\nGET\nDescription:\nget src task current gtid.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nquery\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.JobGtidResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/create\nPOST\nDescription:\ncreate migration job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nmigration_job_config\nbody\nmigration job config\nYes\nmodels.CreateOrUpdateMysqlToMysqlJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToMysqlJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/delete\nPOST\nDescription:\ndelete migration job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.DeleteJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/detail\nGET\nDescription:\nget migration job detail.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nquery\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.MysqlToMysqlJobDetailRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/pause\nPOST\nDescription:\npause migration job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.PauseJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/resume\nPOST\nDescription:\nresume migration job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ResumeJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/reverse\nPOST\nDescription:\nreverse migration Job\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nreverse_config\nbody\nreverse config config\nYes\nmodels.ReverseJobReq\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ReverseJobResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/reverse_start\nPOST\nSummary:\nstart reverse-init job\nDescription:\nStart Reverse Job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ReverseStartRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/migration/update\nPOST\nDescription:\nupdate migration job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nmigration_job_config\nbody\nmigration job config\nYes\nmodels.CreateOrUpdateMysqlToMysqlJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToMysqlJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/reverse_start\nPOST\nSummary:\nstart reverse-init job\nDescription:\nFinish Job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ReverseStartRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/create\nPOST\nDescription:\ncreate subscription job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nsubscription_job_config\nbody\nsubscription job config\nYes\nmodels.CreateOrUpdateMysqlToKafkaJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToKafkaJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/delete\nPOST\nDescription:\ndelete subscription job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.DeleteJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/detail\nGET\nDescription:\nget subscription job detail.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nquery\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.MysqlToKafkaJobDetailRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/pause\nPOST\nDescription:\npause subscription job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.PauseJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/resume\nPOST\nDescription:\nresume subscription job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ResumeJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/subscription/update\nPOST\nDescription:\nupdate subscription job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nsubscription_job_config\nbody\nsubscription job config\nYes\nmodels.CreateOrUpdateMysqlToKafkaJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToKafkaJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/create\nPOST\nDescription:\ncreate sync job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nsync_job_config\nbody\nsync job config\nYes\nmodels.CreateOrUpdateMysqlToMysqlJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToMysqlJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/delete\nPOST\nDescription:\ndelete sync job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.DeleteJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/detail\nGET\nDescription:\nget sync job detail.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nquery\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.MysqlToMysqlJobDetailRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/pause\nPOST\nDescription:\npause sync job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.PauseJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/resume\nPOST\nDescription:\nresume sync job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ResumeJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/reverse\nPOST\nDescription:\nreverse sync Job\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nreverse_config\nbody\nreverse config config\nYes\nmodels.ReverseJobReq\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ReverseJobResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/reverse_start\nPOST\nSummary:\nstart reverse-init job\nDescription:\nStart Reverse Job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_id\nformData\njob id\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ReverseStartRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/job/sync/update\nPOST\nDescription:\nupdate sync job.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nsync_job_config\nbody\nsync job config\nYes\nmodels.CreateOrUpdateMysqlToMysqlJobParamV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateOrUpdateMysqlToMysqlJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/jobs/migration\nGET\nDescription:\nget job list.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nfilter_job_id\nquery\nfilter job id\nNo\nstring\n\n\nfilter_job_src_ip\nquery\nfilter job src ip\nNo\nstring\n\n\nfilter_job_src_port\nquery\nfilter job src port\nNo\nstring\n\n\nfilter_job_dest_ip\nquery\nfilter job dest ip\nNo\nstring\n\n\nfilter_job_dest_port\nquery\nfilter job dest port\nNo\nstring\n\n\nfilter_job_status\nquery\nfilter job status\nNo\nstring\n\n\norder_by\nquery\norder by\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.JobListRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/jobs/subscription\nGET\nDescription:\nget subscription job list.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nfilter_job_id\nquery\nfilter job id\nNo\nstring\n\n\nfilter_job_src_ip\nquery\nfilter job src ip\nNo\nstring\n\n\nfilter_job_src_port\nquery\nfilter job src port\nNo\nstring\n\n\nfilter_job_dest_ip\nquery\nfilter job dest ip\nNo\nstring\n\n\nfilter_job_dest_port\nquery\nfilter job dest port\nNo\nstring\n\n\nfilter_job_status\nquery\nfilter job status\nNo\nstring\n\n\norder_by\nquery\norder by\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.JobListRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/jobs/sync\nGET\nDescription:\nget sync job list.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nfilter_job_id\nquery\nfilter job id\nNo\nstring\n\n\nfilter_job_src_ip\nquery\nfilter job src ip\nNo\nstring\n\n\nfilter_job_src_port\nquery\nfilter job src port\nNo\nstring\n\n\nfilter_job_dest_ip\nquery\nfilter job dest ip\nNo\nstring\n\n\nfilter_job_dest_port\nquery\nfilter job dest port\nNo\nstring\n\n\nfilter_job_status\nquery\nfilter job status\nNo\nstring\n\n\norder_by\nquery\norder by\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.JobListRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/log/level\nPOST\nDescription:\nreload log level dynamically.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\ndtle_log_level\nformData\ndtle log level\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.UpdataLogLevelRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/login\nPOST\nSummary:\nuser loginV2\nDescription:\nuser login\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nuser\nbody\nuser login request\nYes\nmodels.UserLoginReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.GetUserLoginResV2\n\n\n\n/v2/login/captcha\nPOST\nSummary:\ncreate base64Captcha\nDescription:\ncreate base64Captcha\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\ncaptcha_type\nformData\ncaptcha type\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CaptchaRespV2\n\n\n\n/v2/loginWithoutVerifyCode\nPOST\nSummary:\nuser LoginWithoutVerifyCodeV2\nDescription:\nuser login Without Verify Code\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nuser\nbody\nuser login request\nYes\nmodels.LoginWithoutVerifyCodeReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.GetUserLoginResV2\n\n\n\n/v2/monitor/task\nGET\nDescription:\nget progress of tasks within an allocation.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nallocation_id\nquery\nallocation id\nYes\nstring\n\n\ntask_name\nquery\ntask name\nYes\nstring\n\n\nnomad_http_address\nquery\nnomad_http_address is the http address of the nomad that the target dtle is running with. ignore it if you are not sure what to provide\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.GetTaskProgressRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/mysql/columns\nGET\nDescription:\nlist columns of mysql source instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nmysql_host\nquery\nmysql host\nYes\nstring\n\n\nmysql_port\nquery\nmysql port\nYes\nstring\n\n\nmysql_user\nquery\nmysql user\nYes\nstring\n\n\nmysql_password\nquery\nmysql password\nYes\nstring\n\n\nmysql_schema\nquery\nmysql schema\nYes\nstring\n\n\nmysql_table\nquery\nmysql table\nYes\nstring\n\n\nmysql_character_set\nquery\nmysql character set\nNo\nstring\n\n\nis_mysql_password_encrypted\nquery\nindecate that mysql password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ListColumnsRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/mysql/instance_connection\nGET\nDescription:\nconnect to mysql instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nmysql_host\nquery\nmysql host\nYes\nstring\n\n\nmysql_port\nquery\nmysql port\nYes\nstring\n\n\nmysql_user\nquery\nmysql user\nYes\nstring\n\n\nmysql_password\nquery\nmysql password\nYes\nstring\n\n\nis_mysql_password_encrypted\nquery\nindecate that mysql password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ConnectionRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/mysql/schemas\nGET\nDescription:\nlist schemas of mysql source instance.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nmysql_host\nquery\nmysql host\nYes\nstring\n\n\nmysql_port\nquery\nmysql port\nYes\nstring\n\n\nmysql_user\nquery\nmysql user\nYes\nstring\n\n\nmysql_password\nquery\nmysql password\nYes\nstring\n\n\nmysql_character_set\nquery\nmysql character set\nNo\nstring\n\n\nis_mysql_password_encrypted\nquery\nindecate that mysql password is encrypted or not\nNo\nboolean\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ListSchemasRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/nodes\nGET\nDescription:\nget node list.\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.NodeListRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/role/create\nPOST\nDescription:\ncreate Role.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nRole\nbody\nRole info\nYes\nmodels.CreateRoleReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateRoleRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/role/delete\nPOST\nDescription:\ndelete Role.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\ntenant\nformData\ntenant\nYes\nstring\n\n\nname\nformData\nrole name\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.DeleteRoleRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/role/list\nGET\nDescription:\nget role list.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nfilter_tenant\nquery\nfilter tenant\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.RoleListResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/role/update\nPOST\nDescription:\nupdate Role info.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nRole\nbody\nRole info\nYes\nmodels.UpdateRoleReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.UpdateRoleRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/tenant/list\nGET\nDescription:\nget tenant list.\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.TenantListResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/create\nPOST\nDescription:\ncreate user.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nuser\nbody\nuser info\nYes\nmodels.CreateUserReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CreateUserRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/current_user\nGET\nDescription:\nget current user.\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.CurrentUserResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/delete\nPOST\nDescription:\ndelete user.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\ntenant\nformData\ntenant\nYes\nstring\n\n\nusername\nformData\nuser name\nYes\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.DeleteUserRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/list\nGET\nDescription:\nget user list.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nfilter_username\nquery\nfilter user name\nNo\nstring\n\n\nfilter_tenant\nquery\nfilter tenant\nNo\nstring\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.UserListResp\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/list_action\nGET\nDescription:\nlist user action.\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ListActionRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/reset_password\nPOST\nDescription:\nreset user password.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nuser\nbody\nreset user password\nYes\nmodels.ResetPasswordReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ResetPasswordRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/user/update\nPOST\nDescription:\nupdate user info.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\nuser\nbody\nuser info\nYes\nmodels.UpdateUserReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.UpdateUserRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\n/v2/validation/job\nPOST\nDescription:\nvalidate job config.\nParameters\n\n\n\nName\nLocated in\nDescription\nRequired\nSchema\n\n\n\n\njob_config\nbody\nvalidate job config\nYes\nmodels.ValidateJobReqV2\n\n\n\nResponses\n\n\n\nCode\nDescription\nSchema\n\n\n\n\n200\nOK\nmodels.ValidateJobRespV2\n\n\n\nSecurity\n\n\n\nSecurity Schema\nScopes\n\n\n\n\nApiKeyAuth\n\n\n\nModels\ncommon.JobListItemV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndst_addr_list\n[ string ]\n\nNo\n\n\ndst_database_type\nstring\n\nNo\n\n\njob_create_time\nstring\n\nNo\n\n\njob_id\nstring\n\nNo\n\n\njob_status\nstring\n\nNo\n\n\njob_steps\n[ common.JobStep ]\n\nNo\n\n\nsrc_addr_list\n[ string ]\n\nNo\n\n\nsrc_database_type\nstring\n\nNo\n\n\ntopic\nstring\n\nNo\n\n\nuser\nstring\n\nNo\n\n\n\ncommon.JobStep\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\njob_create_time\nstring\n\nNo\n\n\nstep_name\nstring\n\nNo\n\n\nstep_schedule\nnumber\n\nNo\n\n\nstep_status\nstring\n\nNo\n\n\n\ncommon.Role\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nauthority\nstring\n\nNo\n\n\nname\nstring\n\nNo\n\n\nobject_type\nstring\n\nNo\n\n\nobject_users\n[ string ]\n\nNo\n\n\ntenant\nstring\n\nNo\n\n\n\ncommon.User\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncreate_time\nstring\n\nNo\n\n\npassword\nstring\n\nNo\n\n\nremark\nstring\n\nNo\n\n\nrole\nstring\n\nNo\n\n\ntenant\nstring\n\nNo\n\n\nusername\nstring\n\nNo\n\n\n\nmodels.BasicTaskProfile\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nconfiguration\nmodels.Configuration\n\nNo\n\n\nconnection_info\nmodels.ConnectionInfo\n\nNo\n\n\ndtle_node_infos\n[ models.DtleNodeInfo ]\n\nNo\n\n\njob_base_info\nmodels.JobBaseInfo\n\nNo\n\n\nreplicate_do_db\n[ models.DataSourceConfig ]\n\nNo\n\n\nreplicate_ignore_db\n[ models.DataSourceConfig ]\n\nNo\n\n\n\nmodels.BinlogValidation\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nerror\nstring\nError is a string version of any error that may have occured\nNo\n\n\nvalidated\nboolean\n\nNo\n\n\n\nmodels.BufferStat\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\napplier_tx_queue_size\ninteger\n\nNo\n\n\nbinlog_event_queue_size\ninteger\n\nNo\n\n\nextractor_tx_queue_size\ninteger\n\nNo\n\n\nsend_by_size_full\ninteger\n\nNo\n\n\nsend_by_timeout\ninteger\n\nNo\n\n\n\nmodels.ButtonItem\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\naction\nstring\n\nNo\n\n\ntext_cn\nstring\n\nNo\n\n\ntext_en\nstring\n\nNo\n\n\nuri\nstring\n\nNo\n\n\n\nmodels.CaptchaRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndata_scheme\nstring\n\nNo\n\n\nid\nstring\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.Configuration\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndst_config\nmodels.DstConfig\n\nNo\n\n\nfail_over\nboolean\n\nNo\n\n\nretry_times\ninteger\n\nNo\n\n\nsrc_config\nmodels.SrcConfig\n\nNo\n\n\n\nmodels.ConnectionInfo\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndst_data_base\nmodels.DatabaseConnectionConfig\n\nNo\n\n\ndst_kafka\nmodels.KafkaDestTaskConfig\n\nNo\n\n\nsrc_data_base\nmodels.DatabaseConnectionConfig\n\nNo\n\n\n\nmodels.ConnectionRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ConnectionValidation\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nerror\nstring\nError is a string version of any error that may have occured\nNo\n\n\nvalidated\nboolean\n\nNo\n\n\n\nmodels.CreateOrUpdateMysqlToKafkaJobParamV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_task\nmodels.KafkaDestTaskConfig\n\nYes\n\n\nfailover\nboolean\nfailover default:true\nNo\n\n\nis_password_encrypted\nboolean\n\nNo\n\n\njob_id\nstring\n\nYes\n\n\nretry\ninteger\n\nNo\n\n\nsrc_task\nmodels.SrcTaskConfig\n\nYes\n\n\ntask_step_name\nstring\n\nNo\n\n\n\nmodels.CreateOrUpdateMysqlToKafkaJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_task\nmodels.KafkaDestTaskConfig\n\nYes\n\n\neval_create_index\ninteger\n\nNo\n\n\nfailover\nboolean\nfailover default:true\nNo\n\n\nis_password_encrypted\nboolean\n\nNo\n\n\njob_id\nstring\n\nYes\n\n\njob_modify_index\ninteger\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\nretry\ninteger\n\nNo\n\n\nsrc_task\nmodels.SrcTaskConfig\n\nYes\n\n\ntask_step_name\nstring\n\nNo\n\n\n\nmodels.CreateOrUpdateMysqlToMysqlJobParamV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_task\nmodels.DestTaskConfig\n\nYes\n\n\nfailover\nboolean\n\nNo\n\n\nis_password_encrypted\nboolean\n\nNo\n\n\njob_id\nstring\n\nYes\n\n\nretry\ninteger\n\nNo\n\n\nreverse\nboolean\n\nNo\n\n\nsrc_task\nmodels.SrcTaskConfig\n\nYes\n\n\ntask_step_name\nstring\n\nNo\n\n\n\nmodels.CreateOrUpdateMysqlToMysqlJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_task\nmodels.DestTaskConfig\n\nYes\n\n\neval_create_index\ninteger\n\nNo\n\n\nfailover\nboolean\n\nNo\n\n\nis_password_encrypted\nboolean\n\nNo\n\n\njob_id\nstring\n\nYes\n\n\njob_modify_index\ninteger\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\nretry\ninteger\n\nNo\n\n\nreverse\nboolean\n\nNo\n\n\nsrc_task\nmodels.SrcTaskConfig\n\nYes\n\n\ntask_step_name\nstring\n\nNo\n\n\n\nmodels.CreateRoleReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nauthority\nstring\n\nNo\n\n\nname\nstring\n\nNo\n\n\noperation_object_type\nstring\n\nNo\n\n\noperation_users\n[ string ]\n\nNo\n\n\ntenant\nstring\n\nNo\n\n\n\nmodels.CreateRoleRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.CreateUserReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\npass_word\nstring\n\nYes\n\n\nremark\nstring\n\nNo\n\n\nrole\nstring\n\nYes\n\n\ntenant\nstring\n\nYes\n\n\nusername\nstring\n\nYes\n\n\n\nmodels.CreateUserRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.CurrentCoordinates\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nfile\nstring\n\nNo\n\n\ngtid_set\nstring\n\nNo\n\n\nposition\ninteger\n\nNo\n\n\nread_master_log_pos\ninteger\n\nNo\n\n\nrelay_master_log_file\nstring\n\nNo\n\n\nretrieved_gtid_set\nstring\n\nNo\n\n\n\nmodels.CurrentUserResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncurrent_user\ncommon.User\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.DataSourceConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ntable_schema\nstring\n\nNo\n\n\ntable_schema_regex\nstring\n\nNo\n\n\ntable_schema_rename\nstring\n\nNo\n\n\ntables\n[ models.TableConfig ]\n\nNo\n\n\n\nmodels.DatabaseConnectionConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndatabase_type\nstring\n\nYes\n\n\nhost\nstring\n\nYes\n\n\npassword\nstring\n\nYes\n\n\nport\ninteger\n\nYes\n\n\nservice_name\nstring\n\nNo\n\n\nuser\nstring\n\nYes\n\n\n\nmodels.DelayCount\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nnum\ninteger\n\nNo\n\n\ntime\ninteger\n\nNo\n\n\n\nmodels.DeleteJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.DeleteRoleRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.DeleteUserRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.DestTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nconnection_config\nmodels.DatabaseConnectionConfig\n\nYes\n\n\ndatabase_type\nstring\n\nNo\n\n\nmysql_dest_task_config\nmodels.MysqlDestTaskConfig\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\ntask_name\nstring\n\nYes\n\n\n\nmodels.DstConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmysql_dest_task_config\nmodels.MysqlDestTaskConfig\n\nNo\n\n\n\nmodels.DtleNodeInfo\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndata_source\nstring\n\nNo\n\n\nnode_addr\nstring\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\nsource\nstring\n\nNo\n\n\n\nmodels.GetTaskProgressRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\ntasks_status\nmodels.TaskProgress\n\nNo\n\n\n\nmodels.GetUserLoginResV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndata\nmodels.UserLoginResV2\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.GtidModeValidation\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nerror\nstring\nError is a string version of any error that may have occured\nNo\n\n\nvalidated\nboolean\n\nNo\n\n\n\nmodels.JobBaseInfo\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndelay\ninteger\n\nNo\n\n\njob_create_time\nstring\n\nNo\n\n\njob_id\nstring\n\nNo\n\n\njob_status\nstring\n\nNo\n\n\njob_steps\n[ common.JobStep ]\n\nNo\n\n\nsubscription_topic\nstring\n\nNo\n\n\n\nmodels.JobGtidResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ngtid\nstring\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.JobListRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\njobs\n[ common.JobListItemV2 ]\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.KafkaDestTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nkafka_broker_addrs\n[ string ]\n\nYes\n\n\nkafka_topic\nstring\n\nYes\n\n\nmessage_group_max_size\ninteger\n\nNo\n\n\nmessage_group_timeout\ninteger\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\ntask_name\nstring\n\nYes\n\n\n\nmodels.ListActionRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nauthority\n[ models.MenuItem ]\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ListColumnsRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncolumns\n[ string ]\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ListSchemasRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\nschemas\n[ models.SchemaItem ]\n\nNo\n\n\n\nmodels.LoginWithoutVerifyCodeReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\npassword\nstring\n\nYes\n\n\ntenant\nstring\n\nYes\n\n\nusername\nstring\n\nYes\n\n\n\nmodels.MenuItem\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nadmin_only\nboolean\n\nNo\n\n\nid\ninteger\n\nNo\n\n\nmenu_level\ninteger\n\nNo\n\n\nmenu_url\nstring\n\nNo\n\n\nname\nstring\n\nNo\n\n\noperations\n[ models.ButtonItem ]\n\nNo\n\n\nparent_id\ninteger\n\nNo\n\n\ntext_cn\nstring\n\nNo\n\n\ntext_en\nstring\n\nNo\n\n\n\nmodels.MysqlDestTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndependency_history_size\ninteger\n\nNo\n\n\nparallel_workers\ninteger\n\nNo\n\n\nuse_my_sql_dependency\nboolean\n\nNo\n\n\n\nmodels.MysqlSrcTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nauto_gtid\nboolean\n\nNo\n\n\nbinlog_relay\nboolean\n\nNo\n\n\nexpand_syntax_support\nboolean\n\nNo\n\n\ngtid\nstring\n\nNo\n\n\nwait_on_job\nstring\n\nNo\n\n\n\nmodels.MysqlTaskValidationReport\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nbinlog_validation\nmodels.BinlogValidation\n\nNo\n\n\nconnection_validation\nmodels.ConnectionValidation\n\nNo\n\n\ngtid_mode_validation\nmodels.GtidModeValidation\n\nNo\n\n\nprivileges_validation\nmodels.PrivilegesValidation\n\nNo\n\n\nserver_id_validation\nmodels.ServerIDValidation\n\nNo\n\n\ntask_name\nstring\n\nNo\n\n\n\nmodels.MysqlToKafkaJobDetailRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nbasic_task_profile\nmodels.BasicTaskProfile\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\ntask_logs\n[ models.TaskLog ]\n\nNo\n\n\n\nmodels.MysqlToMysqlJobDetailRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nbasic_task_profile\nmodels.BasicTaskProfile\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\ntask_logs\n[ models.TaskLog ]\n\nNo\n\n\n\nmodels.NatsMessageStatistics\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nin_bytes\ninteger\n\nNo\n\n\nin_messages\ninteger\n\nNo\n\n\nout_bytes\ninteger\n\nNo\n\n\nout_messages\ninteger\n\nNo\n\n\nreconnects\ninteger\n\nNo\n\n\n\nmodels.NodeListItemV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndatacenter\nstring\n\nNo\n\n\ndtle_version\nstring\n\nNo\n\n\nleader\nboolean\n\nNo\n\n\nmember\nboolean\n\nNo\n\n\nnode_address\nstring\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\nnode_name\nstring\n\nNo\n\n\nnode_status\nstring\n\nNo\n\n\nnode_status_description\nstring\n\nNo\n\n\nnomad_version\nstring\n\nNo\n\n\n\nmodels.NodeListRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\nnodes\n[ models.NodeListItemV2 ]\n\nNo\n\n\n\nmodels.OracleSrcTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nscn\ninteger\n\nNo\n\n\n\nmodels.PauseJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.PrivilegesValidation\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nerror\nstring\nError is a string version of any error that may have occured\nNo\n\n\nvalidated\nboolean\n\nNo\n\n\n\nmodels.ResetPasswordReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncurrent_user_password\nstring\n\nYes\n\n\npassword\nstring\n\nYes\n\n\ntenant\nstring\n\nYes\n\n\nusername\nstring\n\nYes\n\n\n\nmodels.ResetPasswordRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ResumeJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ReverseConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_user\nstring\n\nNo\n\n\ndst_pwd\nstring\n\nNo\n\n\nis_mysql_password_encrypted\nboolean\n\nNo\n\n\nsrc_pwd\nstring\n\nNo\n\n\nsrc_user\nstring\n\nNo\n\n\n\nmodels.ReverseJobReq\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\njob_id\nstring\n\nYes\n\n\nreverse_config\nmodels.ReverseConfig\n\nNo\n\n\n\nmodels.ReverseJobResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.ReverseStartRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.RoleListResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\nrole_list\n[ common.Role ]\n\nNo\n\n\n\nmodels.SchemaItem\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nschema_name\nstring\n\nNo\n\n\ntables\n[ models.TableItem ]\n\nNo\n\n\n\nmodels.ServerIDValidation\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nerror\nstring\nError is a string version of any error that may have occured\nNo\n\n\nvalidated\nboolean\n\nNo\n\n\n\nmodels.SrcConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nchunk_size\ninteger\n\nNo\n\n\ndrop_table_if_exists\nboolean\n\nNo\n\n\ngroup_max_size\ninteger\n\nNo\n\n\ngroup_timeout\ninteger\n\nNo\n\n\nmysql_src_task_config\nmodels.MysqlSrcTaskConfig\n\nNo\n\n\noracle_src_task_config\nmodels.OracleSrcTaskConfig\n\nNo\n\n\nrepl_chan_buffer_size\ninteger\n\nNo\n\n\nskip_create_db_table\nboolean\n\nNo\n\n\n\nmodels.SrcTaskConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nchunk_size\ninteger\n\nNo\n\n\nconnection_config\nmodels.DatabaseConnectionConfig\n\nYes\n\n\ndrop_table_if_exists\nboolean\n\nNo\n\n\ngroup_max_size\ninteger\n\nNo\n\n\ngroup_timeout\ninteger\n\nNo\n\n\nmysql_src_task_config\nmodels.MysqlSrcTaskConfig\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\noracle_src_task_config\nmodels.OracleSrcTaskConfig\n\nNo\n\n\nrepl_chan_buffer_size\ninteger\n\nNo\n\n\nreplicate_do_db\n[ models.DataSourceConfig ]\n\nNo\n\n\nreplicate_ignore_db\n[ models.DataSourceConfig ]\n\nNo\n\n\nskip_create_db_table\nboolean\n\nNo\n\n\ntask_name\nstring\n\nYes\n\n\n\nmodels.TableConfig\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncolumn_map_from\n[ string ]\n\nNo\n\n\ntable_name\nstring\n\nNo\n\n\ntable_regex\nstring\n\nNo\n\n\ntable_rename\nstring\n\nNo\n\n\nwhere\nstring\n\nNo\n\n\n\nmodels.TableItem\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ntable_name\nstring\n\nNo\n\n\n\nmodels.TaskEvent\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nevent_type\nstring\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\nsetup_error\nstring\n\nNo\n\n\ntime\nstring\n\nNo\n\n\n\nmodels.TaskLog\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\naddress\nstring\n\nNo\n\n\nallocation_id\nstring\n\nNo\n\n\nnode_id\nstring\n\nNo\n\n\ntarget\nstring\n\nNo\n\n\ntask_events\n[ models.TaskEvent ]\n\nNo\n\n\n\nmodels.TaskProgress\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nETA\nstring\n\nNo\n\n\nbacklog\nstring\n\nNo\n\n\nbuffer_status\nmodels.BufferStat\n\nNo\n\n\ncurrent_coordinates\nmodels.CurrentCoordinates\n\nNo\n\n\ndelay_count\nmodels.DelayCount\n\nNo\n\n\nexec_master_row_count\ninteger\n\nNo\n\n\nexec_master_tx_count\ninteger\n\nNo\n\n\nnats_message_status\nmodels.NatsMessageStatistics\n\nNo\n\n\nprogress_PCT\nstring\n\nNo\n\n\nread_master_row_count\ninteger\n\nNo\n\n\nread_master_tx_count\ninteger\n\nNo\n\n\nstage\nstring\n\nNo\n\n\nthroughput_status\nmodels.ThroughputStat\n\nNo\n\n\ntimestamp\ninteger\n\nNo\n\n\n\nmodels.TenantListResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\ntenant_list\n[ string ]\n\nNo\n\n\n\nmodels.ThroughputStat\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nnum\ninteger\n\nNo\n\n\ntime\ninteger\n\nNo\n\n\n\nmodels.UpdataLogLevelRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndtle_log_level\nstring\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.UpdateRoleReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nauthority\nstring\n\nNo\n\n\nname\nstring\n\nNo\n\n\noperation_object_type\nstring\n\nNo\n\n\noperation_users\n[ string ]\n\nNo\n\n\ntenant\nstring\n\nNo\n\n\n\nmodels.UpdateRoleRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.UpdateUserReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nremark\nstring\n\nNo\n\n\nrole\nstring\n\nYes\n\n\ntenant\nstring\n\nYes\n\n\nusername\nstring\n\nYes\n\n\n\nmodels.UpdateUserRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\n\nmodels.UserListResp\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\nmessage\nstring\n\nNo\n\n\nuser_list\n[ common.User ]\n\nNo\n\n\n\nmodels.UserLoginReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ncaptcha\nstring\n\nYes\n\n\ncaptcha_id\nstring\n\nYes\n\n\npassword\nstring\n\nYes\n\n\ntenant\nstring\n\nYes\n\n\nusername\nstring\n\nYes\n\n\n\nmodels.UserLoginResV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ntoken\nstring\n\nNo\n\n\n\nmodels.ValidateJobReqV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndest_task\nmodels.DestTaskConfig\n\nYes\n\n\nis_password_encrypted\nboolean\n\nNo\n\n\njob_id\nstring\n\nYes\n\n\nsrc_task\nmodels.SrcTaskConfig\n\nYes\n\n\n\nmodels.ValidateJobRespV2\n\n\n\nName\nType\nDescription\nRequired\n\n\n\n\ndriver_config_validated\nboolean\nDriverConfigValidated indicates whether the agent validated the driver\nNo\n\n\njob_validation_error\nstring\n\nNo\n\n\njob_validation_warning\nstring\n\nNo\n\n\nmessage\nstring\n\nNo\n\n\nmysql_task_validation_report\n[ models.MysqlTaskValidationReport ]\nconfig\nNo\n\n\n\n"},"4/4.5_mysql_user_privileges.html":{"url":"4/4.5_mysql_user_privileges.html","title":"4.5.MySQL 用户权限说明","keywords":"","body":"MySQL 用户权限说明\ndtle配置的MySQL用户, 在使用不同功能时, 需具有以下权限\n源端用户\n\n\n\n权限\n功能说明\n\n\n\n\nselect\n全量复制时, 对目标表需要select权限\n\n\nreplication client\n全量/增量复制时, 需执行show master status 获取binlog信息\n\n\nreplication slave\n增量复制时, 需要模拟 MySQL 复制\n\n\n\n目标端用户\n\n\n\n权限\n功能说明\n\n\n\n\nalter\n复制时处理DDL语句\n\n\ncreate\n复制时处理DDL语句; 自动创建表结构功能; 自动创建目标端的GTID元数据表\n\n\ndrop\n复制时处理DDL语句\n\n\nindex\n复制时处理DDL语句\n\n\nreferences\n复制时处理DDL语句\n\n\ninsert\n复制时处理DML语句; 修改目标端的GTID元数据表\n\n\ndelete\n复制时处理DML语句; 修改目标端的GTID元数据表\n\n\nupdate\n复制时处理DML语句\n\n\nselect\n查询目标端的GTID元数据表\n\n\ntrigger\n进行目标端触发器检查\n\n\n\n如果job中设置SetGtidNext=true, 则需要 replication_applier (MySQL 8.0) 或 super 权限。\n"},"4/4.6_dtle_2to3.html":{"url":"4/4.6_dtle_2to3.html","title":"4.6.dtle 2升级到3","keywords":"","body":"从dtle 2.x升级到dtle 3.x\ndtle 2.x 和 3.x 的数据文件不兼容,直接升级无法保留进行中的job。(若无需保留的job,则可直接升级。)\n升级步骤\n\n确保dtle 2.x运行中。\n使用导出脚本( 点此下载 )将现有job导出\n如 ./dtle-job-2to3.py 127.0.0.1:8190\n将在当前目录得到一系列job json文件。需手动填写文件里的密码。\n导出脚本主要意义在于保存复制进度。\n\n\n卸载dtle 2.x并删除数据目录。\n安装dtle 3.x。配置/etc/dtle/nomad.hcl, 开启兼容层(设定api_addr、nomad_addr)\n运行 dtle 3.x。将导出的job配置提交到 dtle 兼容层端口\n如 curl -XPOST -d @job1.json 127.0.0.1:8190\n不要提交到nomad原生端口\n\n\n\ndtle 3.x 和 2.x的显著差异\n\n作为nomad插件运行\n需要另外启动consul\njob.json格式差异\n默认端口不同\n可使用hcl格式job配置文件\n查询任务进度\n\"暂停/恢复job\"被\"删除/添加job\"代替\n恢复需要根据之前的job.json(或hcl)添加job\n会自动从consul中储存的Gtid继续复制\n\n\n如果要重建同名job(并放弃进度),除了在nomad上删除,还需要在consul上删除\n\nallocation//stats 接口变更\n由于nomad没有提供合适的API #5863 ,我们暂且借用nomad alloc signal接口返回的错误信息来传递stats。\n$ nomad alloc signal -s stats b0a227c1 # 或使用curl访问HTTP API\n$ curl -XPOST -d '{\"Signal\": \"stats\" }' 127.0.0.1:4646/v1/client/allocation/b0a227c1-b910-0eb1-2bb9-b8bfe7607adc/signal\n\nError signalling allocation: Unexpected response code: 500 (1 error occurred:\n * Failed to signal task: Dest, err: rpc error: code = Unknown desc = {\n \"CurrentCoordinates\":{\"File\":\"bin.000075\",\"Position\":18716,\n \"GtidSet\":\"acd7d195-06cd-11e9-928f-02000aba3e28:1-143962\",\n \"RelayMasterLogFile\":\"\",\"ReadMasterLogPos\":0,\"RetrievedGtidSet\":\"\"},\n \"TableStats\":null,\"DelayCount\":null,\"ProgressPct\":\"0.0\",\"ExecMasterRowCount\":0,\n \"ExecMasterTxCount\":0,\"ReadMasterRowCount\":0,\"ReadMasterTxCount\":0,\"ETA\":\"N/A\",\n \"Backlog\":\"\",\"ThroughputStat\":null,\"MsgStat\":{\"InMsgs\":2,\"OutMsgs\":2,\"InBytes\":299,\n \"OutBytes\":0,\"Reconnects\":0},\"BufferStat\":{\"ExtractorTxQueueSize\":0,\n \"ApplierTxQueueSize\":0,\"ApplierGroupTxQueueSize\":0,\"SendByTimeout\":0,\n \"SendBySizeFull\":0},\"Stage\":\"Waiting for slave workers to process their queues\",\n \"Timestamp\":1599130915717858000}\n"},"4/4.7_diagnosing.html":{"url":"4/4.7_diagnosing.html","title":"4.7.问题诊断 FAQ","keywords":"","body":"问题诊断 FAQ\n通用问题\n\ndtle.gtid_executed 表中是乱码\n\n该表用uuid以binary储存以提升性能。注意查询方式gtid_executed表\n协助诊断\n遇到问题,首先确认使用了最新稳定版dtle。\n将以下内容提供给爱可生工程师,我们将帮助您诊断故障。\n通用\n\njob配置\n复制阶段(全量/增量)\n日志(请用gzip压缩)\n堆栈/内存/运行状态/pprof信息:执行kill -TTIN {dtle_pid},dtle会自动生成信息文件,存放在/tmp/dtle_dump_[date-time]目录下\n\n服务无法启动,无日志输出,使用如下命令查看std日志\n\njournalctl _SYSTEMD_UNIT=dtle-consul.service\njournalctl _SYSTEMD_UNIT=dtle-nomad.service\n\n复制停顿、不开始\n\n任务有无报错\n修改日志级别为Debug\n\n性能低、延迟大\n\n确认日志级别为Info。Debug日志会大幅降低性能。\n网络(带宽/延迟)\n监控项: 队列\n数据产生量\n部署结构(节点、dtle/mysql所在)\n\n数据不一致\n\n不一致的具体表现、特征\nconsul中保存的dtle进度(gtid)\n目标端 dtle.gtid_executed 表的内容 方法参考\n源端 show master status 结果\n表结构、是否有无PK表\n复制过程中是否有DDL\n解析源端binlog, 查找不一致数据出现的位置\n如为双向复制,需确保业务上无数据冲突\n\nbinlog purged\n即类似如下报错\n\nERROR 1236 (HY000): The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.\n\n\n目标端 dtle.gtid_executed 表的内容 方法参考\nconsul中储存的job gtid\nMySQL show master status;、show binary logs;和select @@gtid_purged; 的结果\n\n"},"5/5.1_resource_estimation.html":{"url":"5/5.1_resource_estimation.html","title":"5.1.时间/资源估算","keywords":"","body":"时间/资源估算\nETA (预计完成时间) 估算\n源端\n\n全量过程, 公式为: 总时间 = 已用时间 / 发送到目标端的行数 * 总行数\n 其中,总行数 = (select count(*) ...)\n 预计完成时间 = 总时间 - 已用时间\n 即:预计完成时间 = 剩余行数 / 当前发送速率\n\n增量过程, ETA 一直为0s\n\n目标端\n\n全量过程. 公式为: 总时间 = 已用时间 / 已写入目标端的行数 * 总行数\n 预计完成时间 = 总时间 - 已用时间\n 即:预计完成时间 = 剩余行数 / 当前写入速率\n\n增量过程, ETA 一直为0s\n\n内存占用估算\n内存占用估算 = RowSize * ChunkSize * QueueSize * 内存占用系数\n其中: \n\nRowSize为数据行的平均大小 (字节)\nChunkSize为配置项\nQueueSize为传输队列长度, 硬编码为24\n内存占用系数 测量约为 常量3.2\n\n关于大事务\n大事务指传输、处理数据量较大的事务,一般由DML组成。DDL事务(QueryEvent)不会太大,尽管某些DDL需要较长的执行时间。\n对于一个多行的大事务,dtle会按行分开处理、传输并执行(但在目标端仍作为一个事务提交)。\n当一个job处理大事务时,需要等待该段数据在目标端执行完毕才会获取下一批数据。\n当同时处理大事务的job数量达到 big_tx_max_jobs时,所有job都会进入等待模式。\n为了避免MySQL源端超时,等待时间的上限是 @@net_write_timeout / 2\n"},"5/5.2_architecture.html":{"url":"5/5.2_architecture.html","title":"5.2 基本架构","keywords":"","body":"dtle 架构\nnomad角色分为 server、client. \n\nmanager数量应为1、3或5个\nagent数量不限\n至少需要1个manager和1个agent\n一个nomad进程可同时扮演 server 和 client\n\n任务分为源端任务和目标端任务, 各由agent执行. 通过网络压缩传输数据.\n\n"},"5/5.3_kafka_message_format.html":{"url":"5/5.3_kafka_message_format.html","title":"5.3 Kafka 消息格式","keywords":"","body":"Kafka 消息格式\ndtle Kafka 输出, 消息格式兼容 Debezium\n其消息格式具体可参考 https://debezium.io/documentation/reference/1.8/tutorial.html\n此处概要说明\n\n每行数据变更会有一个消息\n每个消息分为key和value\nkey是该次变更的主键\nvalue是该次变更的整行数据\n\n\nkey和value各自又有schema和payload\npayload是具体的数据\nschema指明了数据的格式, 即payload的解读方式, 可以理解为“类定义”\n注意和SQL schema含义不同\n表结构会包含在 Kafka Connect schema 中\n\n\n\n\n\nDML\nKey\n以下是一个消息的key. 只是简单的包含了主键.\n{\n \"schema\": {\n \"type\": \"struct\",\n \"name\": \"dbserver1.inventory.customers.Key\"\n \"optional\": false,\n \"fields\": [\n {\n \"field\": \"id\",\n \"type\": \"int32\",\n \"optional\": false\n }\n ]\n },\n \"payload\": {\n \"id\": 1004\n }\n}\n\nValue\n以下是一个消息的value, 其类型为 topic.schema.table.Envelope, 拥有5个字段\n\nbefore, 复杂类型 topic.schema.table.Value, 为该表的表结构.\nafter, 复杂类型, 同上\nsource, 复杂类型, 为该次变更的元数据\nop: string. 用\"c\", \"d\", \"u\" 分别表达操作类型: 增、删、改\nts_ms: int64. dtle 处理该行变更的时间.\n\n{\n \"schema\": {\n \"type\": \"struct\",\n \"fields\": [\n {\n \"type\": \"struct\",\n \"fields\": [\n {\n \"type\": \"int32\",\n \"optional\": false,\n \"field\": \"id\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"first_name\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"last_name\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"email\"\n }\n ],\n \"optional\": true,\n \"name\": \"dbserver1.inventory.customers.Value\",\n \"field\": \"before\"\n },\n {\n \"type\": \"struct\",\n \"fields\": [\n {\n \"type\": \"int32\",\n \"optional\": false,\n \"field\": \"id\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"first_name\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"last_name\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"email\"\n }\n ],\n \"optional\": true,\n \"name\": \"dbserver1.inventory.customers.Value\",\n \"field\": \"after\"\n },\n {\n \"type\": \"struct\",\n \"fields\": [\n {\n \"type\": \"string\",\n \"optional\": true,\n \"field\": \"version\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"name\"\n },\n {\n \"type\": \"int64\",\n \"optional\": false,\n \"field\": \"server_id\"\n },\n {\n \"type\": \"int64\",\n \"optional\": false,\n \"field\": \"ts_sec\"\n },\n {\n \"type\": \"string\",\n \"optional\": true,\n \"field\": \"gtid\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"file\"\n },\n {\n \"type\": \"int64\",\n \"optional\": false,\n \"field\": \"pos\"\n },\n {\n \"type\": \"int32\",\n \"optional\": false,\n \"field\": \"row\"\n },\n {\n \"type\": \"boolean\",\n \"optional\": true,\n \"field\": \"snapshot\"\n },\n {\n \"type\": \"int64\",\n \"optional\": true,\n \"field\": \"thread\"\n },\n {\n \"type\": \"string\",\n \"optional\": true,\n \"field\": \"db\"\n },\n {\n \"type\": \"string\",\n \"optional\": true,\n \"field\": \"table\"\n }\n ],\n \"optional\": false,\n \"name\": \"io.debezium.connector.mysql.Source\",\n \"field\": \"source\"\n },\n {\n \"type\": \"string\",\n \"optional\": false,\n \"field\": \"op\"\n },\n {\n \"type\": \"int64\",\n \"optional\": true,\n \"field\": \"ts_ms\"\n }\n ],\n \"optional\": false,\n \"name\": \"dbserver1.inventory.customers.Envelope\",\n \"version\": 1\n },\n \"payload\": {\n \"before\": null,\n \"after\": {\n \"id\": 1004,\n \"first_name\": \"Anne\",\n \"last_name\": \"Kretchmar\",\n \"email\": \"annek@noanswer.org\"\n },\n \"source\": {\n \"version\": \"0.8.3.Final\",\n \"name\": \"dbserver1\",\n \"server_id\": 0,\n \"ts_sec\": 0,\n \"gtid\": null,\n \"file\": \"mysql-bin.000003\",\n \"pos\": 154,\n \"row\": 0,\n \"snapshot\": true,\n \"thread\": null,\n \"db\": \"inventory\",\n \"table\": \"customers\"\n },\n \"op\": \"c\",\n \"ts_ms\": 1486500577691\n }\n}\n\nDDL (SchemaChangeTopic)\ndtle会将DDL写入SchemaChangeTopic。该topic值可配置.\nSchema change消息中,key永远为null, 仅 value部分有值:\n{\n \"source\" : {\n \"server\" : \"mysql2\"\n },\n \"position\" : {\n \"ts_sec\" : 1641807976,\n \"file\" : \"bin.000022\",\n \"pos\" : 439,\n \"gtids\" : \"acd7d195-06cd-11e9-928f-02000aba3e28:1-175\",\n \"snapshot\" : true\n },\n \"databaseName\" : \"a\",\n \"ddl\" : \"CREATE TABLE `a` (\\n `id` int(11) NOT NULL AUTO_INCREMENT,\\n PRIMARY KEY (`id`)\\n) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1\",\n \"tableChanges\" : [ {\n \"type\" : \"CREATE\",\n \"id\" : \"\\\"a\\\".\\\"a\\\"\",\n \"table\" : {\n \"defaultCharsetName\" : \"latin1\",\n \"primaryKeyColumnNames\" : [ \"id\" ],\n \"columns\" : [ {\n \"name\" : \"id\",\n \"jdbcType\" : 4,\n \"typeName\" : \"INT\",\n \"typeExpression\" : \"INT\",\n \"charsetName\" : null,\n \"length\" : 11,\n \"position\" : 1,\n \"optional\" : false,\n \"autoIncremented\" : true,\n \"generated\" : true\n } ]\n }\n } ]\n}\n\n其中:\n\nposition.snapshot==true表明这是全量初始化时的表结构(通过show create table等生成)。\nposition.snapshot==false则表明:这是增量过程中执行的DDL。\n\n注:tableChanges结构在dtle中尚未实现。\nMySQL数据类型到 “Kafka Connect schema types”的转换\n见 https://debezium.io/docs/connectors/mysql/#data-types\n"},"5/5.4_columns_mapping.html":{"url":"5/5.4_columns_mapping.html","title":"5.4 Oracle MySQL 字段映射","keywords":"","body":"Oracle MySQL 字段映射\n字段类型\n\n\n\nOracle\nMySQL\n全量支持\n增量支持\n限制\n后期是否考虑优化/支持\n\n\n\n\nBINARY_FLOAT\nfloat\n否\n否(insert 支持)\nmysql 不支持Inf/-Inf/Nan数据,MySQL float类型无法精确匹配)\n是\n\n\nBINARY_DOUBLE\nfloat\n是\n是\nmysql 不支持Inf/-Inf/Nan数据\n\n\n\nCHAR(n), CHARACTER(n)\nCHAR(n), CHARACTER(n)\n是\n是\n\n\n\n\nDATE\ndatetime\n是\n是\nMySQL 最大长度限制为6,Oracle为9\n\n\n\nDECIMAL(p,s), DEC(p,s)\nDECIMAL(p,s), DEC(p,s)\n是\n是\n\n\n\n\nDOUBLE PRECISION\nDOUBLE PRECISION\n否\n是\n\n\n\n\nFLOAT(p)\nDOUBLE\n是\n是\n\n\n\n\nINTEGER, INT\nINT\n是\n是\n极值问题\n\n\n\nINTERVAL YEAR(p) TO MONTH\nVARCHAR(30)\n是\n是\n部分结果异常\n是\n\n\nINTERVAL DAY(p) TO SECOND(s)\nVARCHAR(30)\n是\n是\n同步结果以纳秒保存\n是\n\n\nNCHAR(n)\nNCHAR(n)/NVARCHAR(n)\n是\n是\n\n\n\n\nNCHAR VARYING(n)\nNCHAR VARYING(n)\n是\n是\n\n\n\n\nNUMBER(p,0), NUMBER(p)\nTINYINT/SMALLINT/INT/BIGINT/DECIMAL(p)\n是\n是\n\n\n\n\nNUMBER(p,s)\nDECIMAL(p,s)\n是\n是\n\n\n\n\nNUMBER, NUMBER(*)\nDOUBLE\n是\n是\n\n\n\n\nNUMERIC(p,s)\nNUMERIC(p,s)\n是\n是\n\n\n\n\nNVARCHAR2(n)\nNVARCHAR(n)\n是\n是\n\n\n\n\nRAW(n)\nVARBINARY(n)\n是\n是\n\n\n\n\nREAL\nDOUBLE\n是\n是\n\n\n\n\nROWID\nCHAR(100)\n是\n是\n\n\n\n\nSMALLINT\nDECIMAL(38)\n是\n是\n\n\n\n\nTIMESTAMP(p)\ndatetime\n是\n是\n\n\n\n\nVARCHAR(n)\nVARCHAR(n)\n是\n是\n\n\n\n\nVARCHAR2(n)\nVARCHAR(n)\n是\n是\n\n\n\n\nBLOB\nBLOB\n否\n否\n当前解析逻辑无法获取完整数据\n\n\n\nCLOB\nCLOB\n否\n否\n当前解析逻辑无法获取完整数据\n\n\n\nLONG\nLONGTEXT\n否\n否(insert 支持)\n不支持minus查询\n是\n\n\nLONG RAW\nLONGBLOB\n否\n否(insert 支持)\n\n是\n\n\nNCLOB\nNCLOB\n否\n否\n当前解析逻辑无法获取完整数据\n是\n\n\nTIMESTAMP(p) WITH TIME ZONE\ndatetime\n否\n否\n时区未解析\n是\n\n\nBFILE\n\n否\n否\nlogminer不支持\n\n\nUROWID(n)\n\n否\n否\nlogminer解析异常\n否\n\n\nXMLTYPE\n\n否\n否\nlogminer不支持\n否\n\n\n\n待支持\n\n\n\nOracle\nMySQL\n是否支持\n不支持原因\n后期是否考虑支持\n\n\n\n\n\n\n\n\n不支持\n\n\n\nOracle\n是否支持\n不支持原因\n\n\n\n\nBFILE\n否\nlogminer不支持\n\n\nUROWID(n)\n否\nlogminer解析异常\n\n\nXMLTYPE\n否\nlogminer不支持\n\n\n\n"},"6/howto_contribute.html":{"url":"6/howto_contribute.html","title":"6.如何参与","keywords":"","body":"如何参与\n提交缺陷\n可直接在github issues页面 新建 issue, 选择 Bug Report 模板, 按格式填写完成后提交即可\n提交功能\n可直接在github issues页面 新建 issue, 选择 Feature request 模板, 按格式填写完成后提交即可\n提交代码\n按照github的pull request流程即可\n如何全职参与\n本项目的维护方(上海爱可生信息技术股份有限公司)一直在招聘 靠谱的研发工程师/靠谱的测试工程师. 如果通过dtle, 您对全职参与类似的项目有兴趣, 请联系我们的研发团队.\n"},"7/7_roadmap.html":{"url":"7/7_roadmap.html","title":"7.路线图","keywords":"","body":"路线图\n\n生态\n\n[ ] 支持MGR Primary切换\n[ ] 对于 MySQL分布式中间件 (如dble) 提供数据扩容方案\n[ ] 复制到Kafka的数据格式支持Avro\n[ ] 支持更多种类的公有云间的数据迁移\n\n\nETL-E\n\n[ ] WHERE 过滤条件 支持更丰富的函数 (目前仅支持关系符和简单函数)\n[ ] oracle\n[ ] 动态增减同步对象\n\n\nETL-T\n\n[ ] 列名变换\n[ ] WHERE 过滤条件 支持更丰富的函数 (目前仅支持关系符和简单函数)\n[ ] 数据变换\n[x] 库.表名变换 (2.19.11.0+)\n[x] 列选择、列顺序变换 (3.20.08.0+)\n\n\nETL-L\n\n[ ] 支持MGR Primary切换 actiontech/dtle#541\n[x] MTS (actiontech/dtle#688)\n\n\n链路管理\n\n[ ] 对链路提供限流参\n[ ] 支持2G级别的大事务\n[ ] 限流\n[ ] 加密\n[ ] IPv6 actiontech/dtle#600\n\n\n运维\n\n[ ] 提供告警功能\n[ ] DTLE 容灾\n\n\n非技术指标\n\n[ ] 支持2G级别的大事务\n[x] 一致性DDL元数据 (2.19.03.0+ actiontech/dtle#321)\n[ ] 免一致性快照事务的全量复制\n[ ] 全量复制也可断点续传\n\n\n\n\n\n"}}} \ No newline at end of file diff --git a/website.css b/website.css new file mode 100644 index 0000000..e038e24 --- /dev/null +++ b/website.css @@ -0,0 +1,6 @@ +/* fix https://github.com/GitbookIO/gitbook/issues/1626 */ +.markdown-section table { + table-layout: fixed; + display:block; + overflow-x: auto; +}