tidb 合表发现一个异常现象

试下正则改成这个试下

这个倒是我忽略了,没有去查询7-63号分表数据是否合并到t_order。被我重做了,等下午或者明天看看。这个倒是提醒我了,感谢

重跑也是一样

那就看是不是任务的配置有问题了

正则问题

按照这样写的话,分表确实被同步下来了,但是没有合表

如果是这种情况,那说明全部分表都没有命中route规则,能再发一下完整的配置文件么?

分库分表,不合表 或者下来的还是分库分表。你们后期怎么用呢 ?? 必须的和表吧。

name: sharding_t # 任务名称,需要全局唯一
task-mode: all # 任务模式,可设为 “full”、“incremental”、“all”
ignore-checking-items: [“auto_increment_ID”,“table_schema”]
shard-mode: “pessimistic”

mysql-instances:

  • source-id: “mysql-replica-act”
    route-rules: [“db-route-rule”,“position-route-rule”, “attachment-route-rule”,“order-route-rule”]
    filter-rules: [“filter-rule-1”]
    black-white-list: “bw-rule-1” # 黑白名单配置名称,如果 DM 版本 <= v2.0.0-beta.2 则使用 black-white-list
    mydumper-thread: 4 # dump 处理单元用于导出数据的线程数量
    loader-thread: 8 # load 处理单元用于导入数据的线程数量,当有多个实例同时向 TiDB 迁移数据时可根据负载情况适当调小该值
    syncer-thread: 16 # sync 处理单元用于复制增量数据的线程数量,当有多个实例同时向 TiDB 迁移数据时可根据负载情况适当调小该值

target-database: # 下游数据库实例配置
host: “10.0.0.1”
port: 4000
user: “user”
password: “xxxxxxx” # 如果密码不为空,则推荐使用经过 dmctl 加密的密文

black-white-list: # 上游数据库实例匹配的表的 block-allow-list 过滤规则集,如果 DM 版本 <= v2.0.0-beta.2 则使用 black-white-list
bw-rule-1: # 黑白名单配置的名称
do-dbs: [“s_test”] # 迁移哪些库
ignore-tables: # 忽略哪些表
- db-name: “s_test”
tbl-name: “~^test."
- db-name: “s_test”
tbl-name: "~^order_a.

- db-name: “s_test”
tbl-name: “~^order_feesubmit20."
- db-name: “s_test”
tbl-name: "~^order_reply.

- db-name: “s_test”
tbl-name: “~^order20."
- db-name: “s_test”
tbl-name: “order202209_bak202215”
- db-name: “s_test”
tbl-name: “order_attachment202209_bak1215”
- db-name: “s_test”
tbl-name: "~^reconciliation_.

- db-name: “s_test”
tbl-name: “~^t_mo."
- db-name: “s_test”
tbl-name: “_order_20230306223915_del”
- db-name: “s_test”
tbl-name: "~^activity_merchant_archiver.

- db-name: “s_test”
tbl-name: “order”
- db-name: “s_test”
tbl-name: “~^order_position.*”
- db-name: “s_test”
tbl-name: “t_order”
- db-name: “s_test”
tbl-name: “t_order_position”
- db-name: “s_test”
tbl-name: “t_order_idx”
- db-name: “s_test”
tbl-name: “t_order_attachment”

routes:
db-route-rule:
schema-pattern: “s_test”
target-schema: “sharding_s_test”
order-route-rule:
schema-pattern: “s_test”
table-pattern: “~^t_order_[0-9]+$”
target-schema: “sharding_s_test”
target-table: “t_order”
attachment-route-rule:
schema-pattern: “s_test”
table-pattern: “~^t_order_attachment_[0-9]+$”
target-schema: “sharding_s_test”
target-table: “t_order_attachment”
position-route-rule:
schema-pattern: “s_test”
table-pattern: “~^t_order_position_[0-9]+$”
target-schema: “sharding_s_test”
target-table: “t_order_position”

filters:
filter-rule-1:
schema-pattern: “s_test”
table-pattern: “t_order.*”
events: [“truncate table”, “drop table”, “delete”]
action: Ignore

你把schema级别的规则“db-route-rule”放到列表最后一位试试,我看不管是官方示例,还是我线上配置都是把schema级别的规则放最后,是符合预期的

我能看一下你的配置么,我放在最后也不行

我自己解决了,正则该这样写 t_order_[0-9]*

为啥只识别0-6 问题也找到了,因为我之前 写的是t_order_[0-63] dm识别为了t_order_[0-6]

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。