drainer 下游同步类型选择以及遇到的错误

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

  • 【TiDB 版本】:v2.1.12
  • 【问题描述】:tidb增量备份drainer.toml配置
    当下游数据库为tidb时,该如何配置

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

如果下游是tidb的话,是直接将db-type修改为tidb吗,还是说不用修改,直接按照mysql来配置。谢谢

下游是 TiDB 的时候,在 db-type 部分配置: db-type=“tidb” 即可。文档示例是按照下游为 mysql 时做的 db-type 配置。

同步的过程中,总报这个错, 2020/05/07 10:38:01 sql.go:86: [error] [exec][sql]update a.table set id = ?, id = ? limit 1;[args][[54 97 101 52 97 97 53 53 52 101 102 98 52 50 50 52 100 49 102 53 101 101 97 101 48 97 55 55 52 98 52 102] [55 49 49 48 50 53 56

50 49 56 54 55 54 48 54 55 54 48 48] [229 186 183 228 189 179 229 134 176 231 174 177 229 136 154 229 136 176 228 184 128 229 185 180 229 176 177 229 142 139 231 188 169 230 156 186 229 15

7 143 228 186 134 239 188 140 229 173 152 229 156 168 228 184 165 233 135 141 232 180 168 233 135 143 233 151 174 233 162 152] 2020-05-06 12:46:52 2020-05-06 23:29:49 [82 69 80 85 84 65 84

73 79 78] [232 136 134 230 131 133] [48 101 54 50 98 51 49 102 97 53 99 56 50 98 50 98 101 101 100 54 101 51 55 100 98 49 57 57 53 55 99 100] [55 49 50 99 56 102 53 52 100 52 55 100 55 98

49 99 99 100 54 57 54 56 52 52 51 102 49 99 55 102 48 99] [48 101 54 50 98 51 49 102 97 53 99 56 50 98 50 98 101 101 100 54 101 51 55 100 98 49 57 57 53 55 99 100] 7 [229 186 183 228 189

179 233 155 134 229 155 162 232 130 161 228 187 189 230 156 137 233 153 144 229 133 172 229 143 184] [233 128 128 232 180 167 233 163 142 233 153 169] [50 57 48 57 99 56 98 102 100 50 54 5

1 49 102 99 55 54 50 52 100 55 98 98 57 102 97 102 101 49 99 100 50] [97 97 57 53 57 50 55 51 45 57 52 97 102 45 52 56 50 56 45 56 57 97 52 45 50 53 52 101 102 51 57 53 50 102 54 99] [0] [

1] [54 97 101 52 97 97 53 53 52 101 102 98 52 50 50 52 100 49 102 53 101 101 97 101 48 97 55 55 52 98 52 102]][error]Error 1265: Data Truncated

大概率是因为上下游 sql_mode 配置不一致,在同步过程中判断出现非法数据,如果不一致修改下 sql_mode 再开始同步任务观察下。如果还不行,可以提供 update 语句样例以及表结构和更多的日志信息,具体分析下。

sql mode修改一致了,均为STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
但是还是报一样的错误,sql是update …

目前暂时把sqlmode设置成空字符串就不报错了

上下游的 TiDB 版本是一致的吗?下游是什么版本?

版本一致

帮忙确认下:上游是否有改动过 sql_mode 或者该表是否有定义比较长的默认值。如果一直没修改过 sql_mode 且没有特别长 default 值,应该不会不会再同步阶段出现这个报错。

上游之前修改过sql_mode,该表没有定义比较长的默认值

那问题大概率发生在修改 sql_mode 前写入的一些数据。

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