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 文章会同步在公众号“牧羊人的方向”更新,感兴趣的可以关注公众号,谢谢! |
无论是在学校还是在社会中,大家一定都接触过一些使用较为普
在日常的学习、工作、生活中,大家都接触过很多优秀的文案吧
在学习、工作、生活中,越来越多人热衷于在社交平台上发布文案,
抖音最火春游文案190句 在平凡的学习、工作、生活中,大家或
情人节高情商发朋友圈文案220句 随着社交网络的兴起,越来越