0
0
0
0
专栏/.../

TiDB 新朋友 DBdoctor

 ShawnYan  发表于  2024-11-01

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

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

DBdoctor 简介

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

640.webp

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

640.webp

目前,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.gz
cd 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.   │
└───────────────────────────────────────────────────────────────────────────────┘

640.webp

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

640.webp

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

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

640.webp

DBdoctor 两步纳管 TiDB

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

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

640.webp

  1. 在 TiDB 中创建访问账号
[shawnyan@tidb7 ~]$ tidb
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1241513994
Server version: 8.0.11-TiDB-v7.5.3 TiDB Server (Apache License 2.0) Community Edition, MySQL 8.0 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> CREATE user 'test' IDENTIFIED BY 'Root2023!';
Query OK, 0 rows affected (0.032 sec)

MySQL [(none)]> GRANT SELECT, PROCESS, SHOW VIEW ON *.* TO 'test';
Query OK, 0 rows affected (0.020 sec)

MySQL [(none)]> \q
Bye
  1. 在 DBdoctor 页面纳管 TiDB 集群

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

640.webp

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 的读写请求遇到锁时,会尝试进行锁清理

640.webp

  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 语句执行计划耗时

640.webp

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

Have a nice day ~


🌻 往期精彩 ▼


-- / END / --

👉 这里可以找到我

  • 微信公众号:少安事务所
  • ITPUB:@少安事务所
  • TiDB 专栏:@ShawnYan

👉 这里有得聊

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

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

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论