在CentOS 7上搭建OpenTenBase集群从源码到生产环境的全流程指南
什么是OpenTenBase
OpenTenBase 是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将 OpenTenBase 配置一台或者多台主机上, OpenTenBase 数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是 distributed 或者 replicated ,当向OpenTenBase发送查询 SQL时, OpenTenBase 会自动向数据节点发出查询语句并获取最终结果。
OpenTenBase 采用分布式集群架构(如下图), 该架构分布式为无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署 OpenTenBase 数据库集群
下面简单解读一下OpenTenBase的三大模块
Coordinator:协调节点(简称CN)
业务访问入口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;在功能上CN上只存储系统的全局元数据,并不存储实际的业务数据。
Datanode:数据节点(简称DN)
每个节点还存储业务数据的分片在功能上,DN节点负责完成执行协调节点分发的执行请求。
GTM:全局事务管理器(Global Transaction Manager)
负责管理集群事务信息,同时管理集群的全局对象,比如序列等。
接下来,让我们来看看如何从源码开始,完成到OpenTenBase集群环境的搭建。
OpenTenBase源码编译安装
我们这里使用虚拟机里面的CentOS 7进行测试
安装依赖
yum -yinstall 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/
OpenTenBase配置冷热数据分离
一、环境配置
二、冷热数据分离的配置步骤
以下是在 OpenTenBase 中配置冷热数据分离的基本步骤:
2.1 参数配置
1)确认冷热数据分离界线
示例:以年度为单位, 记录时间小于2022-01-01为冷数据,大于2022-01-01为热数据
注意:以上参数要求所有DN上均需要修改,重启DN生效。
2.2 创建冷数据组
1)查看当前组和DN节点
2)查看当前节点信息
3)创建冷数据组
从上面查询可以确认,dn003未被使用
三、创建表
四、插入数据
五、验证
5.1 验证热数据访问的节点
当前从2022-01-01开始为热数据
可以看到执行计划访问的dn001和dn002是热数据所在的default_group组。
5.2 验证冷数据访问的节点
当前inserttimeforhis小于2022-01-01开始为冷数据
可以看到执行计划访问的dn003是冷数据所在的cold_group组。
以上就是在 CentOS 7 上搭建 OpenTenBase 集群:从源码到生产环境的全流程指南的详细内容,更多相关资料请阅读主机测评网其它文章!
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhujiwo.jb51.net/centos/8752.html