备租户同步延迟过大

【 使用环境 】生产环境
【 OB or 其他组件 】 OBserver
【 使用版本 】 4.2.1.7
【问题描述】OCP告警中心发现有二个长时间的活跃告警,一个是备租户同步延迟过大,一个是租户长时间未发起冻结。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
告警事件:

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您提供的信息,您遇到了两个告警问题:一个是“备租户同步延迟过大”,另一个是“租户长时间未发起冻结”。以下是针对这两个问题的具体分析和建议:

备租户同步延迟过大

问题描述

OCP 告警中心显示备租户同步延迟过大,具体表现为备租户与主租户的同步延迟时间超过了 600 秒。

可能原因

  1. 网络延迟:主备集群之间的网络延迟较高,导致日志同步不及时。
  2. 主库压力大:主库的负载较高,导致日志生成速度超过备库的同步速度。
  3. 备库性能不足:备库的硬件性能不足,无法及时处理同步过来的日志。

解决方法

  1. 检查网络延迟

    • 使用 pingtraceroute 命令检查主备集群之间的网络延迟。
    • 确保网络带宽足够,避免网络拥塞。
  2. 优化主库性能

    • 检查主库的负载情况,确保没有过多的慢查询或大事务。
    • 优化慢查询,减少主库的压力。
  3. 提升备库性能

    • 检查备库的硬件配置,确保其能够处理同步过来的日志。
    • 如果必要,可以考虑增加备库的硬件资源。
  4. 调整同步参数

    • 可以尝试调整主备同步的参数,如 sync_redo_log_timeoutsync_redo_log_interval,以优化同步性能。

监控指标

  • 监控指标sync_delay_time
  • 数据来源:由 OCP-Server 采集内部表 v$OB_CLUSTERCURRENT_SCN 字段值。
  • 采集周期:60 秒
  • 监控表达式max(sync_delay_time{@LABELS}) by (@GBLABELS)

租户长时间未发起冻结

问题描述

OCP 告警中心显示租户长时间未发起冻结,具体表现为租户在较长时间内没有进行冻结操作。

可能原因

  1. 业务需求:某些业务场景下,租户可能不需要频繁进行冻结操作。
  2. 配置问题:租户的冻结策略配置不当,导致冻结操作未能按时执行。

解决方法

  1. 检查业务需求

    • 确认是否真的需要频繁进行冻结操作。如果业务需求不需要频繁冻结,可以忽略此告警。
  2. 调整冻结策略

    • 检查租户的冻结策略配置,确保其符合业务需求。
    • 可以通过以下 SQL 语句调整租户的冻结策略:
      ALTER TENANT <tenant_name> SET FREEZE_TRIGGER_INTERVAL = <interval>;
      
    • 其中 <interval> 为冻结间隔时间,单位为秒。
  3. 手动触发冻结

    • 如果需要立即进行冻结操作,可以手动触发:
      ALTER SYSTEM MAJOR FREEZE TENANT = <tenant_name>;
      

总结

  1. 备租户同步延迟过大:检查网络延迟、优化主库性能、提升备库性能、调整同步参数。
  2. 租户长时间未发起冻结:检查业务需求、调整冻结策略、手动触发冻结。

希望以上建议能帮助您解决问题。如果问题仍然存在,建议联系 OceanBase 的技术支持人员进行进一步排查。

更多信息请查看:

  1. ob_tenant_no_frozen OB 租户长时间未冻结
  2. OCP V3.3.0
  3. standby_tenant_sync_delay_too_long 备租户同步延时过大
  4. ob_cluster_sync_delay_time_too_long 主备集群同步延迟过大告警
  5. ob_tenant_no_compaction OB 租户长时间未合并
  6. OceanBase Sysbench 高性能部署和问题分析
  7. 监控告警
  8. 4000 ~ 4499
  9. SYS 租户/RS 服务问题
  10. 4500 ~ 4999

根据您提供的告警详情图片,我们可以更详细地分析和解决这两个告警问题。

备租户同步延迟过大

告警详情

  • 告警 ID: 21
  • 告警名称: standby_tenant_sync_delay_too_long
  • 告警时间: 2024年10月18日 23:01:40
  • 告警对象: loongair_ob_slave:1723026360 / loongair_ob_cx
  • 告警内容: loongair_ob_slave 集群中的 loongair_ob_cx 租户同步延迟过大,当前同步延迟时间为 115109256 秒。

