From a0f8415033622552bbb6d24f9003af150ed38260 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 8 Jul 2020 15:11:30 +0800 Subject: [PATCH 1/3] Add cyclic replication and configuration file in TiCDC deploy doc --- media/cdc-cyclic-replication.png | Bin 0 -> 17163 bytes ticdc/manage-ticdc.md | 183 +++++++++++++++++++++++++++++-- 2 files changed, 172 insertions(+), 11 deletions(-) create mode 100644 media/cdc-cyclic-replication.png diff --git a/media/cdc-cyclic-replication.png b/media/cdc-cyclic-replication.png new file mode 100644 index 0000000000000000000000000000000000000000..90bd33baf35e1609b6f6be332c948f1b26ec300d GIT binary patch literal 17163 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 ZX+lBcX9vEY4Zz*~44$rjF6*2UngBd?Jp%v$ literal 0 HcmV?d00001 diff --git a/ticdc/manage-ticdc.md b/ticdc/manage-ticdc.md index 4019ca264a8b1..b9db64ea6f51e 100644 --- a/ticdc/manage-ticdc.md +++ b/ticdc/manage-ticdc.md @@ -56,7 +56,7 @@ The following are descriptions of options available in the `cdc server` command: ## Use `cdc cli` to manage cluster status and data replication task -This section introduces how to use `cdc cli` to manage a TiCDC cluster and data replication tasks. The following interface description assumes that PD listens on `127.0.0.1` and the port is `2379`. +This section introduces how to use `cdc cli` to manage a TiCDC cluster and data replication tasks. The following interface description assumes that PD listens on `10.0.10.25` and the port is `2379`. ### Manage TiCDC service progress (`capture`) @@ -65,7 +65,7 @@ This section introduces how to use `cdc cli` to manage a TiCDC cluster and data {{< copyable "shell-regular" >}} ```shell - cdc cli capture list --pd=http://127.0.0.1:2379 + cdc cli capture list --pd=http://10.0.10.25:2379 ``` ``` @@ -90,7 +90,7 @@ Execute the following commands to create a replication task: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed create --pd=http://127.0.0.1:2379 --sink-uri="mysql://root:123456@127.0.0.1:3306/" +cdc cli changefeed create --pd=http://10.0.10.25:2379 --sink-uri="mysql://root:123456@127.0.0.1:3306/" create changefeed ID: 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f info {"sink-uri":"mysql://root:123456@127.0.0.1:3306/","opts":{},"create-time":"2020-03-12T22:04:08.103600025+08:00","start-ts":415241823337054209,"target-ts":0,"admin-job-type":0,"config":{"filter-case-sensitive":false,"filter-rules":null,"ignore-txn-start-ts":null}} ``` @@ -144,6 +144,19 @@ Configure `--sink-uri` according to the following format. Currently, the scheme | `partition-num` | The number of the downstream Kafka partitions (Optional. The value must be **no greater than** the actual number of partitions. If you do not configure this parameter, the partition number is obtained automatically.) | | `max-message-bytes` | The maximum size of data that is sent to Kafka broker each time (optional, `64MB` by default) | | `replication-factor` | The number of Kafka message replicas that can be saved (optional, `1` by default) | + | `protocol` | The protocol with which messages are output to Kafka. The optional values are `default` and `canal` (`default` by default.) | + +For more replication configuration (for example, specify replicating a single table), see [Task configuration file](#task-configuration-file). + +You can use a configuration file to create a replication task in the following way: + +{{< copyable "shell-regular" >}} + +```shell +cdc cli changefeed create --pd=http://10.0.10.25:2379 --sink-uri="mysql://root:123456@127.0.0.1:3306/" --config changefeed.toml +``` + +In the command above, `changefeed.toml` is the configuration file for the replication task. #### Query the replication task list @@ -152,7 +165,7 @@ Execute the following command to query the replication task list: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed list --pd=http://127.0.0.1:2379 +cdc cli changefeed list --pd=http://10.0.10.25:2379 ``` ``` @@ -170,7 +183,7 @@ Execute the following command to query a specific replication task: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed query --pd=http://127.0.0.1:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f +cdc cli changefeed query --pd=http://10.0.10.25:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f ``` The information returned consists of `"info"` and `"status"` of the replication task. @@ -215,7 +228,7 @@ Execute the following command to pause a replication task: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed pause --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f +cdc cli changefeed pause --pd=http://10.0.10.25:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f ``` In the above command: @@ -229,7 +242,7 @@ Execute the following command to resume a paused replication task: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed resume --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f +cdc cli changefeed resume --pd=http://10.0.10.25:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f ``` In the above command: @@ -243,7 +256,7 @@ Execute the following command to remove a replication task: {{< copyable "shell-regular" >}} ```shell -cdc cli changefeed remove --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f +cdc cli changefeed remove --pd=http://10.0.10.25:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f ``` In the above command: @@ -257,7 +270,7 @@ In the above command: {{< copyable "shell-regular" >}} ```shell - cdc cli processor list --pd=http://127.0.0.1:2379 + cdc cli processor list --pd=http://10.0.10.25:2379 ``` ``` @@ -275,7 +288,7 @@ In the above command: {{< copyable "shell-regular" >}} ```shell - cdc cli processor query --pd=http://127.0.0.1:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f + cdc cli processor query --pd=http://10.0.10.25:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f ``` ``` @@ -300,7 +313,7 @@ In the above command: ## Use HTTP interface to manage cluster status and data replication task -Currently, the HTTP interface provides some basic features for query and maintenance. +Currently, the HTTP interface provides some basic features for query and maintenance. In the following examples, suppose that the TiCDC server listens on `127.0.0.1`, and the port is `8300` (you can specify the IP and port in `--addr=ip:port` when starting the TiCDC server). @@ -351,3 +364,151 @@ For nodes other than owner nodes, executing the above command will return the fo ``` election: not leader ``` + +## Task configuration file + +This section introduces the configuration of a replication task. + +```toml +# Specifies whether the database names and tables in the configuration file are case-sensitive. +# The default value is true. +# This configuration item affects configurations related to filter and sink. +case-sensitive = true +[filter] +# Ignores the transaction of specified start_ts. +ignore-txn-start-ts = [1, 2] +# Filter rules. +# Filter syntax: https://github.com/pingcap/tidb-tools/tree/master/pkg/table-filter#syntax. +rules = ['*.*', '!test.*'] +[mounter] +# mounter thread counts, which is used to decode the TiKV output data. +worker-num = 16 +[sink] +# For the sink of MQ type, you can use dispatchers to configure the event dispatcher. +# Supports four dispatchers: default, ts, rowid, and table +dispatchers = [ + {matcher = ['test1.*', 'test2.*'], dispatcher = "ts"}, + {matcher = ['test3.*', 'test4.*'], dispatcher = "rowid"}, +] +# For the sink of MQ type, you can specify the protocol format of the message. +# Currently two protocols are supported: default and canal. The default protocol default is TiCDC Open Protocol. +protocol = "default" +[cyclic-replication] +# Whether to enable cyclic replication. +enable = false +# The replica ID of the current TiCDC. +replica-id = 1 +# The replica ID to be filtered. +filter-replica-ids = [2,3] +# Whether to replicate DDL statements. +sync-ddl = true +``` + +### Notes for compatibility + +* In TiCDC v4.0.0, `ignore-txn-commit-ts` is removed and `ignore-txn-start-ts` is added, which uses start_ts to filter transactions. +* In TiCDC v4.0.2, `db-dbs`/`db-tables`/`ignore-dbs`/`ignore-tables` are removed and `rules` is added, which uses new filter rules for databases and tables. For detailed filter syntax, see [Table Filter](https://github.com/pingcap/tidb-tools/blob/master/pkg/table-filter/README.md). + +## Cyclic replication + +> **Warning:** +> +> Currently (v4.0.2), cyclic replication is still an experimental feature. It is **NOT** recommended to use it in the production environment. + +The cyclic replication feature supports replicating data across multiple independent TiDB clusters. For example, TiDB clusters A, cluster B, and cluster C all have a table named `test.user_data`, with respective written data into this table. With the cyclic replication feature, the data written into `test.user_data` in one cluster can be replicated to the other two clusters, so that the `test.user_data` table in the three clusters is consistent with each other. + +### Usage example + +Enable cyclic replication in the three clusters of A, B, and C. Two TiCDC clusters are used for the replication from cluster A to cluster B. Among the three clusters, DDL statements enters cluster A first. + +![TiCDC cyclic replication](/media/cdc-cyclic-replication.png) + +To use the cyclic replication feature, you need to configure the following parameters for the replication task upon the task creation. + ++ `--cyclic-replica-id`: Specifies the data source (to be written) ID of the upstream cluster. Each cluster ID must be unique. ++ `--cyclic-filter-replica-ids`: Specifies the data source ID to be filtered, which is usually the downstream cluster ID. ++ `--cyclic-sync-ddl`: Determines whether to replicate DDL statements to the downstream. DDL replication can only be enabled in the TiCDC component of one cluster. + +Take the following steps to create a cyclic replication task: + +1. [Enable the TiCDC component](#deploy-ticdc) in TiDB cluster A, cluster B, and cluster C. + + {{< copyable "shell-regular" >}} + + ```shell + # Enables TiCDC in cluster A. + cdc server \ + --pd="http://${PD_A_HOST}:${PD_A_PORT}" \ + --log-file=ticdc_1.log \ + --addr=0.0.0.0:8301 \ + --advertise-addr=127.0.0.1:8301 + # Enables TiCDC in cluster B. + cdc server \ + --pd="http://${PD_B_HOST}:${PD_B_PORT}" \ + --log-file=ticdc_2.log \ + --addr=0.0.0.0:8301 \ + --advertise-addr=127.0.0.1:8301 + # Enables TiCDC in cluster C. + cdc server \ + --pd="http://${PD_C_HOST}:${PD_C_PORT}" \ + --log-file=ticdc_3.log \ + --addr=0.0.0.0:8301 \ + --advertise-addr=127.0.0.1:8301 + ``` + +2. Create the mark tables used for the cyclic replication in cluster A, cluster B, and cluster C. + + {{< copyable "shell-regular" >}} + + ```shell + # Creates mark tables in cluster A. + cdc cli changefeed cyclic create-marktables \ + --cyclic-upstream-dsn="root@tcp(${TIDB_A_HOST}:${TIDB_A_PORT})/" \ + --pd="http://${PD_A_HOST}:${PD_A_PORT}" + # Creates mark tables in cluster B. + cdc cli changefeed cyclic create-marktables \ + --cyclic-upstream-dsn="root@tcp(${TIDB_B_HOST}:${TIDB_B_PORT})/" \ + --pd="http://${PD_B_HOST}:${PD_B_PORT}" + # Creates mark tables in cluster C. + cdc cli changefeed cyclic create-marktables \ + --cyclic-upstream-dsn="root@tcp(${TIDB_C_HOST}:${TIDB_C_PORT})/" \ + --pd="http://${PD_C_HOST}:${PD_C_PORT}" + ``` + +3. Create the cyclic replication task in cluster A, cluster B, and cluster C. + + {{< copyable "shell-regular" >}} + + ```shell + # Creates the cyclic replication task in cluster A. + cdc cli changefeed create \ + --sink-uri="mysql://root@${TiDB_B_HOST}/" \ + --pd="http://${PD_A_HOST}:${PD_A_PORT}" \ + --cyclic-replica-id 1 \ + --cyclic-filter-replica-ids 2 \ + --cyclic-sync-ddl true + # Creates the cyclic replication task in cluster B. + cdc cli changefeed create \ + --sink-uri="mysql://root@${TiDB_C_HOST}/" \ + --pd="http://${PD_B_HOST}:${PD_B_PORT}" \ + --cyclic-replica-id 2 \ + --cyclic-filter-replica-ids 3 \ + --cyclic-sync-ddl true + # Creates the cyclic replication task in cluster C. + cdc cli changefeed create \ + --sink-uri="mysql://root@${TiDB_A_HOST}/" \ + --pd="http://${PD_C_HOST}:${PD_C_PORT}" \ + --cyclic-replica-id 3 \ + --cyclic-filter-replica-ids 1 \ + --cyclic-sync-ddl false + ``` + +### Usage notes + ++ Before creating the cyclic replication task, you must execute `cdc cli changefeed cyclic create-marktables` to create the mark tables for the cyclic replication. ++ Tables with cyclic replication enabled only contain the [a-zA-Z0-9_] characters. ++ Before creating the cyclic replication task, the tables for the task must be created. ++ After enabling the cyclic replication, you cannot create a table that will be replicated by the cyclic replication task. ++ To perform online DDL operations, ensure the following requirements are met: + - The TiCDC components of multiple clusters form a one-way DDL replication chain, which is not cyclic. For example, in the example above, only the TiCDC component of cluster C disables `sync-ddl`. + - DDL operations must be performed on the cluster that is the starting point of the one-way DDL replication chain. \ No newline at end of file From 3818bff779c259678e484ba684260810614add58 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 13 Jul 2020 20:04:52 +0800 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Ran --- ticdc/manage-ticdc.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ticdc/manage-ticdc.md b/ticdc/manage-ticdc.md index b9db64ea6f51e..0cfa67fe99147 100644 --- a/ticdc/manage-ticdc.md +++ b/ticdc/manage-ticdc.md @@ -391,7 +391,7 @@ dispatchers = [ {matcher = ['test3.*', 'test4.*'], dispatcher = "rowid"}, ] # For the sink of MQ type, you can specify the protocol format of the message. -# Currently two protocols are supported: default and canal. The default protocol default is TiCDC Open Protocol. +# Currently two protocols are supported: default and canal. The default protocol is TiCDC Open Protocol. protocol = "default" [cyclic-replication] # Whether to enable cyclic replication. @@ -406,8 +406,8 @@ sync-ddl = true ### Notes for compatibility -* In TiCDC v4.0.0, `ignore-txn-commit-ts` is removed and `ignore-txn-start-ts` is added, which uses start_ts to filter transactions. -* In TiCDC v4.0.2, `db-dbs`/`db-tables`/`ignore-dbs`/`ignore-tables` are removed and `rules` is added, which uses new filter rules for databases and tables. For detailed filter syntax, see [Table Filter](https://github.com/pingcap/tidb-tools/blob/master/pkg/table-filter/README.md). +* In TiCDC v4.0.0, `ignore-txn-commit-ts` is removed and `ignore-txn-start-ts` is added, which uses start_ts to filter transactions. +* In TiCDC v4.0.2, `db-dbs`/`db-tables`/`ignore-dbs`/`ignore-tables` are removed and `rules` is added, which uses new filter rules for databases and tables. For detailed filter syntax, see [Table Filter](/table-filter.md). ## Cyclic replication @@ -415,7 +415,7 @@ sync-ddl = true > > Currently (v4.0.2), cyclic replication is still an experimental feature. It is **NOT** recommended to use it in the production environment. -The cyclic replication feature supports replicating data across multiple independent TiDB clusters. For example, TiDB clusters A, cluster B, and cluster C all have a table named `test.user_data`, with respective written data into this table. With the cyclic replication feature, the data written into `test.user_data` in one cluster can be replicated to the other two clusters, so that the `test.user_data` table in the three clusters is consistent with each other. +The cyclic replication feature supports replicating data across multiple independent TiDB clusters. For example, TiDB clusters A, cluster B, and cluster C all have a table named `test.user_data` and write data into this table respectively. With the cyclic replication feature, the data written into `test.user_data` in one cluster can be replicated to the other two clusters, so that the `test.user_data` table in the three clusters is consistent with each other. ### Usage example @@ -429,7 +429,7 @@ To use the cyclic replication feature, you need to configure the following param + `--cyclic-filter-replica-ids`: Specifies the data source ID to be filtered, which is usually the downstream cluster ID. + `--cyclic-sync-ddl`: Determines whether to replicate DDL statements to the downstream. DDL replication can only be enabled in the TiCDC component of one cluster. -Take the following steps to create a cyclic replication task: +To create a cyclic replication task, take the following steps: 1. [Enable the TiCDC component](#deploy-ticdc) in TiDB cluster A, cluster B, and cluster C. @@ -506,9 +506,9 @@ Take the following steps to create a cyclic replication task: ### Usage notes + Before creating the cyclic replication task, you must execute `cdc cli changefeed cyclic create-marktables` to create the mark tables for the cyclic replication. -+ Tables with cyclic replication enabled only contain the [a-zA-Z0-9_] characters. ++ Tables with cyclic replication enabled only contain the `[a-zA-Z0-9_]` characters. + Before creating the cyclic replication task, the tables for the task must be created. + After enabling the cyclic replication, you cannot create a table that will be replicated by the cyclic replication task. + To perform online DDL operations, ensure the following requirements are met: - The TiCDC components of multiple clusters form a one-way DDL replication chain, which is not cyclic. For example, in the example above, only the TiCDC component of cluster C disables `sync-ddl`. - - DDL operations must be performed on the cluster that is the starting point of the one-way DDL replication chain. \ No newline at end of file + - DDL operations must be performed on the cluster that is the starting point of the one-way DDL replication chain, such as cluster A in the example above. From b26bf181a58d98b842af55ac38018ac2ef293ea2 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 13 Jul 2020 20:07:00 +0800 Subject: [PATCH 3/3] align blank lines --- ticdc/manage-ticdc.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ticdc/manage-ticdc.md b/ticdc/manage-ticdc.md index 0cfa67fe99147..3060cb8364109 100644 --- a/ticdc/manage-ticdc.md +++ b/ticdc/manage-ticdc.md @@ -374,15 +374,19 @@ This section introduces the configuration of a replication task. # The default value is true. # This configuration item affects configurations related to filter and sink. case-sensitive = true + [filter] # Ignores the transaction of specified start_ts. ignore-txn-start-ts = [1, 2] + # Filter rules. # Filter syntax: https://github.com/pingcap/tidb-tools/tree/master/pkg/table-filter#syntax. rules = ['*.*', '!test.*'] + [mounter] # mounter thread counts, which is used to decode the TiKV output data. worker-num = 16 + [sink] # For the sink of MQ type, you can use dispatchers to configure the event dispatcher. # Supports four dispatchers: default, ts, rowid, and table @@ -393,6 +397,7 @@ dispatchers = [ # For the sink of MQ type, you can specify the protocol format of the message. # Currently two protocols are supported: default and canal. The default protocol is TiCDC Open Protocol. protocol = "default" + [cyclic-replication] # Whether to enable cyclic replication. enable = false