From 349bb25a856d8d416e770b8b1b13873c7c3f993d Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Wed, 14 Jun 2023 14:23:07 +0800 Subject: [PATCH] ticdc: update ticdc time-zone docs (#14197) (#14226) --- ticdc/ticdc-server-config.md | 2 +- ticdc/ticdc-sink-to-mysql.md | 2 +- ticdc/troubleshoot-ticdc.md | 32 ++------------------------------ 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/ticdc/ticdc-server-config.md b/ticdc/ticdc-server-config.md index d25c21067f2c..40e49bf51091 100644 --- a/ticdc/ticdc-server-config.md +++ b/ticdc/ticdc-server-config.md @@ -23,7 +23,7 @@ summary: 了解 TiCDC 详细的命令行参数和配置文件定义。 - `cert`:TiCDC 创建 TLS 连接时使用的证书文件路径,PEM 格式,可选。 - `cert-allowed-cn`:TiCDC 创建 TLS 连接时使用的通用名称文件路径,可选。 - `key`:TiCDC 创建 TLS 连接时使用的证书密钥文件路径,PEM 格式,可选。 -- `tz`:TiCDC 服务使用的时区。TiCDC 在内部转换 `TIMESTAMP` 等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。(注意如果同时指定 `tz` 参数和 `sink-uri` 中的 `time-zone` 参数,TiCDC 进程内部使用 `tz` 指定的时区,sink 向下游执行时使用 `time-zone` 指定的时区) +- `tz`:TiCDC 服务使用的时区。TiCDC 在内部转换 `TIMESTAMP` 等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。(注意如果同时指定 `tz` 参数和 `sink-uri` 中的 `time-zone` 参数,TiCDC 进程内部使用 `tz` 指定的时区,sink 向下游执行时使用 `time-zone` 指定的时区,请保持二者一致。) - `cluster-id`:TiCDC 集群的 ID。可选,默认值为 `default`。`cluster-id` 是 TiCDC 集群的唯一标识,拥有相同 `cluster-id` 的 TiCDC 节点同属一个集群。长度最大为 128,需要符合正则表达式 `^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$`,且不能是以下值:`owner`,`capture`,`task`,`changefeed`,`job`,`meta`。 ## `cdc server` 配置文件说明 diff --git a/ticdc/ticdc-sink-to-mysql.md b/ticdc/ticdc-sink-to-mysql.md index b625fddf39e7..c59a2eec5b64 100644 --- a/ticdc/ticdc-sink-to-mysql.md +++ b/ticdc/ticdc-sink-to-mysql.md @@ -63,7 +63,7 @@ URI 中可配置的参数如下: | `ssl-ca` | 连接下游 MySQL 实例所需的 CA 证书文件路径(可选)。 | | `ssl-cert` | 连接下游 MySQL 实例所需的证书文件路径(可选)。 | | `ssl-key` | 连接下游 MySQL 实例所需的证书密钥文件路径(可选)。 | -| `time-zone` | 连接下游 MySQL 实例时使用的时区名称,从 v4.0.8 开始生效。(可选。如果不指定该参数,使用 TiCDC 服务进程的时区;如果指定该参数但使用空值,则表示连接 MySQL 时不指定时区,使用下游默认时区)。 | +| `time-zone` | 连接下游 MySQL 实例时使用的时区名称,从 v4.0.8 开始生效。(可选。如果不指定该参数,使用 TiCDC 服务进程的时区;如果指定该参数但使用空值,例如:`time-zone=""`,则表示连接 MySQL 时不指定时区,使用下游默认时区)。 | | `transaction-atomicity` | 指定事务的原子性级别(可选,默认值为 `none`)。当该值为 `table` 时 TiCDC 保证单表事务的原子性,当该值为 `none` 时 TiCDC 会拆分单表事务。 | 若需要对 Sink URI 中的数据库密码使用 Base64 进行编码,可以参考如下命令: diff --git a/ticdc/troubleshoot-ticdc.md b/ticdc/troubleshoot-ticdc.md index d282f5641b0a..8757fc8d9c73 100644 --- a/ticdc/troubleshoot-ticdc.md +++ b/ticdc/troubleshoot-ticdc.md @@ -81,37 +81,9 @@ Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. ``` -如果下游是特殊的 MySQL 环境(某种公有云 RDS 或某些 MySQL 衍生版本等),使用上述方式导入时区失败,就需要通过 sink-uri 中的 `time-zone` 参数指定下游的 MySQL 时区。可以首先在 MySQL 中查询其使用的时区: +如果下游是特殊的 MySQL 环境(某种公有云 RDS 或某些 MySQL 衍生版本等),使用上述方式导入时区失败,则可以通过设置 `time-zone` 为空值来使用下游默认时区,例如:`time-zone=""`。 -```shell -show variables like '%time_zone%'; -``` - -```shell -+------------------+--------+ -| Variable_name | Value | -+------------------+--------+ -| system_time_zone | CST | -| time_zone | SYSTEM | -+------------------+--------+ -``` - -然后在创建同步任务和创建 TiCDC 服务时使用该时区: - -```shell -cdc cli changefeed create --sink-uri="mysql://root@127.0.0.1:3306/?time-zone=CST" --server=http://127.0.0.1:8300 -``` - -> **注意:** -> -> CST 可能是以下四个不同时区的缩写: -> -> - 美国中部时间:Central Standard Time (USA) UT-6:00 -> - 澳大利亚中部时间:Central Standard Time (Australia) UT+9:30 -> - 中国标准时间:China Standard Time UT+8:00 -> - 古巴标准时间:Cuba Standard Time UT-4:00 -> -> 在中国,CST 通常表示中国标准时间,使用时请注意甄别。 +在 TiCDC 中使用时区时,建议显式指定时区,例如:`time-zone="Asia/Shanghai"`。同时,请确保 TiCDC Server 的 `tz` 时区配置、Sink URI 中的 `time-zone` 时区配置和下游数据库的时区配置保持一致。这样可以避免因时区不一致导致的数据不一致问题。 ## 如何处理升级 TiCDC 后配置文件不兼容的问题?