tianlongbabu

导航

oceanbase云数据库的介绍

.导言

OceanBase数据库是由蚂蚁集团开发的分布式数据库。在发布OceanBase 3.0的同时,OceanBase宣布正式开源,并成立了OceanBase开源社区。社区官网同步上线,300万行核心代码向社区开放。详细说明查看官网。

 

 

 

OceanBase数据库产品系列主要产品:

 

A) OceanBase数据库内核:Paxos协议保证了高可用性,兼容MySQLOracle,以及HTAP,即可以同时用于OLTPOLAP服务。

 

B) OceanBase为运营商提供OCP工具平台和图形界面,帮助管理员更好地完成集群管理、租户管理、监控预警、性能诊断等日常任务。

 

C) OceanBase为开发者提供ODC工具平台和图形界面,帮助开发者更好地完成数据库连接管理、数据库对象管理、存储过程开发和测试、导入导出等任务。

 

D) OceanBase提供OMS数据库迁移平台,可以从数据库订阅数据,也可以从异构数据库(DB2OracleMySQL)迁移和回滚数据。

 

什么是Paxos协议?Paxos协议超级详细的讲解+简单的例子_冷石灰土的博客-CSDN博客

 

什么是OLTPOLAPOLAPOLTP有什么区别?_Gasingc的博客-CSDN博客_olapoltp的区别

 

OceanBase数据库的核心特征:

 

a)分布式事务引擎:OceanBase数据库的分布式事务引擎严格支持事务的ACID属性,OceanBase 云数据库通过Paxos协议将事务日志复制到多个数据副本,保证事务的可用性和持久性。

 

b)透明性和可扩展性:OceanBase数据库独创的主控服务和分区级负载均衡能力,使系统具有极强的可扩展性,可以在线平滑扩展或收缩容量,扩展后自动实现系统负载均衡,对应用透明,保证系统持续运行。

 

c)高可用性:OceanBase数据库采用基于Shared-Nothing的多副本架构,使得整个系统无单点故障,保证了系统的连续可用性。支持单机房、机房、城市级的高可用、容灾,可部署于单机房、双机房、两地三中心、三地五中心。经过实际测试,可以达到城市级故障的RPO=0RTO

 

d)混合事务和分析处理:OceanBase 云数据库是一个独创的分布式计算引擎,它使系统中的多个计算节点能够同时运行OLTP类型的应用和复杂的OLAP类型的应用。它最大限度地提高了云数据库的利用率,同时利用多个节点的计算能力来完成对OLTPOLAP应用的支持。

 

e)多租户:OceanBase 云数据库采用单集群多租户设计,天然支持云数据库架构,支持公有云、私有云、混合云等多种部署形式。

 

f)高兼容性:OceanBase数据库为OracleMySQL这两个应用最广泛的数据库生态系统提供了良好的支持。它支持MySQL版的所有语法,大部分Oracle语法和几乎所有的过程语言函数。

 

g)高性能:OceanBase数据库作为一个准内存云数据库,通常只需要对内存中的数据进行操作,它采用了基于LSM树结构的存储引擎,对硬件更加友好,读写性能远远优于传统的关系数据库。

 

h)安全性:OceanBase数据库在调研了大量企业对数据库软件的安全需求,参考了各种安全标准后,实现了企业所需的大部分安全功能。支持完整的权限和角色体系,支持SSL、数据透明加密、审计、标签安全、IP白名单等功能,并通过了同等保护三大标准测试。

 

I)本地化配置:OceanBase数据库支持全栈本地化解决方案。截至目前,基于硬件整机,如中科可控H620系列、华为泰山200系列、长城擎天DF720等。,已完成与广海7185/7280、鲲鹏920、腾飞2000+CPU的适配和互认工作。同时,OceanBase数据库还支持麒麟V4V10UOS V20等国产操作系统,并与上层中间件东通Web V7.0、金蝶Apusic应用服务器软件V9.0完成适配和互认。

 

RPO =恢复点目标(指发生灾难时数据丢失的最大秒数)

 

RT0恢复时间目标(指灾难恢复使系统恢复正常运行所需的时间。如果设置为30s,则需要在30s内恢复到正常状态)

 

二、系统概念

OceanBase 云数据库由OceanBase集群管理。OceanBase集群由几个观察节点组成,每个节点属于一个区域。一般每个区域内机器的配置和数量是一致的,多个观察者作为资源形成每个服务所需的资源池。管理员可以根据业务情况,将资源划分成不同大小的资源池,分配给租户。一般情况下,建议为性能要求高的业务分配大型资源池,为性能要求低的业务分配小型资源池。

 

 

 

