@@ -11,38 +11,51 @@ summary: 了解 TiCDC 支持同步的 DDL 和一些特殊情况
11
11
12
12
目前 TiCDC 在同步 DDL 时使用白名单策略,只有在白名单中的 DDL 操作才会被同步到下游系统,不在白名单中的 DDL 操作将不会被 TiCDC 同步。
13
13
14
- 以下为 TiCDC 支持同步的 DDL 的列表。
15
-
16
- - create database
17
- - drop database
18
- - create table
19
- - drop table
20
- - add column
21
- - drop column
22
- - create index / add index
23
- - drop index
24
- - truncate table
25
- - modify column
26
- - rename table
27
- - alter column default value
28
- - alter table comment
29
- - rename index
30
- - add partition
31
- - drop partition
32
- - truncate partition
33
- - create view
34
- - drop view
35
- - alter table character set
36
- - alter database character set
37
- - recover table
38
- - add primary key
39
- - drop primary key
40
- - rebase auto id
41
- - alter table index visibility
42
- - exchange partition
43
- - reorganize partition
44
- - alter table ttl
45
- - alter table remove ttl
14
+ 此外,TiCDC 会根据表中是否具有[ 有效索引] ( /ticdc/ticdc-overview.md#有效索引 ) 以及配置项 [ ` force-replicate ` ] ( /ticdc/ticdc-changefeed-config.md#force-replicate ) 是否为 ` true ` 来决定是否将 DDL 同步到下游。当 ` force-replicate=true ` 时,同步任务会尝试强制[ 同步没有有效索引的表] ( /ticdc/ticdc-manage-changefeed.md#同步没有有效索引的表 ) 。
15
+
16
+ 以下为 TiCDC 支持同步的 DDL 的列表。该表中出现的缩写字母含义如下:
17
+
18
+ - Y:在该条件下可以同步到下游。
19
+ - N:在该条件下不会同步到下游。
20
+
21
+ > ** 注意:**
22
+ >
23
+ > - 当上游表不存在有效索引,且未配置 ` force-replicate=true ` 时,该表不会被同步,但是之后在该表上创建有效索引的 DDL (` CREATE INDEX ` 、` ADD INDEX ` 和 ` ADD PRIMARY KEY ` )会被同步,下游表和上游表结构可能产生不一致从而导致后续数据同步失败。
24
+ > - 删除最后一个有效索引的 DDL(` DROP INDEX ` 和 ` DROP PRIMARY KEY ` )不会被同步,并且导致后续数据同步失败。
25
+
26
+ | DDL | 存在有效索引 | 无有效索引且 ` force-replicate ` 为默认值 ` false ` | 无有效索引且 ` force-replicate ` 为 ` true ` |
27
+ | ---| :---:| :---:| :---: |
28
+ | ` CREATE DATABASE ` | Y | Y | Y |
29
+ | ` DROP DATABASE ` | Y | Y | Y |
30
+ | ` ALTER DATABASE CHARACTER SET ` | Y | Y | Y |
31
+ | ` CREATE INDEX ` | Y | Y | Y |
32
+ | ` ADD INDEX ` | Y | Y | Y |
33
+ | ` DROP INDEX ` | Y | N | Y |
34
+ | ` ADD PRIMARY KEY ` | Y | Y | Y |
35
+ | ` DROP PRIMARY KEY ` | Y | N | Y |
36
+ | ` CREATE TABLE ` | Y | N | Y |
37
+ | ` DROP TABLE ` | Y | N | Y |
38
+ | ` ADD COLUMN ` | Y | N | Y |
39
+ | ` DROP COLUMN ` | Y | N | Y |
40
+ | ` TRUNCATE TABLE ` | Y | N | Y |
41
+ | ` MODIFY COLUMN ` | Y | N | Y |
42
+ | ` RENAME TABLE ` | Y | N | Y |
43
+ | ` ALTER COLUMN DEFAULT VALUE ` | Y | N | Y |
44
+ | ` ALTER TABLE COMMENT ` | Y | N | Y |
45
+ | ` RENAME INDEX ` | Y | N | Y |
46
+ | ` ADD PARTITION ` | Y | N | Y |
47
+ | ` DROP PARTITION ` | Y | N | Y |
48
+ | ` TRUNCATE PARTITION ` | Y | N | Y |
49
+ | ` CREATE VIEW ` | Y | N | Y |
50
+ | ` DROP VIEW ` | Y | N | Y |
51
+ | ` ALTER TABLE CHARACTER SET ` | Y | N | Y |
52
+ | ` RECOVER TABLE ` | Y | N | Y |
53
+ | ` REBASE AUTO ID ` | Y | N | Y |
54
+ | ` ALTER TABLE INDEX VISIBILITY ` | Y | N | Y |
55
+ | ` EXCHANGE PARTITION ` | Y | N | Y |
56
+ | ` REORGANIZE PARTITION ` | Y | N | Y |
57
+ | ` ALTER TABLE TTL ` | Y | N | Y |
58
+ | ` ALTER TABLE REMOVE TTL ` | Y | N | Y |
46
59
47
60
## DDL 同步注意事项
48
61
0 commit comments