可能原因

  1. 网络延迟:主备集群之间的网络延迟较高,导致日志同步不及时。
  2. 主库压力大:主库的负载较高,导致日志生成速度超过备库的同步速度。
  3. 备库性能不足:备库的硬件性能不足,无法及时处理同步过来的日志。

解决方法

  1. 检查网络延迟

    • 使用 pingtraceroute 命令检查主备集群之间的网络延迟。
    • 确保网络带宽足够,避免网络拥塞。
  2. 优化主库性能

    • 检查主库的负载情况,确保没有过多的慢查询或大事务。
    • 优化慢查询,减少主库的压力。
  3. 提升备库性能

    • 检查备库的硬件配置,确保其能够处理同步过来的日志。
    • 如果必要,可以考虑增加备库的硬件资源。
  4. 调整同步参数

    • 可以尝试调整主备同步的参数,如 sync_redo_log_timeoutsync_redo_log_interval,以优化同步性能。

监控指标

  • 监控指标sync_delay_time
  • 数据来源:由 OCP-Server 采集内部表 v$OB_CLUSTERCURRENT_SCN 字段值。
  • 采集周期:60 秒
  • 监控表达式max(sync_delay_time{@LABELS}) by (@GBLABELS)

租户长时间未发起冻结

告警详情

  • 告警 ID: 43
  • 告警名称: ob_tenant_no_frozen
  • 告警时间: 2024年10月5日 19:05:01
  • 告警对象: loongair_ob_slave:1723026360 / loongair_ob_cx
  • 告警内容: loongair_ob_slave 集群中的 loongair_ob_cx 租户长时间未发起冻结,当前未冻结时间为 48 天 10 小时 4 分 55258 秒,超过 90000 秒。

可能原因

  1. 业务需求:某些业务场景下,租户可能不需要频繁进行冻结操作。
  2. 配置问题:租户的冻结策略配置不当,导致冻结操作未能按时执行。

解决方法

  1. 检查业务需求

    • 确认是否真的需要频繁进行冻结操作。如果业务需求不需要频繁冻结,可以忽略此告警。
  2. 调整冻结策略

    • 检查租户的冻结策略配置,确保其符合业务需求。
    • 可以通过以下 SQL 语句调整租户的冻结策略:
      ALTER TENANT loongair_ob_cx SET FREEZE_TRIGGER_INTERVAL = <interval>;
      
    • 其中 <interval> 为冻结间隔时间,单位为秒。
  3. 手动触发冻结

    • 如果需要立即进行冻结操作,可以手动触发:
      ALTER SYSTEM MAJOR FREEZE TENANT = loongair_ob_cx;
      

总结

  1. 备租户同步延迟过大

    • 检查网络延迟、优化主库性能、提升备库性能、调整同步参数。
    • 监控指标:sync_delay_time
  2. 租户长时间未发起冻结

    • 检查业务需求、调整冻结策略、手动触发冻结。

希望以上建议能帮助您解决问题。如果问题仍然存在,建议联系 OceanBase 的技术支持人员进行进一步排查。

更多信息请查看:

  1. ob_tenant_no_frozen OB 租户长时间未冻结
  2. OCP V3.3.0
  3. standby_tenant_sync_delay_too_long 备租户同步延时过大
  4. ob_cluster_sync_delay_time_too_long 主备集群同步延迟过大告警
  5. ob_tenant_no_compaction OB 租户长时间未合并
  6. OceanBase Sysbench 高性能部署和问题分析
  7. 监控告警
  8. 4000 ~ 4499
  9. SYS 租户/RS 服务问题
  10. 4500 ~ 4999

检索到的文档如下:

  1. 内存诊断
  2. 连接诊断
  3. ROUTE_INFO

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

当前问题处理需求:
对于这个两个告警都是一个租户,且时间时间基本一致,所以合理怀疑租户长时间未冻结,可能是导致租户同步延迟过大的原因。

1、协助我找到此问题的基本原因和解决方案。

梳理一下:
1、有两个主备租户
2、一个主备租户同步正常
3、一个主备租户同步不正常 (主租户的冻结 转储 合并都正常 备租户的冻结 转储 合并不正常)

备租户延迟过大 同一个帖子 已经解决