OceanBase-概述

Posted 5ycode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OceanBase-概述相关的知识,希望对你有一定的参考价值。

文章目录

背景

前段时间学习了下tidb的体系架构,了解了其运行原理;今儿了解下OceanBase;

产品家族

先看下官网:https://www.oceanbase.com/

在OceanBase的产品分类里,一共有三大块,分布式数据库、工具体系、生态产品;(一个产品好不好用周边很关键);

分布式数据库

社区版(当前为V4.0)

介绍:兼容 mysql 的单机分布式一体化数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 内核通过大规模商用场景的考验,已服务众多行业客户;面向未来携手社区生态伙伴,共建开源开放的数据库内核和生态。

为什么选择社区版?

  • 稳定可信赖
    • 支持超大事务
    • RTO<30s
    • 允许时钟偏差达到2s,动态修改时钟;
  • 海量数据高性能
    • 海量数据,支持在线事务处理OLTP和在线分析处理OLAP的线性扩展;
    • TPC-C测试第一
  • 大幅提升KV能力
    • 支持OBKV,具备HBase模型和Table模型的NoSQL能力;
    • 相对HBase,二级索引下OBKV性能指数级提升;
  • 更低的存储和运维成本
    • 支持部署运行在PC服务器和低端SSD;
    • 高存储压缩率降低存储成本;
    • 无中心化设计
    • 原生多租户
    • 支持主流生态产品(prometheus、canal)
  • 及时响应的社区支持
    • 文档完善(阿里的文档没几个完善的)
  • 兼容MySQL开源生态
    • 这个是核心,最起码现在主流还是MySQL

产品架构

OceanBase 社区版数据库内核开源, 与 MySQL 兼容,对接虚拟化和大数据技术及产品,支持多种图形化的开发工具、运维监控工具和数据迁移工具;同时社区版提供开放的接口和丰富的生态能力,支持企业或个人更好的实现定制化业务需求。

