OceanBase 分布式架构学习笔记

写这篇帖子的目的是帮助自己和初学者快速了解 OMS、分区、副本、Leader 等概念,加快学习速度,梳理架构

1. OMS 是什么?

OMS(OceanBase Migration Service) 是 OceanBase 官方提供的数据迁移工具。

  • 功能:
    • 把已有数据库(如 MySQL、Oracle)中的数据迁移到 OceanBase。
    • 支持全量迁移(历史数据)+ 增量迁移(实时变更数据)。
  • 特点:
    • 减少手工操作,提供可视化管理界面。
    • 适合数据库上云、替换数据库场景。

:pushpin: 可以把 OMS 理解为一条 “数据运输通道”,帮助旧系统平滑过渡到 OceanBase。

2. OceanBase 的分区(Partition)

  • OceanBase 的数据表默认是 分区表
  • 数据按一定规则(如主键范围、哈希)拆分成多个分区(Partition)。
  • 每个分区就像一小块独立的数据集,可以分布到不同的机器。

:pushpin: 分区的目的:

  • 解决数据量过大问题:数据拆分存储,分布到不同节点。
  • 提升并发能力:不同分区可以并行处理 SQL 请求。

3. OceanBase 的副本(Replica)

  • 每个分区都会有多个 副本(Replica)
  • 副本 = 分区的数据拷贝。
  • 存放在不同的节点上,保证高可用。

副本类型:

  1. 全功能副本(Full Replica)
  • 存储数据 + 索引。
  • 既能参与写入,也能参与查询。
  1. 只读副本(Readonly Replica)
  • 只提供查询能力,不能参与写入。
  • 常用于报表、查询分流。

4. Leader 的含义

在 OceanBase 里,Leader 是某个分区的主副本

  • 一个分区的多个副本中,只有一个 Leader。
  • Leader 才能处理写请求(INSERT、UPDATE、DELETE)
  • 其他副本叫 Follower,它们从 Leader 同步数据。

:pushpin: 可以这样理解:

  • 分区 = 数据被切成的“小块”
  • 副本 = 每块数据的多份备份
  • Leader = 某个分区的“话事人”,负责处理写入、协调同步。

5. 分区、副本、Leader 的关系图(类比)

假设有一张表被切成 3 个分区

  • 分区 P1、P2、P3。
  • 每个分区有 3 个副本(存放在不同节点)。
分区 P1 → 副本1 (Leader)  副本2 (Follower)  副本3 (Follower)
分区 P2 → 副本1 (Follower) 副本2 (Leader)   副本3 (Follower)
分区 P3 → 副本1 (Follower) 副本2 (Follower) 副本3 (Leader)

特点:

  • Leader 分散在不同节点上,避免单点压力。
  • 如果某个 Leader 节点挂了,Follower 可以被选举为新的 Leader。

6. 总结记忆

  • OMS:迁移工具,帮助旧库数据进入 OceanBase。
  • 分区(Partition):把大表拆小块,分布式存储。
  • 副本(Replica):每个分区的数据备份,多份存不同节点。
  • Leader:分区副本里的“主副本”,负责写入与同步。

类比:

  • 分区 = 把一本大字典拆成多本小册子。
  • 副本 = 每本小册子都有好几份复印件。
  • Leader = 每本小册子的“原件”,大家要写内容只能写在原件上,再分发给复印件。

感觉有用,请评论加点赞哦*

1 个赞

交流口群1057942717

点赞:+1:

1 个赞

厉害了!学习一下! :+1:

1 个赞