写点什么

TiDB 新朋友 DBdoctor

  • 2024-11-08
    北京
  • 本文字数:3871 字

    阅读完需:约 13 分钟

作者: ShawnYan 原文来源:https://tidb.net/blog/00761f61


TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 协议和 MySQL 生态等重要特性。


了解更多:「合集」三年 50 篇,TiDB 干货全收录

DBdoctor 简介

DBdoctor 是一款内核级数据库性能诊断软件。针对数据库性能诊断门槛高、耗时长的问题,提供快速易用的解决方案,深入到数据库内核,实时海量数据分析,提供精准的诊断分析和优化建议。



DBdoctor 提供的服务主要有:SQL 审核、实例巡检、性能洞察、锁透视、根因诊断、审计日志、基础监控、索引推荐、存储分析、参数推荐、Dashboard 大盘等。



目前,DBdoctor 支持纳管的数据库有:


  • MySQL

  • PostgreSQL

  • Oracle

  • MariaDB

  • TDSQL

  • DM8

  • AntDB

  • GoldenDB

  • OceanBase (DBdoctor v3.1.1)

  • PolarDB-X (DBdoctor v3.1.1)

  • Highgo (DBdoctor v3.2.1)

  • Kingbase (DBdoctor v3.2.1)

  • SQL Server (DBdoctor v3.2.2)

  • Vastbase (DBdoctor v3.2.2)

  • GBase 8a (DBdoctor v3.2.3)

  • TiDB (DBdoctor v3.2.4)

DBdoctor 本地部署

这里简单介绍如何在本地部署 DBdoctor 单机版,以快速体验其特性。


访问 DBdoctor 官网 https://www.dbdoctor.cn/product/11,点击免费下载。


当前最新版本为 10 月 15 日发布的 DBdoctor v3.2.4。


DBdoctor 3.2.4 版本支持 PostgreSQL(12/13/14) 无符号表场景下开启锁分析。利用 AI 和 DBA 的丰富经验,推荐出最佳参数设置,并提供性能提升的具体比例。支持 OceanBase、SQL Server 的审计日志功能和 MySQL、PostgreSql、Oracle、SQL Server 在无审计日志场景下的锁分析功能。新增对 TiDB 数据库的纳管支持,并优化 OceanBase 的纳管过程,支持系统 / 用户租户维度的纳管操作。


解压缩安装包,进入解压后的根目录,执行 ./dbd -I 进行 DBdoctor 零依赖快速安装。


tar zxf DBdoctorV3.2.4_20241015_x86.tar.gzcd dbdoctor-3.2.4.1/sudo ./dbd -I
复制代码


安装成功后会打印访问地址:


┌───────────────────────────────────────────────────────────────────────────────┐│   ____   ____   ____    ___    ____  _____  ___   ____                        ││  |  _ \ | __ ) |  _ \  / _ \  / ___||_   _|/ _ \ |  _ \                       ││  | | | ||  _ \ | | | || | | || |      | | | | | || |_) |                      ││  | |_| || |_) || |_| || |_| || |___   | | | |_| ||  _ <                       ││  |____/ |____/ |____/  \___/  \____|  |_|  \___/ |_| \_\                      ││                                                                               ││ WebSite:  http://192.168.43.90:13000/#/login                                  ││ DBA User:     tester                                                          ││ DBA Password: Root2023!                                                       ││ If you want to set system config,please use admin user to login in.           ││ Admin User:       admin                                                       ││ Admin Password:   123456                                                      ││ If you changed the default password, please login in with the new password.   │└───────────────────────────────────────────────────────────────────────────────┘
复制代码



登录网站可以看到 DBdoctor 会默认启动一个 Demo 实例 (MySQL),便于快速体验。



你也可通过 DBdoctor 微信公众号申请在线试用账号。


DBdoctor 在线试用环境地址:https://demo.dbdoctor.cn


DBdoctor 两步纳管 TiDB

DBdoctor v3.2.4 版本新增了对 TiDB 数据库的支持:支持 TiDB 的 SQL 审核、实例巡检、性能分析、根因诊断、基础监控功能。


DBdoctor 通过连接 TiDB Server 节点来统一管理 TiDB 数据库,并自动检测所有 TiDB Server 节点。为了简化部署和维护,每个 TiDB Server 节点的主机只需部署一个 Agent(可自动部署),即可实现对整个集群的监控和管理。



  1. 在 TiDB 中创建访问账号

  2. 在 DBdoctor 页面纳管 TiDB 集群


点击【实例列表】>>【实例纳管】,在【类型】下拉框中选中【tidb】引擎类型;填写 TiDB 数据库的访问地址、账号以及密码等基本信息;点击【check】按钮,检查实例数据库是否连接正常,检查通过则会在纳管界面展示所有节点信息;录入 TiDB server 所在主机的账号信息,默认自动安装 Agent,也可手动安装,DBdoctor 提示了安装命令,一键复制后,在目标机执行即可。连通性检测通过后,点击提交后即可成功纳管 TiDB 数据库。


DBdoctor 采集 TiDB 指标

