在 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.pswp.cn/pingmian/94103.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LoRaWAN网络部署全流程:从方案设计到实际落地的关键要点

一、覆盖范围:从理论到实践 LoRaWAN的覆盖距离在理论上可达15公里,但实际部署受地形和环境影响极大。 城市环境中,密集的建筑群和多径效应常常使网关有效覆盖半径缩小至3至5公里;在空旷的农村或农田场景中,覆盖范围可提…

portswigger labs XXE漏洞利用实战

lab1 利用外部实体注入获取文件解决此 lab 需要读取到/etc/passwd<!DOCTYPE test [ <!ENTITY cmd SYSTEM "file:///etc/passwd"> ]> <productId>&cmd;</productId>lab2 利用 XXE 执行 SSRF 攻击通过构造 xxe 请求特定的 url 获取目录拼接…

深入理解 hash -r:解决 Linux 命令缓存难题的关键密钥

前言&#xff1a;在 Linux 终端的日常操作中&#xff0c;你是否遇到过这样的诡异场景&#xff1a;明明已经升级或切换了软件版本&#xff08;比如 Node.js 从旧版更新到新版 &#xff09;&#xff0c;但执行命令时&#xff0c;系统却像被“施了魔法”&#xff0c;依旧执着地调用…

onnx入门教程(二)—— PyTorch 转 ONNX 详解

在这一节里&#xff0c;我们将详细介绍 PyTorch 到 ONNX 的转换函数—— torch.onnx.export。我们希望大家能够更加灵活地使用这个模型转换接口&#xff0c;并通过了解它的实现原理来更好地应对该函数的报错&#xff08;由于模型部署的兼容性问题&#xff0c;部署复杂模型时该函…

嵌入式LINUX——————网络TCP

一、TCP连接1.TCP特点&#xff1a;&#xff08;1&#xff09;面向链接&#xff08;2&#xff09;面向字节流&#xff08;3&#xff09;安全可靠的传输协议&#xff0c;因为会先建立连接&#xff08;4&#xff09;占用资源开销大&#xff0c;效率低&#xff0c;实时性不佳&#…

alicloud 阿里云有哪些日志 审计日志

1: 阿里有哪些audit log: Audit Related Logs Below table describe the logs available in Log Service that might be applicable to the Security Operations Team. 2: 怎么来分析呢? Overview Its recommended to built a program with SLS Consumer Group which real…

如何理解AP服务发现协议中“如果某项服务需要被配置为可通过多个不同的网络接口进行访问,则应为每个网络接口使用一个独立的客户端服务实例”?

上一句&#xff1a;[PRS_SOMEIPSD_00238]◎ 「如果某项服务需要在多个网络接口上提供&#xff0c;则应为每个网络接口使用一个独立的服务器服务实例。」(RS_SOMEIPSD_00003) 本句&#xff1a;[PRS_SOMEIPSD_00239] 「如果某项服务需要被配置为可通过多个不同的网络接口进行访问…

piecewise jerk算法介绍

piecewise jerk算法介绍 piecewise jerk算法是百度Apollo中的一种用于路径和速度平滑的算法&#xff0c;该算法假设相邻点之间的jerk为常数&#xff0c;基于该假设将平滑问题构建为二次规划问题&#xff0c;调用osqp求解器求解。参考论文为&#xff1a;Optimal Vehicle Path Pl…

分布式蜜罐系统的部署安装

前阵子勒索病毒泛滥&#xff0c;中小企业由于缺少专业EDR&#xff0c;态势感知&#xff0c;IPS等设备&#xff0c;往往是在勒索事件发生之后才后知后觉&#xff0c;也因为缺乏有效的备份策略&#xff0c;导致数据&#xff0c;经济&#xff0c;商业信誉的丧失&#xff0c;甚至还…

定时器互补PWM输出和死区

定时器互补PWM输出和死区互补PWM&#xff08;Complementary PWM&#xff09;H桥、全桥、半桥中的应用为什么需要死区时间互补PWM&#xff08;Complementary PWM&#xff09; 是一种特殊的 PWM 输出模式&#xff0c;通常用于H桥、全桥或半桥电路的驱动。其核心原理是利用定时器…

嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置

嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置 文章目录 嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置 一.总的网络配置过程 二.主机配置 三.QEMU ARM 网络配置 四.主机与虚拟器之间的网络测试 五.TFTP网络配置 5.1 ubuntu主机安装tftp服务器 5.2 设置tft…

【贪心算法】贪心算法六

贪心算法六 1.坏了的计算器 2.合并区间 3.无重叠区间 4.用最少数量的箭引爆气球 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.坏了的计算器 题目链接: 991. 坏了的计算器 题目分析: 算法原理: 解法一:正向推导 以3转化…

直播预约 | CATIA MODSIM SmartCAE带练营第3期:让每轮设计迭代都快人一步!

▼▼免费报名链接▼▼ 达索系统企业数字化转型在线研讨会https://3ds.tbh5.com/EventDetail.aspx?eid1195&frpt 迅筑官网 ​​

OSI参考模型TCP/IP模型 二三事

计算机网络的学习离不开OSI参考模型&TCP/IP模型对各层功能与任务的了解就是学习的主要内容其二者的区别也是我们应该了解的其中 拥塞控制和流量控制 就是各层功能中 两个易混淆的概念流量控制&#xff08;Flow Control&#xff09;&#xff1a;解决的是发送方和接收方之间速…

DataStream实现WordCount

目录读取文本数据读取端口数据事实上Flink本身是流批统一的处理架构&#xff0c;批量的数据集本质上也是流&#xff0c;没有必要用两套不同的API来实现。所以从Flink 1.12开始&#xff0c;官方推荐的做法是直接使用DataStream API&#xff0c;在提交任务时通过将执行模式设为BA…

imx6ull-驱动开发篇37——Linux MISC 驱动实验

目录 MISC 设备驱动 miscdevice结构体 misc_register 函数 misc_deregister 函数 实验程序编写 修改设备树 驱动程序编写 miscbeep.c miscbeepApp.c Makefile 文件 运行测试 MISC 驱动也叫做杂项驱动&#xff0c;也就是当某些外设无法进行分类的时候就可以使用 MISC…

C# 项目“交互式展厅管理客户端“针对的是“.NETFramework,Version=v4.8”,但此计算机上没有安装它。

C# 项目“交互式展厅管理客户端"针对的是".NETFramework,Versionv4.8”&#xff0c;但此计算机上没有安装它。 解决方法&#xff1a; C# 项目“交互式展厅管理客户端"针对的是".NETFramework,Versionv4.8”&#xff0c;但此计算机上没有安装它。 下载地址…

FFmpeg及 RTSP、RTMP

FFmpeg 是一个功能强大的跨平台开源音视频处理工具集 &#xff0c;集录制、转码、编解码、流媒体传输等功能于一体&#xff0c;被广泛应用于音视频处理、直播、点播等场景。它支持几乎所有主流的音视频格式和协议&#xff0c;是许多媒体软件&#xff08;如 VLC、YouTube、抖音等…

金山办公的服务端开发工程师-25届春招笔试编程题

1.作弊 溪染&#xff1a;六王毕&#xff0c;四海一&#xff1b;蜀山兀&#xff0c;阿房出。覆压三百余里&#xff0c;隔离天日。骊山北构而西折&#xff0c;直走咸阳。二川溶溶&#xff0c;流入宫墙。五步一楼&#xff0c;十步一阁&#xff1b;廊腰缦回&#xff0c;檐牙高啄&am…

注意力机制中为什么q与k^T相乘是注意力分数

要理解 “qkT\mathbf{q} \times \mathbf{k}^TqkT 是注意力分数”&#xff0c;核心是抓住注意力机制的本质目标 ——量化 “查询&#xff08;q&#xff09;” 与 “键&#xff08;k&#xff09;” 之间的关联程度&#xff0c;而向量点积&#xff08;矩阵相乘的元素本质&#xff…