当前位置: 首页 > backend >正文

在 CentOS 7 上搭建 OpenTenBase 集群:从源码到生产环境的全流程指南

目 录

  • 什么是OpenTenBase
  • OpenTenBase源码编译安装
    • 安装依赖
    • 创建opentenbase用户
    • 源码获取
    • 编译安装
    • 初始化数据库
    • 初始化数据库集群
    • 启动与停止服务
    • 基本使用示例
    • 开机自启动配置
  • 总结
    • 官网教程链接

什么是OpenTenBase

OpenTenBase 是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将 OpenTenBase 配置一台或者多台主机上, OpenTenBase 数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是 distributed 或者 replicated ,当向OpenTenBase发送查询 SQL时, OpenTenBase 会自动向数据节点发出查询语句并获取最终结果。

OpenTenBase 采用分布式集群架构(如下图), 该架构分布式为无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署 OpenTenBase 数据库集群
https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/11456577/20250823-efa47977.png?q-sign-algorithm=sha1&q-ak=AKID5-yd54daW5Ks9MuQ6q1_lu8nL6-JrQHh8nc2lb_c9lhwtMoT4_bdnBQtw72dh80o&q-sign-time=1755945712%3B1755949312&q-key-time=1755945712%3B1755949312&q-header-list=host&q-url-param-list=&q-signature=5a8e40534d59464829713b60f658728f81db0a46&x-cos-security-token=j6aH3TLGYGHUyXZfwT5F9j5O9JNBmYza3d2ce82e0f48120f1e36e53e77cd520b8_XeTEM6cE3Us8iA4fctU8b00OvC0Re_SZqiVa4yEEie42wIwpTPmwFu65BZBu5-5s9SfqnlIspGz77LiML9TyhW2-Lvt5LDkP2Y8zUjRLqu0zf1q9drwuLkAgBd-7Ifs-AZwQYyNNhP3JCVVjTkm9QGRnUUrFd41ah2CJmNcAZg9-1D9B3TNOuzIQHgJvtisOUk95YvrO2CaRLbhKgECPnhdKlDlLCs9zr0UasDX41TXdRm0LjA2iqP0WflZagBhsmedalNxdQOqLB_Yw5ZrA6btqqfymvYhrdHokob3PRD2R1eT44cKs75xtBt-7g0RQ_mn6EySEZTkRxiv5L5G-B6AcWDUx4VBKwkIvgVIPHGSsy74FQfqRHwJHgfEwl8iHQZ4BXHjaXLE3DWHsaPpX51K1D68Zz0HAgdqFWMPThtTXJo0_y8kxbnz_3uZq2VJi4QqSA3uSVJuUpgR_USz802v_XvF5PiaTjDnq0zTn4IVw4c2xeZTggj3gwYDOTq7y0D8C7k5rIh9O51CSw5IPleRnKoGrgeSOyj1hO8Ci1g4xyrtNNPWx20pZhkwvlHI9ve8JfhCRZG53ld03m7kuNlpgoHhH-DnJRT67RMBkN0uMxp9TnTEDP1F058_XsKr7yMl_applKR_e4gcSEdSzAhFKZPxx2si4_KoXI6DBmO2LM57LHlGdi_SXEV9x2u

下面简单解读一下OpenTenBase的三大模块

  • Coordinator:协调节点(简称CN)
    业务访问入口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;在功能上CN上只存储系统的全局元数据,并不存储实际的业务数据。

  • Datanode:数据节点(简称DN)
    每个节点还存储业务数据的分片在功能上,DN节点负责完成执行协调节点分发的执行请求。

  • GTM:全局事务管理器(Global Transaction Manager)
    负责管理集群事务信息,同时管理集群的全局对象,比如序列等。

接下来,让我们来看看如何从源码开始,完成到OpenTenBase集群环境的搭建。

OpenTenBase源码编译安装

我们这里使用虚拟机里面的CentOS 7进行测试

安装依赖

yum -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex git

在这里插入图片描述

创建opentenbase用户

注意:所有需要安装OpenTenBase集群的机器上都需要创建

mkdir /data
useradd -d /data/opentenbase -s /bin/bash -m opentenbase
passwd opentenbase # set password

在这里插入图片描述

源码获取

这里使用的是国内的gitee,大家也可以使用github上面的

git clone https://gitee.com/mirrors/OpenTenBase.git
git clone https://github.com/OpenTenBase/OpenTenBase.git

