OB备租户同步延迟

【 使用环境 】生产环境
【 OB or 其他组件 】OBserver
【 使用版本 】4.2.1.7
【问题描述】OCP告警备租户同步延迟
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

根据文档库中的信息,OCP 会监控备租户与其主租户的同步延迟时间,若备租户同步延迟时间大于 600 秒,则会产生此告警。监控指标 sync_delay_time 的值表示 OceanBase 主备集群延迟时间,当延迟时间大于阈值(默认为 600s)时触发告警。此告警仅针对 OceanBase 数据库 4.0.0.0 以下版本的集群生效,但您使用的版本为 4.2.1.7,理论上应该不受此限制,不过同步延迟的监控逻辑仍然适用。

可能的原因及处理建议:

  1. 网络延迟

    • 检查主备库之间的网络状况,确保网络延迟在合理范围内。
    • 可以通过 pingtraceroute 工具来检测网络延迟。
  2. 主库压力过大

    • 检查主库的 CPU、内存和 I/O 使用情况,确保主库没有过载。
    • 可以通过 OCP 的监控页面查看主库的性能指标。
  3. 备库性能问题

    • 检查备库的 CPU、内存和 I/O 使用情况,确保备库能够及时处理同步数据。
    • 可以通过 OCP 的监控页面查看备库的性能指标。
  4. 配置问题

    • 检查主备库的配置是否一致,特别是与同步相关的参数。
    • 可以通过 OCP 的配置管理页面检查和调整相关参数。
  5. 日志分析

具体操作步骤:

  1. 检查网络延迟

    ping <主库IP>
    traceroute <主库IP>
    
  2. 检查主库性能

    • 在 OCP 的监控页面查看主库的 CPU、内存和 I/O 使用情况。
  3. 检查备库性能

    • 在 OCP 的监控页面查看备库的 CPU、内存和 I/O 使用情况。
  4. 检查配置

    • 在 OCP 的配置管理页面检查主备库的配置是否一致。
  5. 收集日志

    • 使用 obdiag 收集诊断信息:
      obdiag collect log --start-time "2023-10-01 00:00:00" --end-time "2023-10-01 23:59:59" --output /path/to/output
      

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

具体信息可参考以下文档:

  1. standby_tenant_sync_delay_too_long 备租户同步延时过大
  2. ob_cluster_sync_delay_time_too_long 主备集群同步延迟过大告警
  3. OCP V4.2.1
  4. OceanBase Sysbench 高性能部署和问题分析
  5. 4000 ~ 4499
  6. 租户请求队列积压
  7. OceanBase 数据库 TPC-H 测试
  8. get_tenant 失败后重试无法退出
  9. 集群近期 1 小时内发生的事件
  10. 某租户下所有表占用磁盘大小

搭建的是网络备库么?
查询主备租户搭建时间
select * from DBA_OB_TENANTS\G;
备租户

确认租户角色以及可恢复位点

select * from __all_virtual_tenant_info where tenant_id = xxxx;

查看日志流恢复状态表

select * from v$ob_ls_log_restore_status where tenant_id = xxxx;

查看日志恢复源

select * from cdb_ob_log_restore_source where tenant_id = xxxx;

查找最慢日志流

select *, scn_to_timestamp(end_scn) from gv$ob_log_stat where tenant_id = xxxx and role = ‘leader’ order by end_scn;

你发的日志 是备租户的日志么?如果是 主租户的日志也发一下

感谢您提供的附件。为了更好地帮助您分析备租户同步延迟的问题,我将根据附件中的信息进行分析。请稍等,我将查看附件内容并给出详细的建议。

分析步骤:

  1. 检查网络延迟

    • 查看主备库之间的网络延迟情况。
    • 检查是否有网络丢包或抖动现象。
  2. 检查主库和备库的性能指标

    • 查看主库和备库的 CPU、内存和 I/O 使用情况。
    • 检查是否有资源瓶颈。
  3. 检查同步日志

    • 查看同步日志,找出具体的同步延迟原因。
    • 检查是否有错误日志或警告信息。
  4. 检查配置参数

    • 确认主备库的配置参数是否一致。
    • 检查与同步相关的参数设置。

附件内容分析:

1. 网络延迟

请提供 pingtraceroute 的结果,以便我们确认网络延迟情况。

2. 性能指标

请提供主库和备库的 CPU、内存和 I/O 使用情况的监控数据。您可以使用 OCP 的监控页面或者 topiostat 等命令来获取这些信息。

3. 同步日志

请提供同步日志文件,特别是 obproxyOBServer 的日志文件。这些日志文件通常位于 /home/admin/oceanbase/log 目录下。

4. 配置参数

请提供主库和备库的配置文件,特别是与同步相关的参数。您可以使用以下命令查看配置参数:

obclient -h<主库IP> -P<端口> -u<用户名> -p<密码> -e "show parameters;"

具体操作步骤:

  1. 检查网络延迟

    ping <主库IP>
    traceroute <主库IP>
    
  2. 检查主库和备库的性能指标

    • 使用 OCP 的监控页面查看主库和备库的 CPU、内存和 I/O 使用情况。
    • 使用 topiostat 命令查看实时性能指标:
      top
      iostat -x 1
      
  3. 检查同步日志

    • 查看 obproxyOBServer 的日志文件:
      tail -f /home/admin/oceanbase/log/obproxy.log
      tail -f /home/admin/oceanbase/log/observer.log
      
  4. 检查配置参数

    • 查看主库和备库的配置参数:
      obclient -h<主库IP> -P<端口> -u<用户名> -p<密码> -e "show parameters;"
      

进一步建议:

  1. 优化网络

    • 如果网络延迟较高,建议优化网络配置,减少网络延迟。
    • 检查是否有网络设备故障或配置不当。
  2. 优化性能

    • 如果主库或备库的 CPU、内存或 I/O 使用率较高,建议优化数据库性能。
    • 调整数据库参数,增加资源分配。
  3. 调整配置

    • 确认主备库的配置参数一致,特别是与同步相关的参数。
    • 调整同步参数,如 sync_intervalsync_timeout
  4. 联系技术支持

    • 如果以上步骤无法解决问题,建议联系 OceanBase 的技术支持人员进行进一步排查。

希望以上信息能帮助您解决问题。如果有任何其他问题或需要进一步的帮助,请随时告知。

更多信息请查看:

  1. 列存 FAQ
  2. 使用 SeaTunnel 读取和同步 OceanBase 数据
  3. 设置日志恢复终点
  4. 通过 ODC 连接 OceanBase 数据库
  5. 使用 CloudCanal 从 OceanBase 数据库迁移数据到 MySQL 数据库
  6. 备份前准备
  7. 集群近期 1 小时内发生的事件
  8. 某租户下所有表占用磁盘大小
  9. get_tenant 失败后重试无法退出

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

1、创建备租户有检查么?

创建备租户前准备

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218769
2、搭建备库的时候 是按照这个恢复的备库么?
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218770

这个是密码试密码的逗号么?

目前确定是用户的密码的逗号问题 特殊字符解析的问题 这是个已知问题