TiCDC OpenAPI v2
TiCDC 提供 OpenAPI 功能,你可以通过 OpenAPI v2 对 TiCDC 集群进行查询和运维操作。OpenAPI 的功能是 cdc cli 工具的一个子集。

注意
- TiCDC v6.5.x 系列从 v6.5.2 起支持 OpenAPI v2。如果你的 TiCDC 版本为 v6.5.0 或 v6.5.1,请使用 TiCDC OpenAPI v1。
- TiCDC OpenAPI v1 将在未来版本中被删除。推荐使用 TiCDC OpenAPI v2。
你可以通过 OpenAPI 完成 TiCDC 集群的如下运维操作:
- 获取 TiCDC 节点状态信息
- 检查 TiCDC 集群的健康状态
- 创建同步任务
- 删除同步任务
- 更新同步任务配置
- 查询同步任务列表
- 查询特定同步任务
- 暂停同步任务
- 恢复同步任务
- 查询同步子任务列表
- 查询特定同步子任务
- 查询 TiCDC 服务进程列表
- 驱逐 owner 节点
- 动态调整 TiCDC Server 日志级别
所有 API 的请求体与返回值统一使用 JSON 格式数据。请求如果成功,则统一返回 200 OK。本文档以下部分描述当前提供的 API 的具体使用方法。
在下文的示例描述中,假设 TiCDC server 的监听 IP 地址为 127.0.0.1,端口为 8300。在启动 TiCDC server 时,可以通过 --addr=ip:port 指定 TiCDC 绑定的 IP 地址和端口。
API 统一错误格式
对 API 发起请求后,如发生错误,返回错误信息的格式如下所示:
1. {
2. "error_msg": "",
3. "error_code": ""
4. }
如上所示,error_msg 描述错误信息,error_code 则是对应的错误码。
API List 接口统一返回格式
一个 API 请求如果返回是一个资源列表(例如,返回所有的服务进程 Captures),TiCDC 统一的返回格式如下:
1. {
2. "total": 2,
3. "items": [
4. {
5. "id": "d2912e63-3349-447c-90ba-wwww",
6. "is_owner": true,
7. "address": "127.0.0.1:8300"
8. },
9. {
10. "id": "d2912e63-3349-447c-90ba-xxxx",
11. "is_owner": false,
12. "address": "127.0.0.1:8302"
13. }
14. ]
15. }
如上所示:
total: 表示有一共有多少个资源。items: 当次请求返回的资源在这个数组里,数组所有的元素都是同种资源。
获取 TiCDC 节点状态信息
该接口是一个同步接口,请求成功会返回对应节点的状态信息。
请求 URI
GET /api/v2/status
使用样例
以下请求会获取 IP 地址为 127.0.0.1,端口号为 8300 的 TiCDC 节点的状态信息。
1. curl -X GET http://127.0.0.1:8300/api/v2/status
1. {
2. "version": "v7.0.0-master-dirty",
3. "git_hash": "10413bded1bdb2850aa6d7b94eb375102e9c44dc",
4. "id": "d2912e63-3349-447c-90ba-72a4e04b5e9e",
5. "pid": 1447,
6. "is_owner": true,
7. "liveness": 0
8. }
以上返回信息的字段解释如下:
version:当前 TiCDC 版本号。git_hash:Git 哈希值。id:该节点的 capture ID。pid:该节点 capture 进程的 PID。is_owner:表示该节点是否是 owner。liveness: 该节点是否在线。0表示正常,1表示处于graceful shutdown状态。
检查 TiCDC 集群的健康状态
该接口是一个同步接口,在集群健康的时候会返回 200 OK。
请求 URI
GET /api/v2/health
使用样例
1. curl -X GET http://127.0.0.1:8300/api/v2/health
如果集群健康,则返回 200 OK 和一个空的 json {}:
1. {}
如果集群不健康,则返回错误信息。
创建同步任务
该接口用于向 TiCDC 提交一个同步任务,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
请求 URI
POST /api/v2/changefeeds
参数说明
1. {
2. "changefeed_id": "string",
3. "replica_config": {
4. "bdr_mode": true,
5. "case_sensitive": true,
6. "check_gc_safe_point": true,
7. "consistent": {
8. "flush_interval": 0,
9. "level": "string",
10. "max_log_size": 0,
11. "storage": "string"
12. },
13. "enable_old_value": true,
14. "enable_sync_point": true,
15. "filter": {
16. "do_dbs": [
17. "string"
18. ],
19. "do_tables": [
20. {
21. "database_name": "string",
22. "table_name": "string"
23. }
24. ],
25. "event_filters": [
26. {
27. "ignore_delete_value_expr": "string",
28. "ignore_event": [
29. "string"
30. ],
31. "ignore_insert_value_expr": "string",
32. "ignore_sql": [
33. "string"
34. ],
35. "ignore_update_new_value_expr": "string",
36. "ignore_update_old_value_expr": "string",
37. "matcher": [
38. "string"
39. ]
40. }
41. ],
42. "ignore_dbs": [
43. "string"
44. ],
45. "ignore_tables": [
46. {
47. "database_name": "string",
48. "table_name": "string"
49. }
50. ],
51. "ignore_txn_start_ts": [
52. 0
53. ],
54. "rules": [
55. "string"
56. ]
57. },
58. "force_replicate": true,
59. "ignore_ineligible_table": true,
60. "memory_quota": 0,
61. "mounter": {
62. "worker_num": 0
63. },
64. "sink": {
65. "column_selectors": [
66. {
67. "columns": [
68. "string"
69. ],
70. "matcher": [
71. "string"
72. ]
73. }
74. ],
75. "csv": {
76. "delimiter": "string",
77. "include_commit_ts": true,
78. "null": "string",
79. "quote": "string"
80. },
81. "date_separator": "string",
82. "dispatchers": [
83. {
84. "matcher": [
85. "string"
86. ],
87. "partition": "string",
88. "topic": "string"
89. }
90. ],
91. "enable_partition_separator": true,
92. "encoder_concurrency": 0,
93. "protocol": "string",
94. "schema_registry": "string",
95. "terminator": "string",
96. "transaction_atomicity": "string"
97. },
98. "sync_point_interval": "string",
99. "sync_point_retention": "string"
100. },
101. "sink_uri": "string",
102. "start_ts": 0,
103. "target_ts": 0
104. }
参数说明如下:
| 参数名 | 说明 |
|---|---|
changefeed_id |
STRING 类型,同步任务的 ID。(非必选) |
replica_config |
同步任务的配置参数。(非必选) |
sink_uri |
STRING 类型,同步任务下游的地址。(必选) |
start_ts |
UINT64 类型,指定 changefeed 的开始 TSO。TiCDC 集群将从这个 TSO 开始拉取数据。默认为当前时间。(非必选) |
target_ts |
UINT64 类型,指定 changefeed 的目标 TSO。达到这个 TSO 后,TiCDC 集群将停止拉取数据。默认为空,即 TiCDC 不会自动停止。(非必选) |
changefeed_id、start_ts、target_ts、sink_uri 的含义和格式与使用 cli 创建同步任务中所作的解释相同,具体解释请参见该文档。需要注意,当在 sink_uri 中指定证书的路径时,须确保已将对应证书上传到对应的 TiCDC server 上。
replica_config 参数说明如下:
| 参数名 | 说明 |
|---|---|
bdr_mode |
BOOLEAN 类型,是否开启双向同步复制。默认值为 false。(非必选) |
case_sensitive |
BOOLEAN 类型,过滤表名时大小写是否敏感,默认值为 true。(非必选) |
check_gc_safe_point |
BOOLEAN 类型,是否检查同步任务的开始时间早于 GC 时间,默认值为 true。(非必选) |
consistent |
Redo log 配置。(非必选) |
enable_old_value |
BOOLEAN 类型,是否输出 old value 值(即变更前的值),默认值为 true。(非必选) |
enable_sync_point |
BOOLEAN 类型,是否开启 sync point 功能。(非必选) |
filter |
filter 配置。(非必选) |
force_replicate |
BOOLEAN 类型,该值默认为 false,当指定为 true 时,同步任务会尝试强制同步没有唯一索引的表。(非必选) |
ignore_ineligible_table |
BOOLEAN 类型,该值默认为 false,当指定为 true 时,同步任务会忽略无法进行同步的表。(非必选) |
memory_quota |
UINT64 类型,同步任务的内存 quota。(非必选) |
mounter |
同步任务 mounter 配置。(非必选) |
sink |
同步任务的sink配置。(非必选) |
sync_point_interval |
STRING 类型,注意返回值为 UINT64 类型的纳秒级时间,sync point 功能开启时,对齐上下游 snapshot 的时间间隔。默认值为 10m,最小值为 30s。(非必选) |
sync_point_retention |
STRING 类型,注意返回值为 UINT64 类型的纳秒级时间,sync point 功能开启时,在下游表中保存的数据的时长,超过这个时间的数据会被清理。默认值为 24h。(非必选) |
consistent 参数说明如下:
| 参数名 | 说明 |
|---|---|
flush_interval |
UINT64 类型,redo log 文件 flush 间隔。(非必选) |
level |
STRING 类型,同步数据的一致性级别。(非必选) |
max_log_size |
UINT64 类型,redo log 的最大值。(非必选) |
storage |
STRING 类型,存储的目标地址。(非必选) |
filter 参数说明如下:
| 参数名 | 说明 |
|---|---|
do_dbs |
STRING ARRAY 类型,需要同步的数据库。(非必选) |
do_tables |
需要同步的表。(非必选) |
ignore_dbs |
STRING ARRAY 类型,不同步的数据库。(非必选) |
ignore_tables |
不同步的表。(非必选) |
event_filters |
event 过滤配置。(非必选) |
ignore_txn_start_ts |
UINT64 ARRAY 类型,指定之后会忽略指定 start_ts 的事务,如 [1, 2]。(非必选) |
rules |
STRING ARRAY 类型,表库过滤的规则,如 [‘foo.‘, ‘bar.‘]。详情请参考表库过滤。(非必选) |
filter.event_filters 参数说明如下,可参考日志过滤器。
| 参数名 | 说明 |
|---|---|
ignore_delete_value_expr |
STRING ARRAY 类型,如 “name = ‘john’” 表示过滤掉包含 name = ‘john’ 条件的 DELETE DML。(非必选) |
ignore_event |
STRING ARRAY 类型,如 [“insert”] 表示过滤掉 INSERT 事件。(非必选) |
ignore_insert_value_expr |
STRING ARRAY 类型,如 “id >= 100” 表示过滤掉包含 id >= 100 条件的 INSERT DML。(非必选) |
ignore_sql |
STRING ARRAY 类型,如 [“^drop”, “add column”] 表示过滤掉以 DROP 开头或者包含 ADD COLUMN 的 DDL。(非必选) |
ignore_update_new_value_expr |
STRING ARRAY 类型,如 “gender = ‘male’” 表示过滤掉新值 gender = ‘male’ 的 UPDATE DML。(非必选) |
ignore_update_old_value_expr |
STRING ARRAY 类型,如 “age < 18” 表示过滤掉旧值 age < 18 的 UPDATE DML。(非必选) |
matcher |
STRING ARRAY 类型,是一个白名单,如 [“test.worker”],表示该过滤规则只应用于 test 库中的 worker 表。(非必选) |
mounter 参数说明如下:
| 参数名 | 说明 |
|---|---|
worker_num |
INT 类型。Mounter 线程数,Mounter 用于解码 TiKV 输出的数据,默认值为 16。(非必选) |
sink 参数说明如下:
| 参数名 | 说明 |
|---|---|
column_selectors |
column selector 配置。(非必选) |
csv |
CSV 配置。(非必选) |
date_separator |
STRING 类型,文件路径的日期分隔类型。可选类型有 none、year、month 和 day。默认值为 none,即不使用日期分隔。(非必选) |
dispatchers |
事件分发配置数组。(非必选) |
encoder_concurrency |
INT 类型。MQ sink 中编码器的线程数。默认值为 16。(非必选) |
protocol |
STRING 类型,对于 MQ 类的 Sink,可以指定消息的协议格式。目前支持以下协议:canal-json、open-protocol、canal、avro 和 maxwell。 |
schema_registry |
STRING 类型,schema registry 地址。(非必选) |
terminator |
STRING 类型,换行符,用来分隔两个数据变更事件。默认值为空,表示使用 “\r\n” 作为换行符。(非必选) |
transaction_atomicity |
STRING 类型,事务一致性等级。(非必选) |
sink.column_selectors 是一个数组,元素参数说明如下:
| 参数名 | 说明 |
|---|---|
columns |
STRING ARRAY 类型,column 数组。 |
matcher |
STRING ARRAY 类型,matcher 配置,匹配语法和过滤器规则的语法相同。 |
sink.csv 参数说明如下:
| 参数名 | 说明 |
|---|---|
delimiter |
STRING 类型,字段之间的分隔符。必须为 ASCII 字符,默认值为 ,。 |
include_commit_ts |
BOOLEAN 类型,是否在 CSV 行中包含 commit-ts。默认值为 false。 |
null |
STRING 类型,如果这一列是 null,那这一列该如何表示。默认是用 \N 来表示。 |
quote |
STRING 类型,用于包裹字段的引号字符。空值代表不使用引号字符。默认值为 “。 |
sink.dispatchers:对于 MQ 类的 Sink,可以通过该参数配置 event 分发器,支持以下分发器:default、ts、rowid、table 。分发规则如下:
default:有多个唯一索引(包括主键)时按照 table 模式分发;只有一个唯一索引(或主键)时按照 rowid 模式分发;如果开启了 old value 特性,按照 table 模式分发。ts:以行变更的 commitTs 做 Hash 计算并进行 event 分发。rowid:以所选的 HandleKey 列名和列值做 Hash 计算并进行 event 分发。table:以表的 schema 名和 table 名做 Hash 计算并进行 event 分发。
sink.dispatchers 是一个数组,元素参数说明如下:
| 参数名 | 说明 |
|---|---|
matcher |
STRING ARRAY 类型,匹配语法和过滤器规则的语法相同。 |
partition |
STRING 类型,事件分发的目标 partition。 |
topic |
STRING 类型,事件分发的目标 topic。 |
使用样例
以下请求会创建一个 ID 为 test5,sink_uri 为 blackhole:// 的同步任务。
1. curl -X POST -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/changefeeds -d '{"changefeed_id":"test5","sink_uri":"blackhole://"}'
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
响应体格式
1. {
2. "admin_job_type": 0,
3. "checkpoint_time": "string",
4. "checkpoint_ts": 0,
5. "config": {
6. "bdr_mode": true,
7. "case_sensitive": true,
8. "check_gc_safe_point": true,
9. "consistent": {
10. "flush_interval": 0,
11. "level": "string",
12. "max_log_size": 0,
13. "storage": "string"
14. },
15. "enable_old_value": true,
16. "enable_sync_point": true,
17. "filter": {
18. "do_dbs": [
19. "string"
20. ],
21. "do_tables": [
22. {
23. "database_name": "string",
24. "table_name": "string"
25. }
26. ],
27. "event_filters": [
28. {
29. "ignore_delete_value_expr": "string",
30. "ignore_event": [
31. "string"
32. ],
33. "ignore_insert_value_expr": "string",
34. "ignore_sql": [
35. "string"
36. ],
37. "ignore_update_new_value_expr": "string",
38. "ignore_update_old_value_expr": "string",
39. "matcher": [
40. "string"
41. ]
42. }
43. ],
44. "ignore_dbs": [
45. "string"
46. ],
47. "ignore_tables": [
48. {
49. "database_name": "string",
50. "table_name": "string"
51. }
52. ],
53. "ignore_txn_start_ts": [
54. 0
55. ],
56. "rules": [
57. "string"
58. ]
59. },
60. "force_replicate": true,
61. "ignore_ineligible_table": true,
62. "memory_quota": 0,
63. "mounter": {
64. "worker_num": 0
65. },
66. "sink": {
67. "column_selectors": [
68. {
69. "columns": [
70. "string"
71. ],
72. "matcher": [
73. "string"
74. ]
75. }
76. ],
77. "csv": {
78. "delimiter": "string",
79. "include_commit_ts": true,
80. "null": "string",
81. "quote": "string"
82. },
83. "date_separator": "string",
84. "dispatchers": [
85. {
86. "matcher": [
87. "string"
88. ],
89. "partition": "string",
90. "topic": "string"
91. }
92. ],
93. "enable_partition_separator": true,
94. "encoder_concurrency": 0,
95. "protocol": "string",
96. "schema_registry": "string",
97. "terminator": "string",
98. "transaction_atomicity": "string"
99. },
100. "sync_point_interval": "string",
101. "sync_point_retention": "string"
102. },
103. "create_time": "string",
104. "creator_version": "string",
105. "error": {
106. "addr": "string",
107. "code": "string",
108. "message": "string"
109. },
110. "id": "string",
111. "resolved_ts": 0,
112. "sink_uri": "string",
113. "start_ts": 0,
114. "state": "string",
115. "target_ts": 0,
116. "task_status": [
117. {
118. "capture_id": "string",
119. "table_ids": [
120. 0
121. ]
122. }
123. ]
124. }
参数说明如下:
| 参数名 | 说明 |
|---|---|
admin_job_type |
INTEGER 类型,admin 事件类型 |
checkpoint_time |
STRING 类型,同步任务当前 checkpoint 的格式化时间表示 |
checkpoint_ts |
STRING 类型,同步任务当前 checkpoint 的 TSO 表示 |
config |
同步任务配置,结构和含义与创建同步任务中的 replica_config 配置项相同 |
create_time |
STRING 类型,同步任务创建的时间 |
creator_version |
STRING 类型,同步任务创建时 TiCDC 的版本 |
error |
同步任务错误 |
id |
STRING 类型,同步任务 ID |
resolved_ts |
UINT64 类型,同步任务 resolved ts |
sink_uri |
STRING 类型,同步任务的 sink uri |
start_ts |
UINT64 类型,同步任务 start ts |
state |
STRING 类型,同步任务状态,状态可分为 normal、stopped、error、failed、finished |
target_ts |
UINT64 类型,同步任务的 target ts |
task_status |
同步任务分发的详细状态 |
task_status 参数说明如下:
| 参数名 | 说明 |
|---|---|
capture_id |
STRING 类型,Capture ID |
table_ids |
UINT64 ARRAY 类型,该 Capture 上正在同步的 table 的 ID |
error 参数说明如下:
| 参数名 | 说明 |
|---|---|
addr |
STRING 类型,Capture 地址 |
code |
STRING 类型,错误码 |
message |
STRING 类型,错误的详细信息 |
删除同步任务
该接口是幂等的(即其任意多次执行所产生的影响均与一次执行的影响相同),用于删除一个 changefeed 同步任务,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
请求 URI
DELETE /api/v2/changefeeds/{changefeed_id}
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要删除的同步任务 (changefeed) 的 ID |
使用样例
以下请求会删除 ID 为 test1 的同步任务。
1. curl -X DELETE http://127.0.0.1:8300/api/v2/changefeeds/test1
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
更新同步任务配置
该接口用于更新一个同步任务,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
修改 changefeed 配置需要按照暂停任务 -> 修改配置 -> 恢复任务的流程。
请求 URI
PUT /api/v2/changefeeds/{changefeed_id}
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要更新的同步任务 (changefeed) 的 ID |
请求体参数
1. {
2. "replica_config": {
3. "bdr_mode": true,
4. "case_sensitive": true,
5. "check_gc_safe_point": true,
6. "consistent": {
7. "flush_interval": 0,
8. "level": "string",
9. "max_log_size": 0,
10. "storage": "string"
11. },
12. "enable_old_value": true,
13. "enable_sync_point": true,
14. "filter": {
15. "do_dbs": [
16. "string"
17. ],
18. "do_tables": [
19. {
20. "database_name": "string",
21. "table_name": "string"
22. }
23. ],
24. "event_filters": [
25. {
26. "ignore_delete_value_expr": "string",
27. "ignore_event": [
28. "string"
29. ],
30. "ignore_insert_value_expr": "string",
31. "ignore_sql": [
32. "string"
33. ],
34. "ignore_update_new_value_expr": "string",
35. "ignore_update_old_value_expr": "string",
36. "matcher": [
37. "string"
38. ]
39. }
40. ],
41. "ignore_dbs": [
42. "string"
43. ],
44. "ignore_tables": [
45. {
46. "database_name": "string",
47. "table_name": "string"
48. }
49. ],
50. "ignore_txn_start_ts": [
51. 0
52. ],
53. "rules": [
54. "string"
55. ]
56. },
57. "force_replicate": true,
58. "ignore_ineligible_table": true,
59. "memory_quota": 0,
60. "mounter": {
61. "worker_num": 0
62. },
63. "sink": {
64. "column_selectors": [
65. {
66. "columns": [
67. "string"
68. ],
69. "matcher": [
70. "string"
71. ]
72. }
73. ],
74. "csv": {
75. "delimiter": "string",
76. "include_commit_ts": true,
77. "null": "string",
78. "quote": "string"
79. },
80. "date_separator": "string",
81. "dispatchers": [
82. {
83. "matcher": [
84. "string"
85. ],
86. "partition": "string",
87. "topic": "string"
88. }
89. ],
90. "enable_partition_separator": true,
91. "encoder_concurrency": 0,
92. "protocol": "string",
93. "schema_registry": "string",
94. "terminator": "string",
95. "transaction_atomicity": "string"
96. },
97. "sync_point_interval": "string",
98. "sync_point_retention": "string"
99. },
100. "sink_uri": "string",
101. "target_ts": 0
102. }
目前仅支持通过 API 修改同步任务的如下配置。
| 参数名 | 说明 |
|---|---|
target_ts |
UINT64 类型,指定 changefeed 的目标 TSO。(非必选) |
sink_uri |
STRING 类型,同步任务下游的地址。(非必选) |
replica_config |
sink 的配置参数, 必须是完整的配置。(非必选) |
以上参数含义与创建同步任务中的参数相同,此处不再赘述。
使用样例
以下请求会更新 ID 为 test1 的同步任务的 target_ts 为 32。
1. curl -X PUT -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/changefeeds/test1 -d '{"target_ts":32}'
若是请求成功,则返回 200 OK,若请求失败,则返回错误信息和错误码。响应的 JSON 格式以及字段含义与创建同步任务中的响应参数相同,此处不再赘述。
查询同步任务列表
该接口是一个同步接口,请求成功会返回 TiCDC 集群中所有同步任务 (changefeed) 的基本信息。
请求 URI
GET /api/v2/changefeeds
参数说明
查询参数
| 参数名 | 说明 |
|---|---|
state |
非必选,指定后将会只返回该状态的同步任务的信息 |
state 可选值为 all、normal、stopped、error、failed、finished。
若不指定该参数,则默认返回处于 normal、stopped、failed 状态的同步任务基本信息。
使用样例
以下请求查询所有状态 (state) 为 normal 的同步任务的基本信息。
1. curl -X GET http://127.0.0.1:8300/api/v2/changefeeds?state=normal
1. {
2. "total": 2,
3. "items": [
4. {
5. "id": "test",
6. "state": "normal",
7. "checkpoint_tso": 439749918821711874,
8. "checkpoint_time": "2023-02-27 23:46:52.888",
9. "error": null
10. },
11. {
12. "id": "test2",
13. "state": "normal",
14. "checkpoint_tso": 439749918821711874,
15. "checkpoint_time": "2023-02-27 23:46:52.888",
16. "error": null
17. }
18. ]
19. }
以上返回的信息的说明如下:
id:同步任务的 ID。state:同步任务当前所处的状态。checkpoint_tso:同步任务当前 checkpoint 的 TSO 表示。checkpoint_time:同步任务当前 checkpoint 的格式化时间表示。error:同步任务的错误信息。
查询特定同步任务
该接口是一个同步接口,请求成功会返回指定同步任务 (changefeed) 的详细信息。
请求 URI
GET /api/v2/changefeeds/{changefeed_id}
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要查询的同步任务 (changefeed) 的 ID |
使用样例
以下请求会查询 ID 为 test1 的同步任务的详细信息。
1. curl -X GET http://127.0.0.1:8300/api/v2/changefeeds/test1
响应的 JSON 格式以及字段含义与创建同步任务中的响应参数相同,此处不再赘述。
暂停同步任务
该接口暂停一个同步任务,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
请求 URI
POST /api/v2/changefeeds/{changefeed_id}/pause
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要暂停的同步任务 (changefeed) 的 ID |
使用样例
以下请求会暂停 ID 为 test1 的同步任务。
1. curl -X POST http://127.0.0.1:8300/api/v2/changefeeds/test1/pause
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
恢复同步任务
该接口恢复一个同步任务,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
请求 URI
POST /api/v2/changefeeds/{changefeed_id}/resume
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要恢复的同步任务 (changefeed) 的 ID |
请求体参数
1. {
2. "overwrite_checkpoint_ts": 0
3. }
| 参数名 | 说明 |
|---|---|
overwrite_checkpoint_ts |
UINT64 类型,恢复同步任务 (changefeed) 时重新指定的 checkpoint TSO |
使用样例
以下请求会恢复 ID 为 test1 的同步任务。
1. curl -X POST http://127.0.0.1:8300/api/v2/changefeeds/test1/resume -d '{}'
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
查询同步子任务列表
该接口是一个同步接口,请求成功会返回当前 TiCDC 集群中的所有同步子任务 (processor) 的基本信息。
请求 URI
GET /api/v2/processors
使用样例
1. curl -X GET http://127.0.0.1:8300/api/v2/processors
1. {
2. "total": 3,
3. "items": [
4. {
5. "changefeed_id": "test2",
6. "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e"
7. },
8. {
9. "changefeed_id": "test1",
10. "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e"
11. },
12. {
13. "changefeed_id": "test",
14. "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e"
15. }
16. ]
17. }
以上返回的信息的说明如下:
changefeed_id:同步任务的 ID。capture_id:Capture的 ID。
查询特定同步子任务
该接口是一个同步接口,请求成功会返回指定同步子任务 (processor) 的详细信息。
请求 URI
GET /api/v2/processors/{changefeed_id}/{capture_id}
参数说明
路径参数
| 参数名 | 说明 |
|---|---|
changefeed_id |
需要查询的子任务的 Changefeed ID |
capture_id |
需要查询的子任务的 Capture ID |
使用样例
以下请求查询 changefeed_id 为 test、capture_id 为 561c3784-77f0-4863-ad52-65a3436db6af 的同步子任务。一个同步子任务通过 changefeed_id 和 capture_id 来标识。
1. curl -X GET http://127.0.0.1:8300/api/v2/processors/test/561c3784-77f0-4863-ad52-65a3436db6af
1. {
2. "table_ids": [
3. 80
4. ]
5. }
以上返回的信息的说明如下:
table_ids:在这个 capture 上同步的 table 的 ID。
查询 TiCDC 服务进程列表
该接口是一个同步接口,请求成功会返回当前 TiCDC 集群中的所有服务进程 (capture) 的基本信息。
请求 URI
GET /api/v2/captures
使用样例
1. curl -X GET http://127.0.0.1:8300/api/v2/captures
1. {
2. "total": 1,
3. "items": [
4. {
5. "id": "d2912e63-3349-447c-90ba-72a4e04b5e9e",
6. "is_owner": true,
7. "address": "127.0.0.1:8300"
8. }
9. ]
10. }
以上返回的信息的说明如下:
id:capture的 ID。is_owner:该capture是否是 owner 。address:该capture的地址。
驱逐 owner 节点
该接口是一个异步的请求,请求成功会返回 200 OK。该返回结果表示服务器收到了执行命令指示,并不代表命令被成功执行。
请求 URI
POST /api/v2/owner/resign
使用样例
以下请求会驱逐 TiCDC 当前的 owner 节点,并会触发新一轮的选举,产生新的 owner 节点。
1. curl -X POST http://127.0.0.1:8300/api/v2/owner/resign
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
动态调整 TiCDC Server 日志级别
该接口是一个同步接口,请求成功会返回 200 OK。
请求 URI
POST /api/v2/log
请求参数
请求体参数
| 参数名 | 说明 |
|---|---|
log_level |
想要设置的日志等级 |
log_level 支持 zap 提供的日志级别:”debug”、”info”、”warn”、”error”、”dpanic”、”panic”、”fatal”。
使用样例
1. curl -X POST -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/log -d '{"log_level":"debug"}'
如果请求成功,则返回 200 OK。如果请求失败,则返回错误信息和错误码。
