学习笔记(一) | OceanBase

简介: Oceanbase数据库工程师认证学习笔记

(一)分布式数据库与集中式数据库差异

  1. 传统集中式数据库面临的挑战

(1) 它们普遍采用了基于“单点高端硬件”的架构,对硬件要求很高,部署成本也很高,后期维护这些高端硬件也需要耗费大量的人力物力
(2) 传统数据库虽然能很好的应对高并发查询场景,但一旦需要访问的并发量太大,剧烈的资源争抢就会导致整体性能明显下降

  1. 传统数据库通常使用“分库分表”中间件的方案(mysql数据库常用的MyCAT中间件),利用中间件将多个单点数据库整合在一起实现水平扩展
  2. 当要做跨库事务的时候,必须依赖中间件,但这又引入了其他问题:

(1)应用入侵性问题(2)诸多功能限制(3)不能保证数据一致性

  1. “分库分表”方案:使用通用的数据库,可以实现数据库线性的扩容;数据库是单点数据库,数据库之间没有联系,不知道其他数据库的存在,依靠中间件完成需要跨库的事务;数据库中间件连接各个数据库,实现分库分表;

优点:(1)线性扩展(2)技术成本低
缺点:(1)跨库分布式事务(2)全局一致性(3)负载均衡(4)跨库的复杂SQL运算

  1. 原生分布式数据库一般采用多副本一致性的架构

优势:(1)数据/服务高可用(2)线性扩容(3)低成本(4)全局一致性(5)灵活的部署方式(6)对业务透明

  1. 在分布式数据库相对于传统数据库比较,服务器自身无需外挂高端存储和使用Raid等高可靠性技术;当扩容时只需将新服务器加入到数据库集群中即可,集群会自动将业务数据迁移到新机器,等新机器追平数据后,系统自动将流量切到新服务器;当需要缩容时,只需将服务器移除集群,系统会自动做反向操作。
  2. 分布式数据库是在数据库引擎层面解决了分布式的问题。
  3. OceanBase数据库采用了Paxos协议保证了数据高可用和服务高可用,每一份数据都有多个副本,分别存储在集群内的不同服务器中,单个服务器的故障不影响整个业务;OceanBase的可用性可以达到RPO=0,RTO<30秒,也就是少数节点的故障后,系统可以在30秒内自动恢复,且恢复后,不丢失数据。
  4. OceanBase数据库与集中式数据库的区别:

(1)产品架构方面:
集中式数据库是“单点集中式”,构建在高端硬件基础上;
OceanBase是原生的分布式架构,并采用业界最严格的Paxos协议,基于普通PC硬件设计
(2)数据可靠性和服务高可用性方面:
集中式数据库的高可用性需要依赖高端硬件,普遍采用主从复制模式,节点故障情况下,会有数损失的可能性(RPO>0),且不能自动恢复服务,需要人工判断主节点已宕机,并手工启动备节点,恢复时间通常以小时为单位计算。
OceanBase使用普通PC服务器,主副本故障的情况下,剩余的从副本可以自动选出新的主副本(30s左右),而且剩余的两份依然可以进行强同步,保证RPO = 0
(3)扩展性方面:
集中式数据库数据存储只能单点内实现纵向扩展;
OceanBase在MPP架构下,每台普通的PC服务器都有自己的计算能力和存储能力,扩展时只需要扩展普通的PC服务器,可实现数据节点和计算节点的水平扩展,在网络带宽足够的前提下,可以扩充至任意数量。
(4)使用成本:传统数据库依赖于高端硬件,需要高昂的基础设施费用和软件授权以及产品使用费用;OceanBase数据库依赖于普通PC服务器,成本较低

(二)OceanBase数据库介绍:

  1. OceanBase数据库核心特性:(5高1多)

高扩展:水平扩展、按需在线扩容,缩容,不停服务、单集群突破100台服务器
高可用:基于Paxos协议强一致性、啥少数副本故障,数据不丢,服务不停、RPO=0;RTO<30s
高性能:峰值6,100万次/s、单表最大3,200亿行、准内存处理性能
高兼容:兼容Orcle/MySQL、降低业务迁移改造版本
高透明:DBaaS架构、资源隔离、自动负载均衡
多租户:全局一致性快照、全局索引、自动事务两阶段提交

  1. TPC-C测试OceanBase数据库过程:

第一(基于普通PC服务器的水平扩展能力):整个测试过程,OceanBase集群使用了1557台服务器。
第二(稳定性):系统带负载运行8小时,性能抖动不超过0.5%。
第三(性价比):OceanBase的测试采用阿里云公有云标准ECS,平均成本3.98¥/tpmC。

  1. OceanBase数据库证明了分布式数据库可在保证ACID的前提下,实现水平扩展
  2. OceanBase数据库借助完备的分布式事务能力,完备的SQL引擎,优异的性能以及线性水平扩展等能力,很好的解决了海量数据下的在线、高并发、低延时查询等需求;
相关文章
|
SQL 缓存 关系型数据库
OBCP题目及解析
OBCP题目及解析
1452 0
|
存储 SQL 分布式数据库
OBCP第二章 OB存储引擎高级技术
OBCP第二章 OB存储引擎高级技术
351 0
|
存储 关系型数据库 MySQL
【阿里规约】阿里开发手册解读——数据库和ORM篇
从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。
【阿里规约】阿里开发手册解读——数据库和ORM篇
|
10月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
854 10
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
|
存储 安全 数据安全/隐私保护
ERP系统的灾备与数据恢复:保障企业业务连续性
【7月更文挑战第29天】 ERP系统的灾备与数据恢复:保障企业业务连续性
656 2
|
前端开发 JavaScript UED
使用JavaScript实现滑动动画的几种方法
使用JavaScript实现滑动动画的几种方法
|
Kubernetes 持续交付 Go
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
|
XML 前端开发 Java
一份 Spring Boot 项目搭建模板
一份 Spring Boot 项目搭建模板 前言 建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一
一份 Spring Boot 项目搭建模板
|
移动开发 小程序 API
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
354 2
|
机器学习/深度学习 算法 定位技术
美团、滴滴、蔚来、货拉拉、Momenta、易智瑞、昆仑万维等暑期实习、日常实习技术岗面试汇总
美团、滴滴、蔚来、货拉拉、Momenta、易智瑞、昆仑万维等暑期实习、日常实习技术岗面试汇总
312 1