OceanBase 数据库按日志流、分片组织用户数据,且每个日志流有多个副本用于容灾。因此,在 SQL 请求执行过程中需要知道分区数据的位置信息,用于路由到特定机器读写对应副本的数据。分区数据的位置信息即称为 Location,每个 observer 进程会有一个服务,用于刷新及缓存本机需要的分区 Location 信息,该服务称为 Location Cache 服务。
V4.0.0 版本引入了日志流、分片的概念,如果需要获取分区数据的 Location 信息,就需要知道分区对应的分片、分片与日志流的映射关系,以及日志流副本的位置信息。您可以通过以下系统租户下的数据字典获取:
oceanbase.CDB_OBJECTS:指定OBJECT_TYPE为TABLE、TABLE PARTITION或TABLE SUBPARTITION可以获取对应分区的DATA_OBJECT_ID,即TABLET_ID(租户下分片的唯一标识)。oceanbase.CDB_OB_TABLET_TO_LS:获取分片所属的日志流,日志流在租户下通过LS_ID唯一标识。oceanbase.CDB_OB_LS_LOCATIONS:获取日志流的副本类型及位置。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




