From 7c93b79fdf1d0f383c64051ed17d438da227e891 Mon Sep 17 00:00:00 2001 From: doc-claw-bot Date: Fri, 30 Oct 2026 09:48:03 +0000 Subject: [PATCH 1/4] docs(dm): fix stale event-filter and binlog-schema examples --- filter-binlog-event.md | 23 +++++++++++++++-------- migrate-small-mysql-shards-to-tidb.md | 4 ++-- migrate-with-more-columns-downstream.md | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/filter-binlog-event.md b/filter-binlog-event.md index 1bf5908aba01..2f4843ab0ce9 100644 --- a/filter-binlog-event.md +++ b/filter-binlog-event.md @@ -22,7 +22,6 @@ filters: schema-pattern: "test_*" table-pattern: "t_*" events: ["truncate table", "drop table"] - sql-pattern: ["^DROP\\s+PROCEDURE", "^CREATE\\s+PROCEDURE"] action: Ignore ``` @@ -97,20 +96,28 @@ filters: action: Do ``` -### 过滤 TiDB 不支持的 SQL 语句 +### 处理 TiDB 不支持或 DM 无法解析的 SQL 语句 + +对于 `CREATE PROCEDURE`、`DROP PROCEDURE` 和 `ALTER PROCEDURE`,无需配置过滤规则。DM 会自动跳过这些语句。 + +在 MySQL 中添加或删除分区时,DM 通常会将变更同步到 TiDB。对于 DM 和 TiDB 都支持的分区操作,无需配置过滤规则。要查看 TiDB 对你的表分区类型支持哪些操作,请参见[分区管理](/partitioned-table.md#分区管理)。 + +如果 DM 在处理使用 `ADD PARTITION` 或 `DROP PARTITION` 的 `ALTER TABLE` 语句时报告解析错误,并且你不需要将该分区变更同步到 TiDB,则可以使用如下规则跳过该语句。DM 的解析错误并不一定意味着 TiDB 不支持该操作。 + +当 DM 无法解析某条语句时,它无法应用仅针对特定 schema 或 table 的过滤规则。此时,你需要使用 `schema-pattern: "*"` 且不设置 `table-pattern` 的全局过滤规则。该规则会对迁移任务中所有表的匹配语句生效。 + +> **注意:** +> +> 为避免过滤掉需要迁移的数据,请尽可能严格地配置该全局过滤规则。 ``` filters: - filter-procedure-rule: + filter-partition-rule: schema-pattern: "*" - sql-pattern: [".*\\s+DROP\\s+PROCEDURE", ".*\\s+CREATE\\s+PROCEDURE", "ALTER\\s+TABLE[\\s\\S]*ADD\\s+PARTITION", "ALTER\\s+TABLE[\\s\\S]*DROP\\s+PARTITION"] + sql-pattern: ["ALTER\\s+TABLE[\\s\\S]*ADD\\s+PARTITION", "ALTER\\s+TABLE[\\s\\S]*DROP\\s+PARTITION"] action: Ignore ``` -> **注意:** -> -> 全局过滤规则的设置必须尽可能严格,以避免过滤掉需要迁移的数据。 - ## 探索更多 - [如何通过 SQL 表达式过滤 binlog](/filter-dml-event.md) \ No newline at end of file diff --git a/migrate-small-mysql-shards-to-tidb.md b/migrate-small-mysql-shards-to-tidb.md index 2502a1725527..eac8df6f0794 100644 --- a/migrate-small-mysql-shards-to-tidb.md +++ b/migrate-small-mysql-shards-to-tidb.md @@ -153,12 +153,12 @@ routes: # source-regexp: "(.*)" # target-column: "c_source" -# 过滤部分 DDL 事件 +# 过滤部分不兼容的 DDL 事件 filters: sale-filter-rule: schema-pattern: "store_*" table-pattern: "sale_*" - events: ["truncate table", "drop table", "delete"] + events: ["truncate table", "drop table"] action: Ignore store-filter-rule: schema-pattern: "store_*" diff --git a/migrate-with-more-columns-downstream.md b/migrate-with-more-columns-downstream.md index 8ae131f01a01..2d156a0cb712 100644 --- a/migrate-with-more-columns-downstream.md +++ b/migrate-with-more-columns-downstream.md @@ -91,7 +91,7 @@ CREATE TABLE `messages` ( {{< copyable "shell-regular" >}} ``` - tiup dmctl --master-addr 172.16.10.71:8261 binlog-schema update -s mysql-01 task-test -d log -t message log.message.sql + tiup dmctl --master-addr 172.16.10.71:8261 binlog-schema update -s mysql-01 task-test log messages log.messages.sql ``` 3. 使用 `resume-task` 命令恢复处于 Paused 状态的同步任务。 From 39e6096d10021fca9884347765cc3a1dbfddf150 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 30 Oct 2026 18:06:02 +0800 Subject: [PATCH 2/4] Apply suggestions from code review --- filter-binlog-event.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/filter-binlog-event.md b/filter-binlog-event.md index 2f4843ab0ce9..babd7785e649 100644 --- a/filter-binlog-event.md +++ b/filter-binlog-event.md @@ -100,9 +100,9 @@ filters: 对于 `CREATE PROCEDURE`、`DROP PROCEDURE` 和 `ALTER PROCEDURE`,无需配置过滤规则。DM 会自动跳过这些语句。 -在 MySQL 中添加或删除分区时,DM 通常会将变更同步到 TiDB。对于 DM 和 TiDB 都支持的分区操作,无需配置过滤规则。要查看 TiDB 对你的表分区类型支持哪些操作,请参见[分区管理](/partitioned-table.md#分区管理)。 +在 MySQL 中添加或删除分区时,DM 通常会将变更同步到 TiDB。对于 DM 和 TiDB 都支持的分区操作,无需配置过滤规则。要查看 TiDB 支持分区类型的操作,请参阅[分区管理](/partitioned-table.md#分区管理)。 -如果 DM 在处理使用 `ADD PARTITION` 或 `DROP PARTITION` 的 `ALTER TABLE` 语句时报告解析错误,并且你不需要将该分区变更同步到 TiDB,则可以使用如下规则跳过该语句。DM 的解析错误并不一定意味着 TiDB 不支持该操作。 +如果 DM 在处理使用 `ADD PARTITION` 或 `DROP PARTITION` 的 `ALTER TABLE` 语句时报解析错误,并且你不需要将该分区变更同步到 TiDB,则可以使用如下规则跳过该语句。DM 的解析错误并不一定意味着 TiDB 不支持该操作。 当 DM 无法解析某条语句时,它无法应用仅针对特定 schema 或 table 的过滤规则。此时,你需要使用 `schema-pattern: "*"` 且不设置 `table-pattern` 的全局过滤规则。该规则会对迁移任务中所有表的匹配语句生效。 From 9c7638deba0c77705c4504a9b71341157f7b162c Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 30 Oct 2026 18:08:49 +0800 Subject: [PATCH 3/4] Update filter-binlog-event.md --- filter-binlog-event.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filter-binlog-event.md b/filter-binlog-event.md index babd7785e649..66046161af93 100644 --- a/filter-binlog-event.md +++ b/filter-binlog-event.md @@ -106,7 +106,7 @@ filters: 当 DM 无法解析某条语句时,它无法应用仅针对特定 schema 或 table 的过滤规则。此时,你需要使用 `schema-pattern: "*"` 且不设置 `table-pattern` 的全局过滤规则。该规则会对迁移任务中所有表的匹配语句生效。 -> **注意:** +> **警告:** > > 为避免过滤掉需要迁移的数据,请尽可能严格地配置该全局过滤规则。 From a207da558d233939a716874af2f4a98e41b0cd98 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 30 Oct 2026 18:27:07 +0800 Subject: [PATCH 4/4] docs(dm): sync SQL pattern filtering warning --- filter-binlog-event.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/filter-binlog-event.md b/filter-binlog-event.md index 66046161af93..5c53a0d76764 100644 --- a/filter-binlog-event.md +++ b/filter-binlog-event.md @@ -109,6 +109,8 @@ filters: > **警告:** > > 为避免过滤掉需要迁移的数据,请尽可能严格地配置该全局过滤规则。 +> +> 以下正则表达式匹配 SQL 文本,包括字符串字面量,因此可能误过滤其他 DDL 语句。例如,如果 `ALTER TABLE ... ADD COLUMN` 语句的默认值中包含 `ADD PARTITION`,该语句也可能被跳过。使用此规则前,请确认这些正则表达式不会匹配任何需要同步的 DDL 语句。 ``` filters: