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_STAT或GV$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>;
- MySQL模式:
2. 对一个OB V4版本的租户而言,1-1-1的集群中会有几个日志流?
在1-1-1集群配置下,每个租户通常会有一个日志流。
- 根据OceanBase V4.x版本的设计,一个租户在一个OB server上的所有Leader分区被聚合为一个日志流。
- 因此,在1-1-1集群配置下(即每个节点上只有一个副本),每个租户通常只会有一个日志流。
希望这些信息对您有所帮助!如果还有其他问题,请随时提问。
详情请参考:
1 个赞
看文档,有算法
我想问,这种问题AI解释的不清晰吗?
你这是在备考OBCP吧~
其实记住这个公式就好了:
日志流总数 = unit_num × (第一优先级的Zone数量)
如果有以下情况:
1-1-1的集群中 unit_num=1 ,PRIMARY_ZONE='zone1',那么日志流就是1。
2-2-2的集群中 unit_num=1 ,PRIMARY_ZONE='zone1',那么日志流还是1。
2-2-2的集群中 unit_num=2 ,PRIMARY_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 个赞
感谢 ![]()