DBdoctor 支持采集主机实例的相关资源性能数据、锁以及审核日志,用于洞察引起 CPU 异常、IO 异常等性能问题根因 SQL。


目前有三种采集方式:Agent 采集方式;Prometheus 采集方式;无 Agent 采集方式。


不过当前版本尚不支持 Prometheus 采集方式,推荐使用 Agent 采集方式。


DBdoctor 支持 TiDB 的 SQL 审核、实例巡检、性能洞察、根因诊断、基础监控功能。


  1. SQL 审核:支持人工审核、慢 SQL 审核、全量 SQL 审核以及 OpenAPI 审核方式,可实现对增量 SQL 以及线上 SQL 的全生命周期闭环质量管理。支持批量上传 SQL 文件,在开发阶段即可完成 SQL 审核,提前识别 SQL 问题,同时针对线上存量 SQL 也可以实时抓取进行审核。

  2. 深度巡检与报表:支持自动巡检及手动巡检两种巡检方式,可以及时发现数据库在配置、性能、资源等方面的问题,保证数据库服务的稳定。

  3. 性能洞察:性能洞察界面中展示各资源使用率、业务流量以及数据库的平均活跃会话情况。基于数学模型精准定位,自动框选异常时间区间并提示根因 SQL,单条 SQL 资源可量化,把资源消耗映射为颜色面积,直观定位数据库性能问题并给出优化建议。

  4. 根因诊断:可直观汇总展示实例中存在性能问题的所有 SQL,点击单个 SQL 会展示异常问题现象、详细的根因推导过程,并给出最佳优化建议。

  5. 基础监控:通过基础监控,可以实时查看该数据库中关于数据库与主机资源、内存、表文件、不同类型请求和事件耗时情况相关的监控指标。


更多信息参考:DBdoctor 快速纳管 TiDB 数据库

基础监控

下面详细列出【基础监控】的【TiDB OPS】和【TiDB Duration】统计指标,以供参考。


  1. TiDB OPS 请求分析统计监控项


  • Failed Query / 每秒错误请求数:每个 TiDB 实例上,每秒钟执行 SQL 语句发生错误按照错误类型的统计(例如语法错误、主键冲突等)

  • TPS / 每秒事务数:每秒事务执行数量统计

  • KV Cmd OPS / 每秒 KV 命令数:KV 命令执行数量统计

  • TiClient Region Error OPS / 每秒 TiKV 返回 Region 相关错误信息的数量:TiKV 返回 Region 相关错误信息的数量

  • Lock Resolve OPS / 每秒 TiDB 清理锁操作的数量:TiDB 清理锁操作的数量。当 TiDB 的读写请求遇到锁时,会尝试进行锁清理



  1. TiDB Duration 各类事件耗时情况统计


  • 客户端网络请求发送到 TiDB,到 TiDB 执行结束后返回给客户端的时间。一般情况下,客户端请求都是以 SQL 语句的形式发送,但也可以包含 COM_PING、COM_SLEEP、COM_STMT_FETCH、COM_SEND_LONG_DATA 之类的命令执行的时间

  • 由于 TiDB 支持 Multi-Query,因此,可以接受客户端一次性发送的多条 SQL 语句,如:select 1; select 1; select 1;。此时,统计的执行时间是所有 SQL 执行完之后的总时间


  • Duration / 平均耗时:执行的时间

  • Transaction Duration / 事务平均耗时:事务执行的时间

  • KV Cmd Duration / 平均 KV 命令耗时:KV 命令执行的时间

  • PD TSO Wait Duration / TiDB 等待从 PD 获取 TS 的平均耗时:TiDB 等待从 PD 获取 TS 的时间

  • Load Schema Duration / TiDB 从 TiKV 获取 Schema 的平均耗时:TiDB 从 TiKV 获取 Schema 的时间

  • KV Backoff OPS / 每秒 TiKV 返回错误信息的数量:TiKV 返回错误信息的数量

  • Slow Query Duration / 慢查询的平均耗时:慢查询的处理时间(整个慢查询耗时、Coprocessor 耗时、Coprocessor 调度等待时间),慢查询分为 internal 和 general SQL 语句

  • Connection Idle Duration / 空闲连接的平均持续时间:空闲连接的持续时间

  • Parse Duration / SQL 语句解析平均耗时:SQL 语句解析耗时统计

  • Compile Duration / SQL AST 编译成执行计划的平均耗时:将解析后的 SQL AST 编译成执行计划的耗时

  • Execution Duration / 执行 SQL 语句执行计划平均耗时:执行 SQL 语句执行计划耗时



感谢 DBdoctor 小助手和胡 xf 老师的技术支持👍🏻


Have a nice day ~




🌻 往期精彩 ▼






-- / END / –


👉 这里可以找到我


  • 微信公众号:少安事务所

  • ITPUB:@少安事务所

  • TiDB 专栏:@ShawnYan


👉 这里有得聊


如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。


如果这篇文章为你带来了灵感或启发,就请帮忙点『』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB 新朋友 DBdoctor_监控_TiDB 社区干货传送门_InfoQ写作社区