扫码阅读
手机扫码阅读

数据库|实操硬核干货之监控告警处理

556 2023-09-23

摘要

监控面板显示tidb_server_critical_error_total的值不为0,指示TiDB中的binlog写入失败,可能会影响下游系统的数据同步。本文作者为高级数据库运维工程师soy sauce,分享监控告警的处理方法,并结合个人实践给出解决策略。

01原理分析

为了保护TiDB主库运行,可以开启binlog.ignore-error参数,这样在pump和drainer组件同步数据时,即使binlog写入失败也不会使主集群不可用。作者提到,与Oracle DataGuard相比,TiDB提供了在下游数据和上游数据不一致的情况下保持主库业务连续性的选项。

02现象

监控binlog的写入与跳过情况,可以通过访问http://127.0.0.1:10080/info/all和检查binlog_status的状态来追踪。

03处理方式

根据下游同步的三种情况进行处理:

  • 同步任务取消:下线Pump和Drainer,编辑配置文件关闭binlog,并重启tidb-server。
  • 文件同步任务异常:使用API恢复binlog或重启tidb-server,并重新全备。
  • 灾备同步任务异常:恢复后监控checkpoint的变化确认是否正常。

04skip binlog出现的常见情况

常见skip binlog的情况包括pump磁盘空间不足以及大事务超过grpc限制。

05延伸问题

如果skip的binlog中包含DDL操作,可能导致drainer异常重启并报错找不到表ID。社区中有相关案例讨论。

文章最后,作者邀请读者加入讨论群交流,并推荐关注神州数码云基地编程大法的技术前沿内容。

想要了解更多,点击 查看原文