整体架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3qLZ8Chw-1670410851150)(https://images.5ycode.com/images/OceanBase%E6%9E%B6%E6%9E%84%E5%9B%BE.jpeg-1)]

  • OBProxy:
    • 为应用程序屏蔽了OB内部的分区和副本分布等细节;
    • 应用程序发起请求后,由OBProxy转发SQL请求到合适的OBServer节点;
    • OBProxy是无状态的服务
    • 多个OBProxy节点通过负载均衡对应用提供统一的网络地址;
  • OBServer:
    • OB的一个集群由若干节点组成,这些节点分属于若干个可用区(zone);
    • zone是一个逻辑概念,即可以表示集群内具有相似硬件属性的一组节点(可以是一个城市,可以是一个机房,可以是一个机柜,也可以是一台服务器)
    • 一个OB集群内,可以创建多个隔离的数据库“实例”(租户),每个租户是一个独立的数据库,租户可以选择MySQL模式或Oracle模式;
    • 一个observer内,可以有多个属于不同租户的虚拟容器叫资源单元(unit),每个资源单元的资源都是独立的;
    • 一个租户在多个节点上的资源单元(unit)组成一个资源池;
    • OB中,一个表的数据可以按照一定的规则水平拆分为多个分片,每个分片叫做一个表分区,一行数据只能属于一个分区;一个表的分区可以分布在一个可用区内的多个节点上,每个物理分区有一个用于存储数据的存储层对象tablet,用于存储有序的数据;
    • tablet中的数据修改时,会记录redo到tablet对应的日志流里,每个日知录服务了其他所在节点上的多个tablet,为了容灾,每个日志流及tablet有多个副本;副本分散在不同的可用区里;有且只有一个副本接收修改操作,通过Multi-Paxos分布式共识实现副本之间的强一致性;

我们类比一下

传统数据库(MySQL)OceanBase数据库
物理机集群
固定配置的虚拟机资源单元(固定配置)
集群资源池
MySQL实例租户(MySQL兼容或Oracle兼容)
分区表(单节点)表分区(多节点,多分区)
binlogredo->日志流

客户案例

  • 携程旅行:没说具体业务,只是探索通过 OceanBase 社区版方案来替换原有 MySQL 方案;读性能提升2倍,写性能提升3倍;,节省2/3的存储;
  • 快手:也没说具体业务,也是解决线上MySQL分片过多带来的高运维成本;数据同步延迟减少3/4,存储成本降低至1/4;
  • 翼支付:消息中心,存储从72T–>17T;
企业版

OceanBase 企业版(OceanBase Database)是一款完全自研的企业级原生分布式数据库,在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。

为什么选择企业版

  • 高可用:
    • 三地五中心
    • 金融无损
    • RPO=0,RTO<30S
    • 数据零丢失
  • 高兼容
    • 高度兼容Oracle和MySQL
  • 水平扩展
    • 透明水平扩展
    • 快速的扩缩容
    • 准内存处理架构实现高性能
    • 支持集群节点超千
    • 单集群最大数据量超3PB(真实业务)
    • 最大单表行数达万亿级(真实业务)
  • 低成本
    • 基于LSM-Tree的高压缩引擎
    • 存储成本降低70%~90%;
    • 支持多租户
    • 同集群可为多个独立业务提供服务(资源隔离)
  • 实时HTAP
    • ”同一份数据,同一个引擎“,同时支持在线实时交易和实时分析;
    • ”一份数据“的多副本可以存储成多种形态,用于不同工作负载,保证数据一致性;
  • 安全可靠
    • 代码级可控
    • 自研分布式一体化架构
    • 大规模金融核心场景9年可靠性验证;
    • 数据存储和通信全链路透明加密

产品架构

客户案例

举的三个案例都是国字头的;

  • 中国工商银行:理财业务,两地三中心容灾、国产化ARM服务器,资源利用率达到75%;
  • 中国移动:山东移动的计费系统,效率提升30%,存储降低90%;由小机换为普通pc;
  • 中国石化:构建新一代只会加油站,推进中石化生活中和服务商转型战略(整合了23套分散系统);数据查询由分钟级降低到秒级,故障恢复由小时级降低为分钟级;
公有云

OceanBase 公有云(OceanBase Cloud)是构建在阿里云、AWS 等全球主流公有云基础设施上,基于完全自主研发的原生分布式数据库,提供弹性扩展、卓越性能、主流兼容的高性价比的数据库云服务。为客户在云上提供服务、弹性、监控、诊断、开发、迁移、备份、恢复的端到端数据库服务化解决方案。

为什么选择公有云?

  • 低存储成本
    • LSM-Tree 存储引擎
    • 编码压缩
  • 多租户灵活配置
    • 原生分布式多租户
    • 租户间数据和权限双重隔离;
  • 99.99% SLA
    • 三地五中心容灾标准
    • 单机服务器故障自愈
    • RPO=0,RTO<30s
  • 高兼容
    • 兼容Oracle和MySQL语法;
  • 弹性扩缩容
    • 单表容量超过3200亿行(2020年的时候真实业务)
    • 在线水平扩缩容
    • 自动负载均衡
    • 对应用透明
  • 实时HTAP
    • 一套引擎同事支持OLTP和OLAP

客户案例

  • 中华保险:没明确哪个业务,看样子是投保;
  • GCash:全站业务,存储空间下降70%;
  • 利楚商服:
  • 易仓科技:

总结

核心功能
  • 多副本高可用、强同步;
  • 多租户
  • 在线弹性伸缩容
  • 异地容灾/多活能力
  • 分区表、复制表等分布式能力
  • HTAP能力
  • MySQL/Oracle兼容性
  • 备份恢复
  • CDC能力
适用场景
  • mysql 实例规模很大,导致运维问题,不一致问题;
  • MySQL数据量非常大、存储成本非常高的场景;
  • 业务访问压力大或者变化大的场景
  • 复杂查询场景;

工具体系

迁移评估工具OMA

OceanBase 迁移评估工具 (OceanBase Migration Assessment,OMA)是 OceanBase 提供的数据库迁移评估的产品,为数据迁移提供精准的兼容性评估、高效的性能评估以及应用逻辑改造建议。OMA 支持评估Oracle、DB2 LUW、PostgreSQL 等多种数据库与 OceanBase 的兼容情况,提供画像分析和自动转换方案;支持应用负载回放功能,帮助客户预知迁移后可能的性能风险并提供优化方案;OMA 还支持评估 C、Java 业务代码以及驱动的兼容性以助力用户高效率、低成本迁移至OceanBase。

产品功能

  • 灵活的评估方式
    • 连接指定数据库,自动获取和扫描源数据库对象以及SQL语句
    • 支持从客户端工具连接到指定数据库获取DDL语句进行评估
    • 支持解析代码框架或负载捕获等离线文件中的SQL语句
  • 完备的数据库画像
    • 连接源端库,进行深度采集分析、生成源库画像
    • 根据画像:数据库拓扑、应用拓扑、负载、会话、热点数据
  • 系统的兼容性分析
    • 支持评估oracle、MySQL、PostgreSQL、TiDB、DB2等与OB的对象兼容性、SQL兼容性
  • 应用负载回放
    • 抓取源库SQL或数据库的负载流量、回放对应的SQL至目标OB库中
  • 分布式迁移方案推荐
    • OB未兼容的类型、语法OMA会提供基于最佳的转换规则的建议和方案
  • 全面的评估报告
    • 评估完成,OMA自动生成详细的评估报告,包括:画像分析、兼容性评估、性能评估等

产品架构

迁移工具OMS

OceanBase 数据迁移工具(OceanBase Migration Service,OMS)是 OceanBase 数据库一站式数据传输和同步的产品。它支持多种关系型数据库、消息队列与 OceanBase 数据库之间的数据复制,是集数据迁移、实时数据同步和增量数据订阅于一体的数据传输服务,OMS 帮助您低风险、低成本、高效率的实现 OceanBase 的数据流通,助力构建安全、稳定、高效的数据复制架构。

产品功能

  • 在线数据迁移
    • 支持Oracle、MySQL、DB2等数据库到OB的数据库对象迁移,全量和增量数据库的不停机迁移能力
  • 实时数据同步
    • 支持OB到多种数据库
    • 支持到Kafka、MQ等增量实时同步
  • 简便已用的管控功能
    • 提供数据传输过程的全生命周期管理(功能化)
  • 多重数据校验
    • 保证数据正确性、展示差异数据、提供快速修复能力
  • 轻量计算
    • 常见数据处理、数据过滤和数据转换功能
  • 强大的异构DDL转换
    • 提供自动转换异构数据库的DDL能力
  • 防循环复制支持
    • 解决增量数据的循环复制难题
    • 支持表级别异地多活能力
  • 强大的运维管理
    • 提供丰富的运行以及链路状况的实时监控数据
    • 提供多种同步组件的白屏运维管理工具
    • 支持多种告警渠道的配置

产品架构

系统架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8SiNcTdM-1670410851152)(https://images.5ycode.com/images/%E6%9E%B6%E6%9E%84%E5%9B%BE.png-1)]

开发工具ODC

OceanBase 开发者工具(OceanBase Developer Center,ODC)作为 OceanBase 数据库量身打造的企业级数据库开发平台,旨在帮助企业安全、高效的使用数据库。您可通过 ODC 创建和管理数据库中的表、视图等 10 余种数据库对象。基于 WebSQL,ODC 提供了 SQL 窗口和匿名块窗口作为数据库开发者开发和诊断 SQL 和 PL/SQL 的工作区。您还可为指定角色分配对应资源及该资源的访问权限,企业内不同角色间的开发协作亦会变得简单可控。

产品功能

  • 多窗口开发
    • 提供SQL窗口、匿名窗口和命令行窗口
    • 智能提示、语法高亮、格式化
  • 结果集管理
    • 支持全部和部分结果集的导出
  • PL调试
    • 支持断点调试
    • 可摘结果观察区查看调试过程中各种信息的变化
  • 导入导出
    • 支持多维度的对象内容、数据格式的导入导出
  • 模拟数据
    • 可快速为目标表生成指定量和规则化的测试数据
  • 权限管理

  • 流程管控
    • 对仅具有可读权限的用户根据不同的任务类型定制不同的审批流程
  • 操作审计
    • 个人设置、密码管理、链接管理、数据库操作等14类审计事件类型;

产品架构

产品文档里的最新架构图

运维工具OCP

OceanBase 运维管理工具(OceanBase Control Platform,OCP)是一款为 OceanBase 数据库集群量身打造的企业级管理平台,兼容 OceanBase 所有主流版本。OCP 提供对 OceanBase 集群的图形化管理能力,包括数据库组件及相关资源的全生命周期管理、监控告警、性能诊断、故障恢复、备份恢复等,旨在协助客户更加高效地管理 OceanBase 数据库,降低企业的IT运维成本和用户的学习成本。

很有意思的是,官方首页运维工具那对OCP的解释OceanBase Control Plaform ,而文档里对OCP的解释是OceanBase Cloud Platform。

产品功能

  • 全生命周期管理(运维管控)
    • 对OB资源的统一管理
    • 实现对资源的额创建、备份恢复、监控告警、巡检、自治、升级、删除等全生命周期管理
  • 备份恢复
    • 提供对OB集群、租户的备份恢复能力;
    • 支持自动将全量、增量、日志备份到NAS、OSS等
    • 支持一键恢复操作
  • 监控告警
    • 支持主机、集群、租户等维度对OB的监控
    • 提供钉钉、微信、邮件等告警方式
  • 容灾管理
    • 支持自动化部署主备集群
    • 支持主备解耦、主备切换、容灾应急切换等功能
  • 诊断优化
    • 针对SQL提供感知、根因分析、执行建议的诊断能力
    • 实现了集群复制、会话、死锁、容量等维度的诊断能力
  • 自治服务
    • 提供从事件感知、根因分析、自治自愈到告警通知、应急处理的全链路自治能力

产品架构

系统架构

系统中,主要包含6个模块

  • 管理Agent(Management Agent)
    • 安装在受OCP监控的主机上
    • 通过OCP管理控制台进行统一的部署和升级
    • 控制目标主机的启停、远程执行任务和收集指标
  • 管理服务(Management Service)
    • 基于java
    • 管理Agent和元信息数据库通信,
    • 收集和存储远程主机上的信息
    • 与OB集群通信,远程执行对OB的运维命令
  • 元信息数据库(Metadata Repository)
    • 元信息库或MetaDB
    • 存储管理Agent程序收集到的信息
    • 安装OCP前,元信息库必须已经存在
  • 监控数据库(Monitor Repository)
    • 云信息库或MonitorDB
    • 用于存储OCP采集的监控数据
  • 管理控制台(Management Console)
    • 提供访问、监控和管理整个数据库集群的web界面
    • 提供数据大盘
  • OBProxy(OceanBase 专用反向代理)
    • 是用户连接到OB的代理服务,负责将OCP管理程序向数据库发送的各种请求路由到云信息集群中,并将返回的信息发给OCP的管理服务

生态产品

图数据库

这个就不看了

时序数据库

CeresDB 是基于 OceanBase 分布式存储引擎设计的时序数据库产品,用来存储和管理时间序列数据,提供高性能读写、高压缩比低成本存储、可视化查询等功能,有效解决由于采集数据点量大、高频造成的存储成本高,写入和查询分析效率低的问题。适用于物联网 loT、运维监控、金融分析等场景。

产品功能

  • 时序数据的采集和存储
    • 每秒千万级数据点的读写
  • 时序数据的计算和分析能力
    • 支持预计算能力(降精度、数据插值、数据聚合)
    • 支持基于SQL的OLAP分析能力
  • 存储分层
    • 基于存储与计算分离架构
    • 支持多种存储介质
    • 支持分级存储和数据冷热分离能力
  • 开源兼容
    • 提供HTTPAPI接口
    • 兼容OpenTSDB、Prometheus协议
  • 企业级能力
    • 数据分片、计算与存储均可水平扩展

产品架构

以上是关于OceanBase-概述的主要内容,如果未能解决你的问题,请参考以下文章

OceanBase-概述

OceanBase-概述

[云原生专题-48]:Kubesphere云治理-操作-多租户概念概述

什么是多租户saas架构设计

从OceanBase TPC-C测试报告看ORACLE兼容性进展

Nacos 1.2.0 权限控制初探,保障微服务安全及 Nacos 在颜铺科技的落地与实践