一、OpenTenBase 简介
OpenTenBase 是一款 面向高可用和高扩展场景的分布式关系型数据库集群平台,核心特点是支持多主节点写入、数据自动同步以及强一致事务处理。
在实际部署中,OpenTenBase 可以运行在一台或多台服务器上,业务数据分布存储在多个物理节点中。用户在使用时,只需像访问普通数据库一样提交 SQL 语句,OpenTenBase 会自动完成查询拆分、调度执行以及结果汇总,对上层应用透明。
在数据存储层面,OpenTenBase 提供了两种表存储模式:
-
distributed(分布式表)
-
replicated(复制表)
当 SQL 请求进入系统后,协调节点会根据表类型和数据分布策略,将请求下发到对应的数据节点执行,最终返回完整结果。
二、OpenTenBase 的整体架构解析
OpenTenBase 采用 Share Nothing(无共享)分布式架构。在这种架构下:
-
各节点相互独立
-
不共享磁盘和内存
-
通过网络协议进行通信
-
支持横向扩展
这意味着,OpenTenBase 可以部署在普通的 x86 服务器上,而无需依赖昂贵的专用硬件,具备良好的性价比和扩展能力。
三、OpenTenBase 的三大核心组件
1. Coordinator(协调节点,CN)
协调节点是整个集群的访问入口,主要职责包括:
-
接收客户端请求
-
生成和优化查询执行计划
-
将 SQL 请求分发到对应的数据节点
-
汇总执行结果并返回给客户端
需要注意的是:
CN 节点只保存系统级元数据,不存储具体业务数据。
多个 CN 节点之间是对等关系,对外提供一致的数据库视图。
2. Datanode(数据节点,DN)
数据节点负责:
-
实际存储业务数据分片
-
执行协调节点下发的 SQL 操作
-
返回执行结果
在集群中,每个 DN 节点只处理自身负责的数据,多个 DN 节点可以并行工作,从而显著提升整体吞吐能力。
3. GTM(全局事务管理器)
GTM 是 OpenTenBase 实现分布式事务一致性的关键组件,主要功能包括:
-
管理全局事务 ID
-
协调分布式事务提交与回滚
-
维护全局对象(如序列等)
在多节点并发写入场景下,GTM 能确保事务的一致性和可靠性。
四、从源码开始部署 OpenTenBase(CentOS 7 实战)
本文以 CentOS 7 虚拟机环境 为例,演示 OpenTenBase 的基本安装流程。
1. 安装依赖环境
2. 创建运行用户
注意:所有参与集群部署的服务器都需要创建相同用户
3. 获取源码
可从 Gitee 或 GitHub 拉取源码:
4. 编译与安装
五、初始化数据库实例
1. 创建数据库用户与数据目录
2. 初始化数据库
六、服务管理与基本使用
启动与停止数据库
基本使用示例
七、配置开机自启动(systemd)
创建服务文件:
写入内容:
启用服务:
八、OpenTenBase 冷热数据分离原理简述
在实际生产环境中,OpenTenBase 支持通过 节点分组(Group) 实现冷热数据分离:
-
热数据:存放在高性能 DN 组,频繁访问
-
冷数据:存放在低频访问 DN 组,降低资源占用
例如:
-
2022-01-01 之后的数据作为热数据
-
更早的数据划分为冷数据
通过执行计划可以清晰看到:
-
热数据查询命中 default_group
-
冷数据查询命中 cold_group
从而实现查询性能与资源利用率的平衡。
九、总结
通过以上步骤,你已经完成了 从源码编译到基本可用的 OpenTenBase 集群部署。在使用方式上,它与 PostgreSQL 保持高度兼容,非常适合逐步上手。
如果是初次使用,建议:
-
先熟悉基础 SQL 操作
-
再尝试分布式表和冷热数据分离
-
最后再进行生产级集群优化
本文主要作为入门级参考,帮助你理解 OpenTenBase 的核心思想与部署流程。
官方文档可参考:
👉 https://docs.opentenbase.org/
原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/2113.html