GaussDB--Ops巡检-备机redo进度,和主机的差距异常处理步骤

132 阅读4分钟

告警解释

=======

此告警对应指标“备机redo进度,和主机的差距”超出配置阈值,此指标反映主备DN之间日志的差距。

对系统的影响

  • 此指标最优值为0,说明主备之间无日志差距,可以保证在主DN故障之后,备DN能快速升主。
  • 此指标如果持续上涨,会影响RTO时间,可能会在故障情况下,备DN无法在RTO时间范围内升主。

可能原因

  • 根本原因为:主DN上日志产生速度快,备DN回放速度跟不上主DN的产生速度。在系统长时间的运行后,备机上会出现日志累积,主备日志差异大。
  • 存在大量写操作,可能是数据库内部的vacuum,也可能是业务。
  • 主DN和备DN之间网络时延高,导致日志同步出现延迟。
  • 备DN所在磁盘IO时延高,导致回放慢,日志累积。
  • 使用备机读,备机读约束为了保证事务一致性,会阻塞回放。

处理步骤

  1. 收到告警后,首先通过查看监控指标查看指标“备机redo进度,和主机的差距”,确认指标情况以及触发告警的组件。

  2. 确认此指标是持续上涨还是上涨后分钟级别回落。

    • 如果为分钟级别回落,确认是否使用备机读,如果使用备机读,为正常现象,备机读的约束。
    • 如果没有使用备机读或者持续上涨,执行3
  3. 确认并记录此指标上涨的开始时间,以及当前是否持续上涨,同步观察是否所有DN分片均存在此问题。

    • 如果为单个分片上涨,执行4
    • 如果为所有分片或多个分片上涨,执行6
  4. 如果只有单个分片上涨,通过查看监控指标查看“数据盘每次写入花费的时间”、“数据盘每次读取花费的时间”指标,确认告警DN所在节点的指标是否比其他节点高。

    • 如果比其他节点高,需要底层处理联系技术支持 ,解决底层磁盘IO时延高的问题。
    • 如果此二指标同其他节点相比没有异常,执行5
  5. 通过告警信息登录实例节点,从告警备DN所在分片中,使用主DN向告警备DN执行ping命令。

    执行cm_ctl query -Cvip 查出来的IP,在未告警的分片也执行上述命令,排查是否因网络时延高导致。

  6. 如果所有分片或多个分片同时上涨,存在大量写操作,执行如下语句,确认是否有vacuum操作正在执行:

    • 集中式主DN

      SELECT * FROM pg_stat_activity WHERE query ilike '%vacuum%' and state = 'active' and query not ilike '%pg_stat_activity%';
      

    • 分布式CN

      SELECT * FROM pgxc_stat_activity WHERE query ilike '%vacuum%' and state = 'active' and query not ilike '%pgxc_stat_activity%';
      

    如果CN或DN查询有结果,说明有vacuum操作,持续观察,等待vacuum完成即可。

    如果CN或DN无结果,说明没有vacuum操作,执行7

  7. 通过WDR报告确认上涨时间段和正常时间段之间,写操作业务量的差异。

    如果上涨时间段比正常时间段的写操作业务量大很多,需要执行限流操作。

    WDR报告使用具体请参考《云数据库 GaussDB 24.1.30 使用指南 (for 华为云Stack 8.3.1)》中的“用户指南 >操作指南> 智能运维 > 诊断优化 > 性能报告”章节。

  8. 如果上述操作均无法降低此指标,或业务无法限流,请联系技术支持协助评估,是否要增加回放的并行线程数或开启极致RTO功能。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…