【TiDBer 唠嗑茶话会 138】你有哪些 TiDB 故障排除经验?

TiDB 的故障排除和处理,在确保数据库系统的稳定性和可靠性方面,具有重要意义:

  • 识别和解决问题:故障排除是识别、分析和解决系统或应用程序中遇到的问题或错误的过程。这对于保持系统的正常运行至关重要。

  • 数据完整性和可用性:通过有效的故障排除,可以确保数据的一致性和系统的高可用性,防止数据丢失或服务中断。

  • 系统优化:故障排除还可以帮助识别系统性能瓶颈,从而进行优化以提高整体性能。

大家期待已久的 TiDB 故障排除案例学习课程 (305) 上线到积分兑换系统啦!

:open_book: 欢迎小伙伴们兑换学习,一起 get TiDB 故障排除超能力!

本期话题:

你是如何定位、诊断和处理 TiDB 数据库的故障?分享一下你的故障排除经验吧!

参与奖励:

留言参与讨论,获得 30 积分&经验值!

活动时间:

2024.10.11 -2024.10.18

1 个赞

慢查询排查处理:

  1. 【定位问题】通过查看慢查询日志,可以获取到执行缓慢的 SQL 语句及其相关的执行信息,如执行时间、查询语句文本等定位慢查询
  2. 【排查问题】使用 TiDB 的 EXPLAIN 语句来获取慢查询的执行计划。执行计划展示了数据库如何执行查询,包括表的连接顺序、索引使用情况,如果执行计划显示没有使用索引或者选择了效率低下的索引,可能是导致慢查询的原因。例如,全表扫描而不是通过索引查找数据,会极大地增加查询时间。
    3.1.【解决问题】如果是由于索引缺失或索引使用不当导致的慢查询,根据查询逻辑和表结构创建或调整索引、
    3.2. 【解决问题】改写查询语句以提高执行效率。例如,避免使用复杂的嵌套查询,可以将其转换为连接查询;或者减少不必要的子查询。

一般先看Grafana的overview和dashboard

话说好课程咋不免费开放呢,不也可以更好的推广使用嘛

2 个赞

如何定位、诊断和处理 TiDB 数据库的故障
通过dashboard通览硬件资源(CPU、内存),查看慢SQL的执行计划
通过后台登录数据库,查看相关命令查询问题所在,主要有集群状态、锁、执行计划、索引、表是否有TiFlash列存,表健康度等等,修改或优化相关参数(全局、当前会话)以解决问题

  • 确保所有节点正常运行,使用 pd-ctl 命令检查 PD 状态。
  • 查看 TiKV 节点的健康状态,确保没有下线或不健康的节点。
  • 确保网络连接稳定,尤其是 TiDB 与 TiKV 之间的连接。
  • 使用 pingtraceroute 工具检查网络延迟和丢包情况。

这个话题好像聊过哦,

  • 通过 tiup 查阅节点实例的状态
  • 通过 登录到各个节点,直接查阅节点的运行日志
  • 通过 Grafana 查阅各个指标

根据问题类型看日志或面板先

grafana+dashboard+日志

grafana 里面的overview,先看tidb的平均执行sql数量和效率,以及连接数,以及服务器资源使用信息。然后再根据dashboard里面的慢sql统计,80%的问题是这么处理的。剩下20%的故障采用重启大法

系统出问题资源使用异常,首先排查慢SQL,数据库问题8成都是慢sql造成的

免费的可能就会觉得不值钱,没什么用,收费的才会觉得有用

数据同步任务重有过排查故障的经验,TIDB数据库非常nice!!!!!

查看监控,看看是什么出现异常了,然后根据异常指标排查响应的问题

一般经验:grafana+dashboard+数据库日志+系统日志
实际经验:凭感觉 :yum:

1 个赞

dashboard 慢查询 添加索引或者将表添加到tiflash中
sqlbind 基本解决目前遇到的问题。

1 个赞
通过 tiup 进行相关状态的查看。
查看运行日志,是否出现报错。
利用普罗米修斯进行故障监控。

dashboard