我有一个DM 任务,全量+增量的,现在处于增量阶段
我想做的操作是,上游有一部分表不想要再同步到下游了
我做了的操作:
1、pause 暂停一下任务,
2、然后task 文件增加一条过滤规则,check-task ./task.yaml,这一步一直不对
我想知道,可以动态的这样加过滤规则吗,有人成功过吗,这一部分是我对配置文件的改动
报错说yaml 格式有问题,我感觉是胡说,是不是任务每法动态该规则啊
这里说的11行,就是那个block-allow-list 这一行
尝试过一些其他的操作,写法,就是不行,所以怀疑是没法动态加规则
HGHNICE_666
(Ti D Ber Bs6w P6 Im)
2
mysql-instances:
- source-id: "source-instance-01"
block-allow-list: "default-rule"
loader-config-name: "default-loader"
syncer-config-name: "default-syncer"
filter-rules:
- "ignore-ddl-rule-01"
- "ignore-ddl-rule-02"
- "ignore-ddl-rule-03"
- "ignore-ddl-rule-04"
- "ignore-ddl-rule-05"
- "ignore-dml-rule-01"
- "ignore-dml-rule-02"
block-allow-list:
default-rule:
ignore-dbs: ["system_db", "internal_db"]
do-tables:
- db-name: "business_db"
tbl-name: "*"
filters:
ignore-ddl-rule-01:
schema-pattern: "business_db"
table-pattern: "table_a"
events: ["alter table"]
action: Ignore
ignore-ddl-rule-02:
schema-pattern: "business_db"
table-pattern: "table_b"
events: ["alter table", "delete", "drop"]
action: Ignore
ignore-ddl-rule-03:
schema-pattern: "business_db"
table-pattern: "table_c"
events: ["alter table", "delete", "drop table"]
action: Ignore```
然后执行
tiup dmctl --master-addr localhost:8261 stop-task 任务名
tiup dmctl --master-addr localhost:8261 start-task 配置文件
1 个赞
kang
4
DM 同步延迟先看 relay log 有没有堆积,检查源库和目标之间的网络延迟。全量阶段慢可以调大 worker 数量和 batch size,增量延迟看 source 的 binlog 大小是否合理。
DM 的全量同步基于 dump/load 模式,增量同步基于 binlog 拉取和回放。增量延迟的本质是 binlog 消费速度跟不上生产速度,常见瓶颈在 worker 线程数、目标库写入能力、或者网络带宽。建议先看 dm_worker 的 metrics。
增量阶段不能直接改配置,需停任务后更新规则再重启,先核对 YAML 缩进格式。
1 个赞
BI小z
(Ti D Ber U Nrr6xc O)
7
你现在是 YAML 格式写错,不是 DM 不支持动态改
第 11 行 block-allow-list: 报错,看看是不是下面几种之一:
- 缩进不对:用了 Tab、或空格数和上一层不一致(必须全空格,不能 Tab)。
- 冒号后没空格:
block-allow-list:xxx
;block-allow-list: xxx
。
- 层级放错:
block-allow-list 是全局一级,不能塞在 mysql-instances 里面。
- 规则名没引用:定义了
block-allow-list: bw-rule,但 mysql-instances 里没写 block-allow-list: bw-rule。
TiDB_001
(Ti D Ber No L Znn Vd)
8
规则修改限制:DM 增量阶段不支持动态修改过滤规则,需先停止任务,更新配置后重启任务才能生效。
报错根源:并非功能限制,是 YAML 语法错误,常见问题:混用 Tab 缩进、层级错误、冒号后缺少空格、规则引用格式不规范。
大唐天子
(Ti D Ber Gt Qk Ceg E)
9
DM 同步延迟先看 relay log 有没有堆积,检查源库和目标之间的网络延迟。
这里的yaml 写法会和标准yaml 写法略有不同。
要实现目标,确实是先 stop-task 再start-task 就行 ,只要任务名不变,下游的位点不要去散户就行
system
(system)
关闭
11
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。