海洋基地集群、区域和观察者

一个集群由几个观察节点组成,这些观察节点属于几个区域,每个节点属于一个区域。区域是一个逻辑概念,表示群集中一组具有相似硬件可用性的节点。它在不同的部署模式中代表不同的含义。例如,当整个集群部署在同一个数据中心(IDC)时,一个区域中的节点可以属于同一个机架、同一个交换机等。

 

资源池和租户

群集中的许多服务器形成了一个大型资源池。根据每个租户的要求,管理员会创建相应的虚拟资源池供租户使用。资源池包括CPU、内存、存储等。符合规定的规格。为了避免租户之间争夺资源,租户之间的资源相互隔离,内存物理隔离,CPU逻辑隔离。

 

数据分区和分区副本

OceanBase数据库参考了传统数据库分区表的概念,将一个表的数据划分到不同的分区中。在分布式环境下,为了保证数据读写服务的高可用性,OceanBase 云数据库会将同一个分区的数据复制到多台机器上。不同机器的同一分区的数据副本称为副本。同一个分区的多个副本使用Paxos一致性协议来保证副本的强一致性。每个分区及其副本形成一个独立的Paxos组,其中一个分区是主分区,其他分区是从分区。主副本具有较强的一致读写能力,从副本具有较弱的一致读取能力。

 

第三,实用文章的结构

原文:关于OceanBase部署架构实践的八卦_OceanBase 云数据库官方博客-CSDN博客

 

OceanBase官方给出了清晰的架构实践,包括异构资源的部署形式,OB的分区副本类型介绍,多租户是什么,OB的容灾主动部署方案详解。

 

至此,对OceanBase数据库的基本逻辑和原理有了大致的了解。

 

四。创建表格

创建表可以分为分区表和非分区表。创建未分区表是指创建只有一个分区的表,未分区表不做详细描述。可以理解为类似于Oracle,只是存储在一个区域,没有分区。(仅限Oracle)

 

分区介绍

OceanBase数据库可以将常用表的数据按照一定的规则划分到不同的块中,同一块的数据在物理上存储在一起。这个划分块的表叫做分区表,里面的每个块叫做分区。

 

 

上述分区表的每个分区也可以按照一定的规则拆分成多个分区。这个分区表称为二级分区表。

 

数据表每一行中用于计算该行属于哪个分区的列集称为分区键,它必须是主键或唯一键的子集。由分区键组成的用于计算该行属于哪个分区的表达式称为分区表达式。

 

分类

OceanBase数据库的Oracle模式目前支持以下分区类型:

 

范围划分

 

列表分区

 

散列分区

 

组合分区

 

范围划分

Range根据分区表定义时为每个分区建立的分区键值范围将数据映射到相应的分区。这是一种常见的分区类型,通常与日期类型一起使用。例如,您可以按天//月对业务日志表进行分区。

 

列表分区

List使您能够通过为每个分区的分区键指定一组离散值列表来显式控制记录行如何映射到分区,这与范围分区和哈希分区不同。列表分区的优点是可以方便地对无序或不相关的数据集进行分区。

 

哈希分区

哈希分区适用于不能使用范围分区和列表分区的场景,实现方法简单。分区键上的散列函数值被散列并记录在不同的分区中。如果您的数据满足以下特征,哈希分区是一个不错的选择:

 

您不能指定数据分区键的列表特征。

 

不同区间的数据大小差异很大,很难手动调整平衡。

 

使用范围分区后数据聚集严重。

 

并行DML的性能、分区剪枝和分区连接非常重要。

 

组合分区

组合通常先使用一种分区策略,然后在子分区中使用另一种分区策略,适用于业务表中数据量大的情况。使用组合分区可以充分发挥各种分区策略的优势。

 

分区名称规则

对于列表和范围分区,分区的名称是在创建表的过程中指定的,因此该名称是当时指定的名称。

 

对于哈希分区,如果创建时没有指定分区名称,则分区的命名由系统根据命名规则完成。具体表现如下:

 

当散列分区是第一级分区时,每个分区被命名为p0p1...pn

 

当散列分区是辅助分区时,每个分区被命名为sp0sp1...spn分别。

 

对于模板化的二级分区表,二级分区的命名规则是($part_name)s($subpart_name)。对于非模板化的辅助分区表,辅助分区的分区名是定义的分区名。

posted on 2022-12-29 23:10  你是我的情人  阅读(342)  评论(0编辑  收藏  举报