OB 日志流的理解

OB V3版本中,日志流的单位是数据分片。
OB V4版本中,日志流是一个租户在同一个OB server上的所有leader分区的聚合,其日志持久化与同步方式与单机数据库相似,因而被称为单机日志流。
我想问:
1、OB V4版本中,一个租户在同一个OB server上的所有leader分区的聚合,可以通过某个视图查询到吗?
2、对一个OB V4版本的租户而言,1-1-1的集群中会有几个日志流?

5 个赞

@论坛小助手

1 个赞

OB V4版本日志流的理解

根据您的问题,我将基于检索到的文档信息为您解答。

1. OB V4版本中,一个租户在同一个OB server上的所有leader分区的聚合,可以通过某个视图查询到吗?

可以。

  • 在OceanBase V4.x版本中,可以通过系统视图 V$OB_LOG_STATGV$OB_LOG_STAT 查询日志流的状态和相关信息。
  • 这些视图能够展示日志流是否有Leader、日志流的成员列表(Paxos副本数)、副本同步状态等信息。

具体查询方式如下:

  • 系统租户:通过系统租户可以查看所有租户的日志流状态。

    SELECT * FROM oceanbase.GV$OB_LOG_STAT WHERE tenant_id = <tenant_id>;
    
  • 普通租户:通过普通租户只能查看本租户的日志流状态。

    • MySQL模式:
      SELECT * FROM oceanbase.GV$OB_LOG_STAT WHERE tenant_id = <tenant_id>;
      
    • Oracle模式:
      SELECT * FROM SYS.GV$OB_LOG_STAT WHERE tenant_id = <tenant_id>;
      

相关文档片段链接

2. 对一个OB V4版本的租户而言,1-1-1的集群中会有几个日志流?

在1-1-1集群配置下,每个租户通常会有一个日志流。

  • 根据OceanBase V4.x版本的设计,一个租户在一个OB server上的所有Leader分区被聚合为一个日志流。
  • 因此,在1-1-1集群配置下(即每个节点上只有一个副本),每个租户通常只会有一个日志流。

相关文档片段链接

希望这些信息对您有所帮助!如果还有其他问题,请随时提问。

详情请参考:

  1. 日志流
  2. V$OB_LOG_STAT
  3. GV$OB_LOG_STAT
  4. 日志同步问题
  5. 查看日志流升降级相关信息
  6. 查看日志同步进度
  7. 副本介绍
  8. 日志流和副本概述
2 个赞

看文档,有算法

1 个赞

我想问,这种问题AI解释的不清晰吗?

1 个赞

你这是在备考OBCP吧~
其实记住这个公式就好了:
日志流总数 = unit_num × (第一优先级的Zone数量)

如果有以下情况:
1-1-1的集群中 unit_num=1PRIMARY_ZONE='zone1',那么日志流就是1。
2-2-2的集群中 unit_num=1PRIMARY_ZONE='zone1',那么日志流还是1。
2-2-2的集群中 unit_num=2PRIMARY_ZONE='RANDOM',即每区2个Unit × 3个区同等优先级,就会有2X3=6个日志流了。

如果你不知道日志相关的视图名字,可以查dict这个表:
select * from dict where table_name like ‘%LOG%’;
select * from dict where table_name like ‘%OB_LS%’;

3 个赞

感谢 :+1:

1 个赞

回答的够细,但楼主的第一个问题,应该是有一个视图可以看leader分区的分布情况,我记得

1 个赞

:grinning: :grinning: :grinning: :grinning:

1 个赞

文中提到的OB问题很常见,通过优化LOG和调整STAT配置,通常可以解决。

很好的OB分享!在实际项目中,我发现LOG配合STAT使用效果更好。

学习一下 。

这篇文章写得真不错,很有启发性。

了解了解

文中提到的OB问题很常见,通过优化LOG和调整STAT配置,通常可以解决。

这个问题涉及到OB和LOG的平衡,根据我的经验,适当调整STAT会有帮助。

这篇文章写得真不错,很有启发性。

帮顶

+1

ai也不是万能的,先以文档为主吧