OpenTenBase 是由开放原子开源基金会孵化及运营的开源项目,是一款企业级的分布式 HTAP 数据库,具备高扩展性、商业数据库语法兼容、分布式 HTAP 引擎、多级容灾和多维度资源隔离等能力,目前已经成功应用于金融、医疗、航天等诸多行业的核心业务系统。
OpenTenBase 采用分布式集群架构, 该架构分布式为无共享(Share Nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好。
OpenTenBase 具有六大关键特性:
-
商业数据库兼容性。完整兼容SQL2011,支持Oracle语法。 -
PostgreSQL兼容性。高度兼容PostgreSQL语法和生态跟进社区。 -
完整的分布式事务能力。完整的分布式事务ACID能力,保证分布式读一致性。 -
HTAP双引擎。具备高效OLTP和强大OLAP双引擎能力,支持PB级海量数据高效处理高效分布式执行能力。 -
灵活的扩展。分布式灵活扩展,分布式高效弹性扩缩容。 -
性能优越。性能优越,分布式弹性扩展好,支持高并发和高速吞吐。
本文将介绍两种 OpenTenBase 数据库的安装方法。
-
源码编译安装。 -
使用 DNF 安装。
OpenTenBase 源码编译安装
本文实验环境为 OpenCloudOS 操作系统,关于该 OS 的内容请参阅:
-
初探 OpenCloudOS 操作系统
安装依赖
这里需要开启 PowerTools 仓库,以安装 uuid-devel
依赖。
[root@oc8 ~]# dnf -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex git readline-devel
上次元数据过期检查:0:00:12 前,执行于 2024年09月03日 星期二 00时38分01秒。
OpenCloudOS - BaseOS
OpenCloudOS - AppStream
OpenCloudOS - PowerTools
软件包 gcc-8.5.0-22.oc8.1.x86_64 已安装。
软件包 make-1:4.2.1-11.oc8.x86_64 已安装。
软件包 zlib-devel-1.2.11-25.oc8.x86_64 已安装。
软件包 openssl-devel-1:1.1.1k-12.oc8.1.x86_64 已安装。
软件包 bison-3.0.4-10.oc8.x86_64 已安装。
软件包 flex-2.6.1-9.oc8.x86_64 已安装。
软件包 git-2.43.5-1.oc8.x86_64 已安装。
依赖关系解决。
===========================================================================================
软件包 架构
===========================================================================================
安装:
readline-devel x86_64
uuid-devel x86_64
安装依赖关系:
ncurses-c++-libs x86_64
ncurses-devel x86_64
uuid x86_64
事务概要
===========================================================================================
安装 5 软件包
总下载:879 k
安装大小:1.6 M
下载软件包:
(1/5): ncurses-c++-libs-6.1-10.20180224.oc8.x86_64.rpm 186 kB/s | 57 kB 00:00
(2/5): readline-devel-7.0-10.oc8.x86_64.rpm 503 kB/s | 203 kB 00:00
(3/5): uuid-1.6.2-43.oc8.x86_64.rpm 561 kB/s | 63 kB 00:00
(4/5): uuid-devel-1.6.2-43.oc8.x86_64.rpm 508 kB/s | 29 kB 00:00
(5/5): ncurses-devel-6.1-10.20180224.oc8.x86_64.rpm 993 kB/s | 527 kB 00:00
-------------------------------------------------------------------------------------------
总计 1.6 MB/s | 879 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : uuid-1.6.2-43.oc8.x86_64 1/5
运行脚本: uuid-1.6.2-43.oc8.x86_64 1/5
安装 : ncurses-c++-libs-6.1-10.20180224.oc8.x86_64 2/5
安装 : ncurses-devel-6.1-10.20180224.oc8.x86_64 3/5
安装 : readline-devel-7.0-10.oc8.x86_64 4/5
运行脚本: readline-devel-7.0-10.oc8.x86_64 4/5
安装 : uuid-devel-1.6.2-43.oc8.x86_64 5/5
运行脚本: uuid-devel-1.6.2-43.oc8.x86_64 5/5
验证 : ncurses-c++-libs-6.1-10.20180224.oc8.x86_64 1/5
验证 : ncurses-devel-6.1-10.20180224.oc8.x86_64 2/5
验证 : readline-devel-7.0-10.oc8.x86_64 3/5
验证 : uuid-1.6.2-43.oc8.x86_64 4/5
验证 : uuid-devel-1.6.2-43.oc8.x86_64 5/5
已安装:
ncurses-c++-libs-6.1-10.20180224.oc8.x86_64 ncurses-devel-6.1-10.20180224.oc8.x86_64
readline-devel-7.0-10.oc8.x86_64 uuid-1.6.2-43.oc8.x86_64
uuid-devel-1.6.2-43.oc8.x86_64
完毕!
创建用户
创建用户,设定 SSH 秘钥,并创建数据目录。
useradd opentenbase
echo 'opentenbase:opentenbase' | chpasswd
su -l opentenbase -c "mkdir /home/opentenbase/.ssh -p"
su -l opentenbase -c "ssh-keygen -t rsa -f /home/opentenbase/.ssh/id_rsa -N ''"
mkdir /data
chown opentenbase:opentenbase /data
获取源码
git clone https://github.com/OpenTenBase/OpenTenBase
编译源码
-
配置源码
cd /data/OpenTenBase
./configure --prefix=/data/opentenbase/install/opentenbase_bin_v2.6 --enable-user-switch --with-openssl --with-ossp-uuid CFLAGS=-g
-
输出
...
configure: using compiler=gcc (GCC) 8.5.0 20210514 (Tencent 8.5.0-22)
configure: using CFLAGS=-D_PG_ORCL_ -DPGXC -DXCP -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -D_USER_SWITCH_ -g
configure: using CPPFLAGS= -D_GNU_SOURCE
configure: using LDFLAGS= -Wl,--as-needed
configure: creating ./config.status
...
-
编译安装
make -sj
make install
cd contrib
make -sj
make install
-
输出
All of Postgres-XL successfully made. Ready to install.
Postgres-XL installation complete.
配置用户环境变量
切换到 opentenbase 用户。
su - opentenbase
vi ~/.bashrc
export OPENTENBASE_HOME=/data/opentenbase/install/opentenbase_bin_v2.6
export PATH=$OPENTENBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$OPENTENBASE_HOME/lib:${LD_LIBRARY_PATH}
export LC_ALL=C
source ~/.bashrc
查看版本信息
[opentenbase@oc8 ~]$ pg_ctl -V
pg_ctl (PostgreSQL) 10.0 OpenTenBase V2
[opentenbase@oc8 ~]$ pgxc_ctl -V
/usr/bin/bash
Pgxc_ctl 10.0 OpenTenBase V2
到此,OpenTenBase 数据库已编译安装完成。
使用 DNF 安装 OpenTenBase
OpenTenBase 已支持 RPM 包部署,并且已将 RPM 推送到 OpenCloudOS 的 YUM 源中,只需开启 PowerTools 仓库,即可一键安装。
[root@oc8 ~]# dnf install OpenTenBase*
上次元数据过期检查:0:01:48 前,执行于 2024年09月03日 星期二 00时44分59秒。
依赖关系解决。
===========================================================================================
软件包 架构 版本 仓库 大小
===========================================================================================
安装:
OpenTenBase x86_64 2.5.0-4.oc8 PowerTools 6.1 M
OpenTenBase-devel x86_64 2.5.0-4.oc8 Plus 1.3 M
安装依赖关系:
uuid x86_64 1.6.2-43.oc8 AppStream 63 k
事务概要
===========================================================================================
安装 3 软件包
总下载:7.5 M
安装大小:31 M
确定吗?[y/N]: y
下载软件包:
(1/3): uuid-1.6.2-43.oc8.x86_64.rpm 198 kB/s | 63 kB 00:00
(2/3): OpenTenBase-devel-2.5.0-4.oc8.x86_64.rpm 2.1 MB/s | 1.3 MB 00:00
(3/3): OpenTenBase-2.5.0-4.oc8.x86_64.rpm 4.5 MB/s | 6.1 MB 00:01
-------------------------------------------------------------------------------------------
总计 5.5 MB/s | 7.5 MB 00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : uuid-1.6.2-43.oc8.x86_64 1/3
运行脚本: uuid-1.6.2-43.oc8.x86_64 1/3
安装 : OpenTenBase-2.5.0-4.oc8.x86_64 2/3
安装 : OpenTenBase-devel-2.5.0-4.oc8.x86_64 3/3
运行脚本: OpenTenBase-devel-2.5.0-4.oc8.x86_64 3/3
验证 : uuid-1.6.2-43.oc8.x86_64 1/3
验证 : OpenTenBase-2.5.0-4.oc8.x86_64 2/3
验证 : OpenTenBase-devel-2.5.0-4.oc8.x86_64 3/3
已安装:
OpenTenBase-2.5.0-4.oc8.x86_64 OpenTenBase-devel-2.5.0-4.oc8.x86_64
uuid-1.6.2-43.oc8.x86_64
完毕!
安装完毕,检查 OpenTenBase 版本。
[root@oc8 ~]# pg_ctl -V
pg_ctl (PostgreSQL) 10.0 OpenTenBase V2
[root@oc8 ~]# pgxc_ctl -V
/bin/bash
Pgxc_ctl 10.0 OpenTenBase V2
[root@oc8 ~]#
可见,第二种方式更加简单快捷。
下一节,将介绍如何配置 OpenTenBase 数据库集群。
Have a nice day ~
🌻 往期精彩 ▼
-
PG数据库中SSL那些事 -
Oracle 数据库全面升级为 23ai -
MySQL 9.0 的 VECTOR 文档更新 -
国产基础软件“出海”标杆炼成记 -
星辰考古:TiDB v4.0 进化前夜 -
「合集」MySQL 8.x 系列文章汇总 -
一文带你了解 GB 18030-2022 字符集 -
MySQL 9.0.0 新鲜出炉!支持向量类型 -
敢于公布BUG的国产数据库才是好数据库 -
即将告别PG 12,建议升级到PG 16.3版本 -
一文带你了解 KING BASE 人大金仓数据库 -
如何选择适合的 MySQL Connector/J 版本 -
python-oracledb 已率先支持 Oracle 23ai -
后 EL 7 时代,PG 16 如何在 CentOS 7 上运行 -
一文带你了解 Oracle 23ai 新特性 Vector 的基础用法
-- / END / --
👉 这里可以找到我
-
微信公众号: 少安事务所 -
墨天轮: 严少安 -
PGFans: 严少安 -
ITPUB: 少安事务所 -
TiDB 专栏: @ShawnYan
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~
本文由 mdnice 多平台发布