【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
由于发版,业务在没有之后
通过什么参数或者指标可以观察tidb 所有节点已经没有业务数据写入了
比如 mysql 可以 show master status 观察没有binlog 在动了 。。tidb 用什么呢
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
由于发版,业务在没有之后
通过什么参数或者指标可以观察tidb 所有节点已经没有业务数据写入了
比如 mysql 可以 show master status 观察没有binlog 在动了 。。tidb 用什么呢
【附件:截图/日志/监控】
select count(*) from INFORMATION_SCHEMA.CLUSTER_PROCESSLIST t
where t.COMMAND<>‘Sleep’
返回值=1就是没有活动的sql了,多查几次
第一个可以看看INFORMATION_SCHEMA.CLUSTER_PROCESSLIST,如果没有连接那肯定没写入了,不过有连接也不一定代表一定就有写入,所以我猜你是想要类似于mysql里show master status看看binlog位点有没有变化来确定有没有写入,不过tidb里show master status是tso,用这个不能确定是否还有写入。我想到的办法一个是直接设置只读,保证集群无法写入,另一个可以看看监控里的ops,看看是否有写入
不能设置只读,就是确保应用都正常写入完。没有写流量在进来
我觉得区分不出来,毕竟数据库系统自己也有定时任务在执行。
各节点的qps 啊🤔,这个可以吧
压力小,开下genlog
dashboard上有active connection指标,如果显示0,则表示没有活跃会话了
这个办法好,这个可以变相监控所有sql了。
送我一朵小红花
一种就是监控<>'Sleep’的连接,用脚本持续监控,还有一种就是打开general_log
general log 是与 MySQL 兼容的功能,开启后能够记录数据库执行的所有 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 tidb_general_log
开启该功能。在之前的版本中,general log 的内容只能和其他信息一起写入实例日志中,这对于需要长期保存日志的用户来说并不方便。
从 v8.0.0 开始,你可以通过配置项 log.general-log-file
指定一个文件名,将 general log 单独写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。
查看面板
直接看dashboard sql-statements 吧
流量可视化或者看看连接有没有正在执行的sql
方法好像很多,看监控,查连接。