tidb timestamp 类型数据同步有问题

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:tidb 4.0
  • 【问题描述】:利用mydumper 导出,loader 导入timestamp列值和原值比较少了8小时。
    mydumper 命令:./mydumper -h 10.0.74.91 -P xx -u mysql2tidb --password=‘x’x’x@#$23xxx4’ -t 4 -F 32 -B test -T testtock_detail15 -o /data/chetest3
    loader 命令:# 日志输出等级;可以设置为 debug, info, warn, error, fatal (默认为 “info”)
    log-level = “info”

指定 loader 日志目录

log-file = “loader.log”

需要导入的数据存放路径 (default “./”)

dir = “/data/chetest3”

Prometheus 可以通过该地址拉取 Loader metrics, 也是 Loader 的 pprof 调试地址 (默认为 “:8272”)。

status-addr = “:8272”

checkpoint 数据库名,loader 在运行过程中会不断的更新这个数据库,在中断并恢复后,

会通过这个库获取上次运行的进度 (默认为 “tidb_loader”)

checkpoint-schema = “che_loader”

线程数 (默认为 16). 每个线程同一时刻只能操作一个数据文件。

pool-size = 6

目标数据库信息

[db]
host = "嘻嘻嘻、
"
user = “che_test”
password = "x’x’x60@#$234"xxx
port = 4000

导入数据时数据库连接所使用的 session 级别的 sql_mode。如果 sql-mode 的值没有提供或者设置为 “@DownstreamDefault”,会使用下游 global 级别的 sql_mode

sql-mode = “”

max-allowed-packet 设置数据库连接允许的最大数据包大小,对应于系统参数中的 max_allowed_packet。 如果设置为 0,会使用下游数据库 global 级别的 max_allowed_packet

max-allowed-packet = 67108864

sharding 同步规则,采用 wildcharacter

1. 星号字符 (*) 可以匹配零个或者多个字符,

例子, doc* 匹配 doc 和 document, 但是和 dodo 不匹配;

星号只能放在 pattern 结尾,并且一个 pattern 中只能有一个

2. 问号字符 (?) 匹配任一一个字符

[[route-rules]]
pattern-schema = “testccountintestg”
pattern-table = “teststock_detail*”
target-schema = "chetest"test
target-table = “teststock_detail”
mysql 得时区为
image
tidb得时区为:| system_time_zone | Asia/Shanghai |
| time_zone | SYSTEM |

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

麻烦在 mydumper 备份的时候加上 --skip-tz-utc 选项试下
添加 --skip-tz-utc 参数后,会忽略掉 TiDB 与导数据的机器之间时区设置不一致的情况,禁止自动转换

弱弱得问一下:tidb中得时区 system_time_zone | Asia/Shanghai 和mysql中得时区cst,time_zone不一样吗

TiDB 中的时区与 MySQL 中的时区是有一些区别的,具体可以参考一下:

https://docs.pingcap.com/zh/tidb/stable/configure-time-zone#时区支持

如果还有疑问的,可以继续提问

感谢~~~~~

客气,如果有新的问题,欢迎开贴提问

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。