襄阳门户网

搜索
襄阳门户网 襄阳门户 企业宣传 查看内容

知晓:数据库系列之OceanBase架构及安装部署2023/7/12 5:23:06

2023-7-12 05:23| 发布者: 天若有情| 查看: 193| 评论: 0

摘要:   OceanBase数据库是金融级的分布式关系型数据库,本文简要介绍其整体架构,并安装部署一套OceanBase集群环境。oceanbase企业版https://www.oceanbase.com/product/oceanbaseoceanbase,完全自主研发的原生分布式 ...
网站出售

  OceanBase数据库是金融级的分布式关系型数据库,本文简要介绍其整体架构,并安装部署一套OceanBase集群环境。oceanbase企业版https://www.oceanbase.com/product/oceanbaseoceanbase,完全自主研发的原生分布式数据库,连续年稳定支撑双,创新推出“三地五中心”城市级容灾新标准,一套引擎同时支持tp和ap的混合负载,具备数据强一致,高扩展,高可用,高性价比,高度兼容oracle/mysql等特性,已助力+行业客户实现关键业务系统升级。

  1、OceanBase基本概念

  1.1 OceanBase基本特性

  OceanBase数据库是金融级的分布式关系型数据库,产品高度兼容Oracle/MySQL,具有云原生、强一致等特性。具体如下:

  高可用:OceanBase数据库的每个节点都可以作为全功能节点,将数据以多副本的方式分布在集群的各个节点,可以轻松实现多库多活,少数派节点出现故障对业务无感知。OceanBase数据库的多副本技术能够满足从节点、机架、机房到城市级别的高可用、容灾要求,克服传统数据库的主备模式在主节点出现异常时RPO>0 的问题。确保客户的业务系统能够稳定、安全运行。可扩展:可以在线进行平滑扩容或缩容,在扩容后自动实现系统负载均衡。并且扩容或缩容过程对应用透明。低成本:可以运行在通用的X86服务器上,不依赖于特定的高端硬件和存储,降低了硬件服务器成本。同时基于LSM-Tree的存储引擎,能够有效地对数据进行压缩,并且不影响性能,可以降低用户的存储成本。HTAP:OceanBase数据库的分布式计算引擎支持多个计算节点同时运行OLTP和OLAP类的应用,并且支持跨数据库节点的 DQL 和 DML 并发执行,真正实现了一套计算引擎同时支持混合负载。兼容性:高度兼容Oracle/MySQL生态,支持MySQL 5.6版本全部语法,可以与MySQL业务无缝切换;支持绝大多数的Oracle语法和几乎全量的过程性语言功能,可以做到大部分的Oracle业务进行少量修改后自动迁移。多租户:通过租户的方式实现资源隔离,每个数据库服务的实例不会感知到其它实例的存在,从物理资源上进行了隔离,并且通过权限控制确保不同租户的数据安全性。

  1.2 OceanBase整体架构

  1.2.1 集群架构

  了解OceanBase集群架构前需要知道几个基本的术语:

  区域Region:OceanBase支持跨地域部署,每个地域(Region)可能位于不同的城市,也就是通常说的不同站点,也就是支持多站点的容灾。Zone:Zone是一个逻辑上的概念,包含一个或多个运行了OBServer进程的服务器OBServer:OceanBase的数据库服务ODProxy:OceanBase Database Proxy,专有的代理服务,负责接收用户发出的SQL请求,并将SQL请求转发至最佳目标OBServer,最后将执行结果返回给用户副本:每一个Zone上包含一个副本(全功能副本或者日志副本)分区:数据库的数据副本是以分区为单位的,所以同一个分区的数据会分布在多个Zone上。每个分区的主副本所在服务器被称为Leader,所在的Zone被称为 Primary Zone。总控服务(RootService):运行在某一个OBServer上,整个集群中只存在一个主总控服务,其他的总控服务作为主总控服务的备用服务运行。总控服务负责整个集群的资源调度、资源分配、数据分布信息管理以及Schema管理等功能分区服务:运行在每个OBServer上,负责每个 OBServer 上各个分区的管理和操作功能的模块,这个模块与事务引擎、存储引擎存在很多调用关系。

  上图是OceanBase官网上介绍的整体架构图,包括3个zone,其中ZONE-1中有总控服务主其它ZONE为总控服务备,每个ZONE中又有OBServer数据库服务和分区服务。

  1)总控服务RootService

  总控服务负责整个集群的资源调度、资源分配、数据分布信息管理以及Schema管理等功能。其中:

  资源调度主要包括集群中OBServer添加删除、在 OBServer中创建资源规格和租户等供用户使用的资源。资源均衡主要是指各种资源在各个Zone或者OBServer之间的迁移数据分布管理是指总控服务会决定数据分布的位置信息,例如:某一个分区的数据分布到哪些OBServer上Schema管理是指总控服务会负责调度和管理各种DDL语句

  2)分区服务PartitionService

  负责每个OBServer上各个分区的管理和操作

  3)数据分区高可用

  OceanBase数据库是基于Paxos的分布式选举算法来实现分区数据的高可用。集群中数据的一个分区会被保存到所有的Zone上,整个系统中该副本的多个分区之间通过Paxos协议进行日志同步。每个分区和它的副本构成一个独立的Paxos复制组,其中一个分区为主分区(Leader),其它分区为备分区(Follower)。所有针对这个副本的写请求,都会自动路由到对应的主分区上进行。主分区可以分布在不同的OBServer上,这样对于不同副本的写操作也会分布到不同的数据节点上,从而实现数据多点写入,提高系统性能。

  1.2.2 存储引擎

  OceanBase存储引擎采用基于LSM-tree的架构,基线数据保存在磁盘SSTable中、增量数据保存在内存中,每天定时将增量数据合并持久化到磁盘中保存。DML的操作是在内存中进行的,读的时候数据在内存中可能会有更新的版本,需要将存量版本和基线版本进行合并获得一个最新的版本。

  在LSM-Tree里面,核心的数据结构就是SSTable,全称是Sorted String Table。SSTable是一种拥有持久化,有序且不可变的的键值存储结构,它的key和value都是任意的字节数组,并且了提供了按指定key查找和指定范围的key区间迭代遍历的功能。SSTable内部包含了一系列可配置大小的Block块,典型的大小是64KB,关于这些Block块的index存储在SSTable的尾部,用于帮助快速查找特定的Block。当一个SSTable被打开的时候,index会被加载到内存,然后根据key在内存index里面进行一个二分查找,查到该key对应的磁盘的offset之后,然后去磁盘把响应的块数据读取出来。当然如果内存足够大的话,可以直接把SSTable直接通过MMap的技术映射到内存中,从而提供更快的查找。

  在LSM-Tree里,SSTable有一份在内存里面,其他的多级在磁盘上,如下图所示:

  来源:https://blog.csdn.net/u010454030/article/details/90414063

  1.2.3 SQL引擎

  OceanBase的SQL引擎分为分为解析器、优化器、执行器三部分。当 SQL 引擎接受到了 SQL 请求后,经过语法解析、语义分析、查询重写、查询优化等一系列过程后,再由执行器来负责执行。

  1.2.4 ODP数据库代理

  OceanBase Database Proxy(简称 ODP)是OceanBase数据库专用的代理服务器。OceanBase 数据库的用户数据以多副本的形式存放在各个OBServer上,ODP接收用户发出的SQL请求,并将SQL请求转发至最佳目标OBServer,最后将执行结果返回给用户。

  2、OceanBase安装部署

  2.1 环境准备

  2.1.1 服务器信息

  本文采用三副本部署模式,服务器信息如下:

  2.1.2 查看资源情况

  1)查看操作系统

  2)查看内核

  OceanBase数据库要求操作系统为3.10.0及以上

  2.1.3 配置NTP时钟源

  安装OceanBase集群,需要保证集群内各机器的时间同步,否则集群无法启动,服务在运行时也会出现异常。

  1)在每台服务器安装NTP

  2)开启NTP服务器服务,以192.168.112.10作为server端

  3)查看服务器的NTP连接

  当服务器与时钟服务器的时间误差在50ms以内时,系统即认为时钟是同步的

  2.1.4 关闭防火墙和SELINUX

  1)关闭防火墙

  2)关闭seniux

  2.2 安装部署

  2.2.1 安装OBD

  1)下载OBD安装包

  https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/

  2)在中控机tango-01执行命令安装OBD

  2.2.2 安装OBClient

  1)下载OBClient安装包

  https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/

  2)在中控机tango-01执行命令安装OBClient

  2.2.3 安装OceanBase数据库和ODP

  1)从OceanBase官网下载OceanBase数据库、OBLibs和ODP,并复制到中控机上

  2)删除远程仓库

  3)将安装包添加至本地镜像

  4)查看镜像列表

  5)下载配置文件并修改

  修改用户名和密码

  修改每台机器的 IP、home_path、data_dir 和 redo_dir

  配置ODP并修改IP和home_path

  2.2.4 部署OceanBase集群

  1)部署 OceanBase 集群

  2)查看OceanBase集群

  2.2.5 修改集群配置

  1)使用 edit-config 命令进入编辑模式,修改集群配置

  2)重新启动obtest

  2.2.6 安装MySQL开发包

  执行以下命令安装MySQL开发包:

  2.2.7 连接 OceanBase 数据库

  运行以下命令,使用 OBClient 客户端连接 OceanBase 数据库:

  IP为OceanBase实例所在的机器IP地址。ODP默认使用端2883连接OBClient

  2.2.8 创建普通租户

  要使用OceanBase数据库,需要创建普通租户,业务数据必须在普通租户下运行。登录到数据库创建租户

  以上OceanBase集群环境部署完毕!

  参考资料:

  https://open.oceanbase.com/docs/productDocshttps://www.modb.pro/db/199883https://blog.csdn.net/u010454030/article/details/90414063数据库系列之TiDB存储引擎TiKV实现机制

  转载请注明原文地址:https://blog.csdn.net/solihawk/article/details/122224753

  文章会同步在公众号“牧羊人的方向”更新,感兴趣的可以关注公众号,谢谢!

路过

雷人

握手

鲜花

鸡蛋

文热点