OB 日志流的理解

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

看文档,有算法

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

你这是在备考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%’;

1 个赞

感谢 :+1: