升级5.1.1 小问题
--2021-08-25 春雷
1、前言
TiDB 5.1.1 发版日期:2021 年 7 月 30 日 ,也很长时间了,近期我们新部署的集群使用5.1.1,已有的集群进行了部分集群版本升级至5.1.1。
发现了一些问题,分享下
但性能提升还是很明显的~如果大家要升级的话,要注意下下面的问题~
2、问题汇总
3、问题1详细
此处使用5.0.3 版本举例,同5.1.1 是一样的
现象: kill tidb xxx ,但连接还是存在,与4.0.2 的立即释放现象 不同
4.0.2版本的情况:立即就释放了
4、问题2详细
升级后,大致看了下监控情况,业务流量正常
DBA没有仔细注意到这个失败的SQL数量及连接数情况
问题:
- 升级前的连接数几百个,升级后连接数持续增长,到单个实例9w+
- 导致TiDB实例内存吃满oom,影响了业务
- 升级后Failed Query OPM 数量增加
【监控情况如下】:
分析:
TiDB日志报错:
原因: 用户执行了:set session transaction read only 导致
参考回答:
这个是预期的。这么做的目的,是显式提醒 ‘read_only’ 变量在 TiDB 中并不真正生效(即属于 ‘noop’ 行为)。
举个例子,对于只读业务,我们一般在 MySQL 中设置 ‘read_only’ 系统变量让系统变为只读模式。但在 TiDB 中即便设置了这个变量,集群仍然是可写的。
将来我们计划支持真正的只读模式,到那时 read_only 会被移出 ‘tidb_enable_noop_functions’ 的控制。
参考wiki:
jdbc连接tidb5.1.1连接报异常 只读场景 开发者&应用适配
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【TiDB 版本】:v5.1.1 tikv v5.1.1 pd v5.1.1 tidb v5.1.1 【问题描述】:从v5.0.3 升级到v5.1.1后 spark 报: java.sql.SQLSyntaxErrorException: function READ ONLY has only noop implementa…
处理: set global tidb_enable_noop_functions=1;
5、问题3详细
问题: 5.1.1用管理账号执行show config;命令开始提示权限拒绝了;5.0.2没有这个问题;也就是5.1.1 查看配置需要CONFIG的权限了
报错: ERROR 1227 (42000): Access denied; you need (at least one of) the CONFIG privilege(s) for this operation
其他:5.0.2是可以的
5.0.2的现象:
5.1.1情况: