内核实战教程第1期|数据库系统概述,带你走近 OceanBase 研发环境

简介: 想参加 OceanBase 数据库大赛,但苦于不知从哪里开始入手?OceanBase 数据库大赛专门为大家设置了 7 期免费的赛前训练营「从0到1数据库内核实战教程」💪8月11日 19:30 「从0到1数据库内核实战教程」第一期直播也即将和大家见面啦!

小伙伴们看过来👀

想参加 OceanBase 数据库大赛,但苦于不知从哪里开始入手?

OceanBase 数据库大赛专门为大家设置了 7 期免费的赛前训练营「从0到1数据库内核实战教程」💪

8月11日 19:30「从0到1数据库内核实战教程」第一期直播也即将和大家见面啦!


本期直播我们邀请到了蚂蚁集团研发总监,OceanBase 开源负责人封仲淹(花名:纪君祥)OceanBase 技术专家王运来(花名:宁封)以及 OceanBase 内核工程师王泽林(花名:官明)为大家介绍数据库系统概述、OceanBase 架构介绍和MiniOB/OceanBase 开发环境搭建。


本期直播能帮你解决什么?


如果你 0 基础,还不了解数据库,赶快报名直播,老司机带你快速 Get 经典数据库内容!


如果你在学校虽然学习了很多数据库理论知识,但却苦于没有在真实企业级环境中动手实践过,本期「从0到1数据库内核实战教程」以 OceanBase 为例,专门为大家搭建了一个企业级的应用场景!


不仅可以带你从零开始系统化地学习数据库理论知识,同时还能熟悉 MiniOB 和 OceanBase 数据库代码的整体架构和模块构成,以及一些关键数据的结构和方法。从理论到实践,带你掌握数据库内核开发,为后期深入学习数据库内核打下夯实的基础。赶快扫描海报上方二维码报名直播,和讲师进行在线互动吧!



直播内容抢“鲜”知

数据库系统概述


数据库管理系统的组成

DBMS(数据库管理系统) 允许用户创建数据库并对数据库中的数据进行查询和修改,同时提供故障时的数据恢复功能和多用户同时访问时的并发控制功能。


如图是一个 DBMS 的内部结构示意图。其中单线框表示系统模块,双线框表示内存中的数据结构,实线表示控制流+数据流,虚线表示数据流。该图反映了 DBMS 的几大主要功能的处理流程,即数据定义、数据操纵和事务管理,这些功能均依赖底层的存储管理及缓冲区管理组件提供对磁盘中数据的访问支持。



数据库模型和语言

关系模型采用的数据结构称为关系。在关系模型中,数据库中的全部数据及数据间的联系都用关系来表示。关系是一个无序的元组集合,每个元组由一组属性值构成,表示一个实体。一个有n个属性的关系称为n元关系。由于关系中的元组是无序的,因此DBMS可以采用任何它希望的方式存储它们,以便进行优化。


SQL 是关系数据库的标准语言,它是1974 年由Boyce和Chamberlin提出的,最初叫 Seque(Structured English Query Language), 并在IBM公司研发的关系数据库管理系统原型System R上实现,后改名为SQL(Structured Query Language)。SQL是一种通用的、功能极强的关系数据库语言,其功能不仅仅是查询,还包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。但是,数据查询仍然是SQL中最重要、也最具特色的功能。


MiniOB 概述和编译环境搭建


MiniOB 概述

MiniOB 设计的目标是让不熟悉数据库设计和实现的同学能够快速地了解与深入学习数据库内核,期望通过相关训练之后,能够对各个数据库内核模块的功能与它们之间的关联有所了解,并能够在使用数据库时,设计出高效的 SQL。MiniOB 诸多模块做了简化,比如不考虑并发操作。 注意:此代码仅供学习使用,不考虑任何安全特性。


MiniOB 调试

  1. 首先在自己的 GitHub 中创建一个新的代码库。
  2. 拉取 MiniOB 官方仓库代码到自己的仓库。

# 将代码拉到本地

gitclone https://github.com/oceanbase/miniob.git

# 进入到 miniob 目录,删除 .git 目录,清除已有的 git 信息

cdminiob

rm-rf .git

# 重新初始化 git 信息,并将代码提交到自己的仓库

gitinit

gitadd .

gitcommit -m 'init'  # 提交所有代码到本地仓库

# 将代码推送到远程仓库

gitremote add origin https://github.com/hnwyllmm1/miniob.git # 注意替换命令中的信息为自己的仓库信息

gitbranch -M main

gitpush -u origin main

  1. 调试 MiniOB

调试 c/c++ 程序,常用的有两种方式,一是通过打印日志进行调试,二是借助 GDB 调试器进行调试。通过调试程序,可以熟悉程序执行的每一步细节,不仅可以定位问题,也可以用来熟悉代码,增加编程能力。


OceanBase 概述和研发环境搭建


OceanBase 架构和基本介绍



OceanBase 的一个集群由若干个节点组成。这些节点分属于若干个区(Zone),每个节点属于一个区。区是一个逻辑概念,表示集群内具有相似硬件可用性的一组节点,它在不同的部署模式下代表不同的含义。例如,当整个集群部署在同一个数据中心(IDC)内的时候,一个区的节点可以属于同一个机架,同一个交换机等。当集群分布在多个数据中心的时候,每个区可以对应于一个数据中心。每个区具有 IDC 和地域(Region)两个属性,描述该区所在的 IDC 及 IDC 所属的地域。一般地,地域指 IDC 所在的城市。区的 IDC 和 Region 属性需要反映部署时候的实际情况,以便集群内的自动容灾处理和优化策略能更好地工作。


在 OceanBase 中,一个表的数据可以按照某种划分规则水平拆分为多个分片,每个分片叫做一个表分区,简称分区(Partition)。某行数据属于且只属于一个分区。分区的规则由用户在建表的时候指定,包括 hash、range、list 等类型的分区,还支持二级分区。例如,交易库中的订单表,可以先按照用户 ID 划分为若干一级分区,再按照月份把每个一级分区划分为若干二级分区。对于二级分区表,第二级的每个子分区是一个物理分区,而第一级分区只是逻辑概念。一个表的若干个分区可以分布在一个区内的多个节点上。


为了能够保护数据,并在节点发生故障的时候不中断服务,每个分区有多个副本。一般来说,一个分区的多个副本分散在多个不同的区里。多个副本中有且只有一个副本接受修改操作,叫作主副本(Leader),其他叫作从副本(Follower)。主从副本之间通过基于 Multi-Paxos 的分布式共识协议实现了副本之间数据的一致性。当主副本所在节点发生故障的时候,一个从节点会被选举为新的主节点并继续提供服务。


OceanBase 研发环境搭建

本系列主要指导开发者如何参与到 OceanBase 的研发,解决上手 OceanBase 开发过程中遇到的问题。

  1. 如何编译 OceanBase 源码
  2. 如何设置 IDE 开发环境
  3. 如何成为 OceanBase Contributor
  4. 如何 debug OceanBase
  5. 如何运行测试


8月11日 19:30,准时相约「从 0 到 1 数据库内核实战教程」官方直播间。手把手教你如何编译和调试 MiniOB & OceanBase。


为避免错过直播,赶快扫描下方二维码进入「OceanBase 入门到实战」群

和更多小伙伴一起学习进步

为帮助大家更好的学习数据库知识,结交新的朋友

未来 OceanBase Meetup 也会走到更多的城市中

大家进群后修改自己的群昵称哦【格式:姓名-城市-职位】

相关文章
|
19天前
|
监控 Java 应用服务中间件
达梦数据库DEM监控部署教程分享
达梦数据库DEM监控部署教程分享
46 2
|
12天前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
59 0
|
20天前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
12天前
|
Oracle 关系型数据库 MySQL
OceanBase 与传统数据库的对比
【8月更文第31天】随着云计算和大数据技术的发展,分布式数据库因其高扩展性、高可用性和高性能而逐渐成为企业和开发者关注的焦点。在众多分布式数据库解决方案中,OceanBase作为一个由阿里巴巴集团自主研发的分布式数据库系统,以其独特的架构设计和卓越的性能表现脱颖而出。本文将深入探讨OceanBase与其他常见关系型数据库管理系统(如MySQL、Oracle)之间的关键差异,并通过具体的代码示例来展示这些差异。
48 1
|
12天前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
14 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
15天前
|
SQL 关系型数据库 MySQL
干货!python与MySQL数据库的交互实战
干货!python与MySQL数据库的交互实战
|
20天前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
18天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)
在数字化时代背景下,本文详细介绍了如何使用Spring Boot框架结合Vue.js技术栈,实现一个前后端分离的考试管理系统。该系统旨在提升考试管理效率,优化用户体验,确保数据安全及可维护性。技术选型包括:Spring Boot 2.0、Vue.js 2.0、Node.js 12.14.0、MySQL 8.0、Element-UI等。系统功能涵盖登录注册、学员考试(包括查看试卷、答题、成绩查询等)、管理员功能(题库管理、试题管理、试卷管理、系统设置等)。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)
|
21天前
|
关系型数据库 OLAP 分布式数据库
揭秘Polardb与OceanBase:从OLTP到OLAP,你的业务选对数据库了吗?热点技术对比,激发你的选择好奇心!
【8月更文挑战第22天】在数据库领域,阿里巴巴的Polardb与OceanBase各具特色。Polardb采用共享存储架构,分离计算与存储,适配高并发OLTP场景,如电商交易;OceanBase利用灵活的分布式架构,优化数据分布与处理,擅长OLAP分析及大规模数据管理。选择时需考量业务特性——Polardb适合事务密集型应用,而OceanBase则为数据分析提供强大支持。
61 2
|
23天前
|
JavaScript Java Maven
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和Vue.js实现的在线求职平台。该平台采用了前后端分离的架构,使用Spring Boot作为后端服务
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)