降级到v6.1.5版本,程序连接集群,最后经常报截图中的错误

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.1.5
【复现路径】tidb集群主库为:v6.5.0版本,程序连接集群,不报错误。从库集群为了同时支持tiflash和接收上游ticdc的数据同步,降级到v6.1.5版本,但是,程序连接集群,研发人员反馈最近经常报如下截图中的错误。
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】

1 个赞

程序连接的是主库还是从库 ????

这种错误 从经验看像是 驱动的问题。

程序连接的是从库集群,出现上面截图的报错。程序连接主库没有问题。唯一的不同,就是两套集群的版本不同。

重点 排查下 驱动吧。 或者 有什么白名单不 ?

看看负载情况

1、tidb主库集群为:v6.5.0版本,程序连接集群,不报错误。
2、tidb从库集群为:v6.5.0版本,程序连接集群,不报错误。
3、近期为了同时支持tiflash和接收上游ticdc的数据同步,将tidb从库集群,降级到v6.1.5版本。
4、但是,降级版本后,程序连接tidb从库集群,研发人员反馈最近经常报截图中的错误。

怀疑可能是tidb版本或程序使用的驱动的版本问题,我这边再和开发人员确认调整一下驱动版本试下。

在论坛里,看到一个这个帖子,挺错的:

1 个赞

空闲连接超时了吧。建议调整空闲连接超时时长,或者应用方在连接池加检测机制。

设置重连机制没。 就是jdbc重连

扩容吧

不懂。。主库高版本,从库低版本,没问题吗?

mysql> show variables like 'wait_timeout';       
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| wait_timeout  | 172800 |
+---------------+--------+
1 row in set (0.00 sec)

mysql> show variables like 'interactive_timeout';
+---------------------+--------+
| Variable_name       | Value  |
+---------------------+--------+
| interactive_timeout | 172800 |
+---------------------+--------+
1 row in set (0.00 sec)

mysql> show variables like 'max_execution_time';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_execution_time | 0     |
+--------------------+-------+
1 row in set (0.00 sec)

这个是因为主从库集群都是从v5.4.0版本升级到v6.5.0版本后,从库集群出现tiflash和上游ticdc无法共存的问题,官方的技术大佬,给出现的临时解决方案,降级从库集群的版本为v6.1.5才得以解决。

但是,主从库集群版本不同,从库又引入了新问题,就是报错截图的那个问题。

tiflash和上游ticdc无法共存的原因是不是, ticdc 版本过低导致与高版本的tiflash 不能兼容?

参数已经设置得很大了,建议让应用程序修改连接池配置。


https://docs.pingcap.com/zh/tidb/stable/java-app-best-practices#探活配置

您把 jdbc 连接串信息发来看下

  url: jdbc:mysql://[10.3.xx.190:4000/my_db?characterEncoding=UTF-8&characterSetResults=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowMultiQueries=true&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSqlLimit=10240&prepStmtCacheSize=1000&rewriteBatchedStatements=true&useConfigs=maxPerformance&zeroDateTimeBehavior=convertToNull](http://10.4.7.190:4000/maindb?characterEncoding=UTF-8&characterSetResults=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowMultiQueries=true&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSqlLimit=10240&prepStmtCacheSize=1000&rewriteBatchedStatements=true&useConfigs=maxPerformance&zeroDateTimeBehavior=convertToNull)

研发人员反馈说,尝过添加重连接机制,也是报同样的问题。

命令行mysql client可以连接吗?你们这操作太骚了

为何要降版本