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兼容) |
分区表(单节点) | 表分区(多节点,多分区) |
binlog | redo->日志流 |
客户案例
- 携程旅行:没说具体业务,只是探索通过 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-概述的主要内容,如果未能解决你的问题,请参考以下文章
[云原生专题-48]:Kubesphere云治理-操作-多租户概念概述