码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 金仓数据库KingbaseES运维工具参考手册(4. 问题诊断辅助工具)


    目录

    4.1. 工具概述 ¶

    4.2. 脚本工具所在路径 ¶

    4.3. 配置数据库连接信息 ¶

    4.4. 工具代码及功能 ¶

    4.4.1. chk_current_waitevent.sh ¶

    4.4.2. chk_top_waitevent.sh ¶

    4.4.3. chk_event_sql.sh ¶

    4.4.4. chk_lock.sh ¶

    4.4.5. chk_top_sql.sh ¶

    4.4.6. chk_top_tableIO.sh ¶

    4.4.7. chk_top_tablephysicalIO.sh ¶

    4.4.8. chk_top_tableseqscanIO.sh ¶

    4.4.9. chk_top_indexIO.sh ¶

    4.4.10. chk_top_table_dml.sh ¶

    4.4.11. chk_top_wal.sh ¶


    4.1. 工具概述 ¶

    问题诊断辅助工具是针对KingbaseES V8.6数据库开发的一套问题诊断工具。方便用户在系统故障情况下,及时了解系统特定信息。

    为了保证脚本的通用性,本工具使用bash语法编写脚本,实际运行环境必须支持bash。

    本工具的使用需要获取查询语句及等待事件,要求开启track_activities参数。部分shell脚本还需要依赖于extension的开启,如:sys_stat_statement, sys_kwr,sys_ksh。以上插件的开启方法可以参照《 KingbaseES数据库性能调优指南 》文档。

    以下表格列出脚本及扩展组件的依赖关系。

    脚本名称

    扩展组件依赖

    chk_event_sql.sh

    sys_kwr及相关参数

    sys_stat_statements 及相关参数

    chk_top_sql.sh

    sys_stat_statements 及相关参数

    chk_top_waitevent.sh

    sys_stat_statements 及相关参数

    chk_top_wal.sh

    sys_stat_statements 及相关参数

    如果当前数据库系统是高可用集群系统,需要将数据库集群的密码文件,复制到root用户的根目录下。如果数据库集群的系统用户是kingbase用户,则通常的复制命令如下:

    kingbase$ su - root -c "cp $HOME/.encpwd ~ "
    
    

    4.2. 脚本工具所在路径 ¶

    本工具所涉及的脚本统一放在软件安装目录SupTools/kb_diagtool。

    4.3. 配置数据库连接信息 ¶

    在使用辅助工具前,先配置连接信息。用户读取通用参数文件(../suptools.ini),设置环境变量。根据用户的实际需求,修改通用参数文件。(详见 通用环境变量参数文件 )

    4.4. 工具代码及功能 ¶

    4.4.1. chk_current_waitevent.sh ¶

    4.4.1.1. 功能 ¶

    查看数据库当前会话的等待事件信息。通过统计各类事件数量、当前等待会话正在运行的SQL,可以大致确定系统状态。

    注意

    该工具信息取自sys_stat_activity,具体字段的含义可以参考sys_stat_activity 定义。

    4.4.2. chk_top_waitevent.sh ¶

    4.4.2.1. 功能 ¶

    查看过去60秒内的数据库等待事件,按等待事件数量排序,数据取自 perf.session_history 。

    4.4.2.2. 显示结果样例 ¶

    注意

    该工具的信息取自perf.session_history,如果报该表不存在,表示sys_ksh 没有正确启用。

    4.4.3. chk_event_sql.sh ¶

    4.4.3.1. 功能 ¶

    查看过去60秒内与特定等待事件相关的SQL。脚本运行时,需要特定的等待事件作为参数传入。等待事件可以根据chk_top_waitevent.sh结果,针对性进行分析。该脚本显示的数据取自 perf.session_history 。

    注意

    该脚本传入参数是一个等待事件,通常是3.4.2节返回的top waitevent,用于进一步查询具体哪些SQL导致了该等待事件。

    4.4.4. chk_lock.sh ¶

    4.4.4.1. 功能 ¶

    检查当前数据库锁等待的会话信息,及当前会话执行的SQL。通过层级显示,可以方便定位源头操作。

    输出信息解释如下:

    • 425715: 表示进程PID。

    • transactioid: 表示锁的类型,这里是事务锁。

    • Exclusive: 表示锁的模式,这里是独占锁。

    • Null: 表对象的名称。由于是事务锁,因此,这里为null。

    • Delete from t1 :表示引起锁的具体SQL。

    4.4.5. chk_top_sql.sh ¶

    4.4.5.1. 功能 ¶

    查询过去10秒,最耗时、逻辑IO最多、物理IO最多(扣除buffer hit)、临时块写入最多的SQL,每类选取5条(默认5条),分别列出,数据取自sys_stat_statement 。可以通过 chk_top_sql.sh $n ,返回 n 条记录。

    4.4.5.2. 显示结果样例 ¶

    4.4.6. chk_top_tableIO.sh ¶

    4.4.6.1. 功能 ¶

    查询过去10秒,IO 值最大的表。分别统计表的IO,表的索引IO,toast 对象的 IO ,数据取自pg_statio_all_tables 。这里的IO包括缓冲区读取和磁盘物理读取。

    4.4.7. chk_top_tablephysicalIO.sh ¶

    4.4.7.1. 功能 ¶

    查询过去10秒,物理IO 值最大的表(数量可传参数)。分别统计表的IO,表的索引IO,toast 对象的 IO,数据取自pg_statio_all_tables,与chk_top_table IO不同,这里的IO只包括磁盘物理读取。

    4.4.8. chk_top_tableseqscanIO.sh ¶

    4.4.8.1. 功能 ¶

    查询过去10秒,全表扫描的IO数量最大的表。全表扫描的IO数量是seq_scan次数与表大小的乘积,数据取自pg_stat_sys_tables。

    4.4.8.2. 显示结果样例 ¶

    4.4.9. chk_top_indexIO.sh ¶

    4.4.9.1. 功能 ¶

    与 chk_top_tableIO不同,这里只关注哪些索引引发的IO最大,分别统计逻辑IO与物理IO。

    4.4.10. chk_top_table_dml.sh ¶

    4.4.10.1. 功能 ¶

    查询过去10秒(时间参数,可填),增删改次数最多的表。数据取自sys_stat_user_tables。

    4.4.11. chk_top_wal.sh ¶

    4.4.11.1. 功能 ¶

    检查当前哪些 SQL引发最多的 WALWrite 或 WALSync 等待事件,通过观察当前的等待事件,可以间接确认哪些SQL引发频繁redo日志写或redo日志刷盘。

  • 相关阅读:
    UI插画设计如何提升用户体验优漫动游
    Effective Java 读书笔记
    [附源码]计算机毕业设计线上评分分享平台Springboot程序
    应用系统集成-企业集成模式(EIP)
    算法修炼-动态规划之斐波那契数列模型
    Altair:Python数据可视化库的魅力之旅
    Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
    初识Java 10-1 集合
    vuejs实现点击导出按钮把数据加密后传到json/txt格式文件中并下载,以及上传json文件解密获得json内容
    全球无人驾驶大洗牌,百度Apollo Day宣告Robotaxi进入2.0时代
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126733617
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号