【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.5
【问题描述】
1、单副本租户日志流数量是根据什么计算生成的
2、单副本租户是否不具备高可用
【复现路径】
资源池创建:
租户创建:
可以看出租户在创建的时候没有指定primary zone 查询视图默认是random
查询日志流数量和分布:
从日志流的数量看是一共生成了2个日志流,都是leader。
新版V4培训材料里关于日志流数量的描述:
还请老师辛苦给科普一下
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.5
【问题描述】
1、单副本租户日志流数量是根据什么计算生成的
2、单副本租户是否不具备高可用
【复现路径】
资源池创建:
write ahead logging
思想) 。这份事务日志要落本地盘才会生效。OB 单副本的时候也是这样。单副本的时候本机肯定是主副本。primary_zone
(云上叫主可用区)为单zone,则这个粒度是租户所有业务表。 OB 为了管理方便把租户中的元数据表单独抽出来,这个粒度也叫 日志流。你把日志流理解为多副本的日志同步流 可能就好懂了。 所以 每个租户至少看到两个日志流,ls_id
分别为1和1001。如果没有业务表应该就没有 1001 的日志流。单副本OB 租户也有两个日志流就是这个道理。primary_zone
设置为多个 zone 时,业务数据表的多副本同步流拆分为多个日志流。每个日志流的同步方向不一样,或者说每个日志流的主副本的节点不一样。在同一个同步方向上,没有两个业务日志流,因为没有必要(假设有,为何不合并处理呢)。感谢老师,那就理解了,培训材料的日志流描述应该指的是业务表,不算1号日志流,感谢
根据您提供的信息和文档库中的内容,我将针对您的问题进行详细解答。
根据您提供的 SQL 查询结果和 OCR 提取的内容,创建单副本租户时,默认情况下会生成多个日志流。具体到您的情况:
pool_1
,指定了 unit_num = 1
和 zone_list = ('zone1', 'zone2', 'zone3')
。t1
,并且没有指定 primary_zone
,默认为 RANDOM
。在查询视图 CDB_OB_LS
和 CDB_OB_LS_LOCATIONS
后,您发现有两个日志流,并且它们都是 LEADER
副本。这表明在创建租户时,系统自动为您分配了两个日志流。
根据文档片段和您的描述,日志流的数量与以下几个因素有关:
UNIT_NUM
和 ZONE_LIST
。PRIMARY_ZONE
(如果未指定,则默认为 RANDOM
)。具体来说,日志流的数量通常是基于资源池中的 UNIT_NUM
和 ZONE_LIST
来决定的。每个 Zone 中的 Unit 数量会影响日志流的数量。例如,如果您有 3 个 Zone,每个 Zone 中有 1 个 Unit,那么理论上可能会生成 3 个日志流。但在实际操作中,OceanBase 数据库会根据负载均衡机制动态调整日志流的数量和分布。
关于单副本租户的高可用性,根据文档片段和您的描述,单副本租户确实不具备高可用性。原因如下:
因此,单副本租户在设计上并不具备高可用性。为了提高系统的可靠性和可用性,建议使用多副本租户。
日志流数量的计算:日志流的数量主要取决于资源池中的 UNIT_NUM
和 ZONE_LIST
配置,以及租户创建时的 PRIMARY_ZONE
设置。在您的案例中,虽然创建的是单副本租户,但系统可能根据负载均衡机制生成了两个日志流。
高可用性:单副本租户不具备高可用性,因为它只有一个副本,无法在故障时自动切换。为了实现高可用性,建议使用多副本租户。
如果您有更多问题或需要进一步的帮助,请随时联系 OceanBase 的技术支持团队。希望这些信息对您有所帮助!
检索到的文档如下:
老师 我再确认一下 是不是1号日志流不是业务表用的
1号日志流是给metadb租户使用的
了解 谢谢
版主和助手介绍内容,学习了