在这里插入图片描述

编译安装

# 创建编译目录
mkdir build && cd build# 配置编译选项
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/opentenbase# 编译并安装
make -j$(nproc)
sudo make install

在这里插入图片描述

初始化数据库

创建数据库用户和目录

# 创建数据库用户
sudo useradd -m otb
sudo passwd otb# 创建数据目录
sudo mkdir -p /data/opentenbase
sudo chown -R otb:otb /data/opentenbase

在这里插入图片描述

初始化数据库集群

切换到 otb 用户执行:

su - otb# 设置环境变量
echo "export PATH=/usr/local/opentenbase/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc# 初始化数据库
initdb -D /data/opentenbase

在这里插入图片描述

启动与停止服务

# 启动数据库
pg_ctl -D /data/opentenbase -l logfile start# 停止数据库
pg_ctl -D /data/opentenbase stop# 重启数据库
pg_ctl -D /data/opentenbase restart

在这里插入图片描述

基本使用示例

# 进入数据库
psql -U otb -d postgres# 创建数据库
CREATE DATABASE testdb;# 切换到数据库
\c testdb# 创建表
CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(50),age INT
);# 插入数据
INSERT INTO users (name, age) VALUES ('Alice', 25), ('Bob', 30);# 查询数据
SELECT * FROM users;

开机自启动配置

sudo vi /etc/systemd/system/opentenbase.service

写入以下内容:

[Unit]
Description=OpenTenBase Database Service
After=network.target[Service]
Type=forking
User=otb
ExecStart=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase -l /data/opentenbase/logfile start
ExecStop=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase stop
ExecReload=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase restart[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl daemon-reexec
sudo systemctl enable opentenbase
sudo systemctl start opentenbase

总结

到这里,你已经在 CentOS 7 上完成了 OpenTenBase 的安装与配置,可以像 PostgreSQL 一样使用它。如果你是第一次接触,建议从简单的 SQL 语句和表操作入手,然后逐步尝试 OpenTenBase 的分布式特性。
本文档只是给用户一个简单的指引,演示如何从源码开始,一步一步搭建一个完整的OpenTenBase集群。

官网教程链接

https://docs.opentenbase.org/

在这里插入图片描述

http://www.xdnf.cn/news/18501.html

相关文章:

  • SpringMVC相关自动配置
  • 第四十三天(JavaEE应用ORM框架SQL预编译JDBCMyBatisHibernateMaven)
  • 算法训练营day60 图论⑩ Bellman_ford 队列优化算法、判断负权回路、单源有限最短路
  • Vue 3 useModel vs defineModel:选择正确的双向绑定方案
  • [特殊字符] 在 Windows 新电脑上配置 GitHub SSH 的完整记录(含坑点与解决方案)
  • 简单留插槽的方法
  • 生成一个竖直放置的div,宽度是350px,上面是标题固定高度50px,下面是自适应高度的div,且有滚动条
  • 航空复杂壳体零件深孔检测方法 - 激光频率梳 3D 轮廓检测
  • FFMPEG相关解密,打水印,合并,推流,
  • 鸿蒙中Snapshot分析
  • Vue3+ElementPlus倒计时示例
  • 应用服务器和数据库服务器的区别
  • 机器学习案例——预测矿物类型(数据处理部分)
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
  • `sudo apt update` 总是失败
  • Linux问答题:调优系统性能
  • 李宏毅NLP-12-语音分类
  • 基于Labview的旋转机械AI智能诊断系统
  • 2015-2018年咸海流域1km归一化植被指数8天合成数据集
  • html-docx-js 导出word
  • Linux问答题:归档和传输文件
  • 探秘北斗卫星导航系统(BDS):架构、应用与未来蓝图,展现中国力量
  • 文件系统挂载详细分析(《图解Linux内核》虚拟文件系统篇笔记二)
  • UDP报文的数据结构
  • 可转换债券高频交易Level-2五档Tick级分钟历史数据分析
  • 20250823解决荣品RD-RK3588-MID核心板的底板的adb不通
  • 超越基础:Glide 高级优化与自定义实战
  • 12.Shell脚本修炼手册--函数的基础认知与实战演练(fock炸弹!!)
  • 第1.2节:早期AI发展(1950-1980)
  • Mybatis Plus - 代码生成器简单使用