【 TiDB 使用环境】生产环境
【 TiDB 版本】5.4.1
【遇到的问题】请教下: 在开启特定tidb-server时,什么样的SQL或者什么情况下,SQL语句不被记录到 general_log 中 ?
【复现路径】
DBA用脚本访问 zabbix 服务,而zabbix 又连接到某个tidb-server实例来存储和操作其元数据。具体是通过脚本访问zabbix service API来达到间接删除某个表中的某些记录的效果,但是在该 tidb-server 上已经开启 tidb_general_log 的情况下,并没有记录到 特定表的 delete from 语句,而只记录到select语句。
说明: 大致逻辑:
(1) 脚本是先间接做某个字段的模糊查询 (SELECT someid… FROM t LIKE …语句被记录到general_log条目):
select xid,name,ipset from twhere ipset like ‘%$ip%’;
(2) 然后再按照查询到的表的主键值 来删除 (没有记录到general_log条目)
这一步是在zabbix server端向tidb-server 发送并执行一个 delete 操作。
【问题现象及影响】
主要是对tidb-server产生疑惑,也看到了记录general_log 有个条件 InRestrictedSQL 变量要是 false,但是这个路径似乎太多了,从tidb代码里无法直接 快速 推断。故而请教:什么情况下会不记录SQL语句到已开启的general_log中。
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。