为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.0-rc
- 【DM 版本】:v1.0.4-hotfix
- 【问题描述】:为了过滤上游数据源同步过来的分区表管理DDL,我在task_name.yaml中添加了如下配置:
filters:
filter-partition-rule:
schema-pattern: "*"
sql-pattern: ["ALTER\\s+TABLE[\\s\\S]*ADD\\s+PARTITION", "ALTER\\s+TABLE[\\s\\S]*DROP\\s+PARTITION"]
action: Ignore
修改完后在dm-ctl中更新了配置
~/dm-ansible/resources/bin/dmctl --master-addr 192.168.100.151:8261
update-task /data_db1/dm/conf/task_name.yaml
然后在上游数据源执行了一条测试DDL后发现依然会报错,信息如下:
麻烦帮忙看看哪个环节出了问题
小王同学
2
是否尝试 stop-task 再 start-task,可以试一下重启同步任务。如重启不生效,辛苦提供下完整 task 配置。
stop-task 再 start-task也试过了还是不行
task配置如下:
# 任务名,多个同时运行的任务不能重名。
name: "task_name"
# 全量+增量 (all) 同步模式。
task-mode: "all"
# 下游 TiDB 配置信息。
target-database:
host: "192.168.100.176"
port: 4000
user: "root"
password: "GdO2ZZ0bXthjE23V8SHRZkA7mWbxREfxJe+eCPY="
remove-meta: false
# 黑白名单全局配置,各实例通过配置项名引用。
black-white-list:
global:
do-tables: # 需要同步的上游表的白名单。
- db-name: "db1" # 需要同步的表的库名。
tbl-name: "~^.*"
filters:
filter-partition-rule:
schema-pattern: "*"
sql-pattern: ["ALTER\\s+TABLE[\\s\\S]*ADD\\s+PARTITION", "ALTER\\s+TABLE[\\s\\S]*DROP\\s+PARTITION"]
action: Ignore
# 当前数据同步任务需要的全部上游 MySQL 实例配置。
mysql-instances:
-
# 上游实例或者复制组 ID,参考 `inventory.ini` 的 `source_id` 或者 `dm-master.toml` 的 `source-id 配置`。
source-id: "mysql-replica-db1"
# 需要同步的库名或表名的黑白名单的配置项名称,用于引用全局的黑白名单配置,全局配置见下面的 `black-white-list` 的配置。
black-white-list: "global"
# Mydumper 的配置项名称,用于引用全局的 Mydumper 配置。
mydumper-config-name: "global"
# Mydumper 全局配置,各实例通过配置项名引用。
mydumpers:
global:
mydumper-path: "./bin/mydumper" # Mydumper 二进制文件的路径。
threads: 4
chunk-filesize: 64
skip-tz-utc: true
extra-args: "-B db1 --no-locks"
loaders: # loader process unit specific configs, mysql instance can ref one config in it
global:
pool-size: 4
dir: "./dumped_data"
syncers: # syncer process unit specific configs, mysql instance can ref one config in it
global:
worker-count: 8
batch: 100
safe-mode: true
小王同学
4
system
(system)
关闭
7
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。