实例概况
版本、角色、运行时长、各库大小;连接快满时 WARN/FAIL。
从一个问题开始
以下是命令使用示例,不是现场执行结果。先编译二进制并拷到数据库主机。
# 1. 这是个什么实例,连接快满了吗?
~/kbdiag status
# 2. 有没有人在等锁,被谁挡住?
~/kbdiag locks
# 3. 顺着 finding 的 verify 行往下看
~/kbdiag session <pid>看 · 查 · 顺藤摸瓜
~/kbdiag status
echo $?
~/kbdiag sessions
~/kbdiag locks
~/kbdiag txn
verify: kbdiag session 435308
只要这一个二进制。它自己实现线协议,不需要 ksql 或任何运行时;以 kingbase OS 用户走本地 socket 连接即可。
不会。每个连接都是只读事务并设了 lock_timeout。ROLLBACK PREPARED 之类的处理语句只打印出来让你判断,从不执行。
kbdiag 2.0 是 Go 重写版,首个版本覆盖会话、锁、事务、等待、实例概况和复制槽。shell 版(v1.x)已冻结,需要它的其他命令请用 v1.0.0。
开始第一次检查编译静态二进制,拷到 KingbaseES V8R6 主机,从 status 和 sessions 开始。