task-mode: all
shard-mode: optimistic
strict-optimistic-shard-mode: true
ignore-checking-items: []
meta-schema: dm_meta
#enable-heartbeat: false
#heartbeat-update-interval: 1
#heartbeat-report-interval: 10
timezone: ""
collation_compatible: loose
target-database:
  host: 127.0.0.1
  port: 4000
  user: root
  password: '******'
  max-allowed-packet: null
  session:
    tidb_txn_mode: optimistic
  security: null
#mysql-instances:
upstreams:
- db-config:
    host: 127.0.0.1
    port: 3306
    user: root
    password: '******'
    session: {}
  source-id: mysql-replica-01
  meta: null
  filter-rules:
  - filter-01
  route-rules:
  - route-01
  - route-02
  expression-filters:
    - "bit"
  black-white-list: ""
  block-allow-list: balist-01
  mydumper-config-name: dump-01
  mydumper: null
  mydumper-thread: 0
  loader-config-name: load-01
  loader: null
  loader-thread: 0
  syncer-config-name: sync-01
  syncer: null
  syncer-thread: 0
  case-sensitive: false
  #validator-config-name: validator-01
- db-config:
    host: 127.0.0.1
    port: 3307
    user: root
    password: '******'
    session: {}
  source-id: mysql-replica-02
  meta: null
  filter-rules:
  - filter-02
  route-rules:
  - route-01
  - route-02
  expression-filters:
    - "c_null"
  black-white-list: ""
  block-allow-list: balist-01
  mydumper-config-name: dump-01
  mydumper: null
  mydumper-thread: 0
  loader-config-name: load-01
  loader: null
  loader-thread: 0
  syncer-config-name: sync-01
  syncer: null
  syncer-thread: 0
  #validator-config-name: validator-01
online-ddl: true
shadow-table-rules: []
trash-table-rules: []
#online-ddl-scheme: ""
routes:
  route-01:
    schema-pattern: dmctl
    table-pattern: t_*
    target-schema: dmctl
    target-table: t_target
  route-02:
    schema-pattern: dmctl
    table-pattern: ""
    target-schema: dmctl
    target-table: ""
filters:
  filter-01:
    schema-pattern: dmctl
    table-pattern: t_1
    events:
    - all
    sql-pattern: []
    action: Do
  filter-02:
    schema-pattern: dmctl
    table-pattern: t_2
    events: []
    sql-pattern:
    - alter table .* add column aaa int
    action: Ignore
expression-filter:
  c_null:
    schema: "expr_filter"
    table: "t1"
    insert-value-expr: "c_null IS NOT NULL"
  bit:
    schema: "expr_filter"
    table: "t1"
    insert-value-expr: "c_bit = b'1111'"
#black-white-list: {}
block-allow-list:
  balist-01:
    do-tables:
    - db-name: dmctl
      tbl-name: ~^t_[\d]+
    do-dbs:
    - dmctl
    ignore-tables: []
    ignore-dbs: []
mydumpers:
  dump-01:
    mydumper-path: ./bin/mydumper
    threads: 4
    chunk-filesize: "64"
    statement-size: 0
    rows: 0
    where: ""
    skip-tz-utc: true
    extra-args: ""
loaders:
  load-01:
    pool-size: 16
    dir: ./dumped_data
    import-mode: logical
syncers:
  sync-01:
    meta-file: ""
    worker-count: 16
    batch: 100
    queue-size: 1024
    checkpoint-flush-interval: 1
    compact: true
    multiple-rows: true
    max-retry: 0
    auto-fix-gtid: false
    enable-gtid: false
    disable-detect: false
    safe-mode: false
    safe-mode-duration: "60s"
    enable-ansi-quotes: false
#validators:
#  validator-01:
#    mode: none
#    worker-count: 4
#clean-dump-file: true
experimental:
  async-checkpoint-flush: false
