OpenTenBase的深度使用体验

什么是OpenTenBase

OpenTenBase,是企业级分布式数据库TDSQL的社区发行版。2023年12月16日,腾讯云将OpenTenBase捐赠给开放原子开源基金会。

最初是TDSQL for PG,如今OpenTenBase已经包括了TDSQL的MySQL版(就是TPCC打榜的那个)

安装初体验

本文根据官网安装教程(https://docs.opentenbase.org/guide/01-quickstart/#_3)进行OpenTenBase的快速入门安装。

首先,本次安装规划使用到两台服务器,搭建1GTM主,1GTM备,2CN主,2DN主,2DN备的集群,该集群为具备容灾能力的最小配置。

机器1(CentOS 7):10.60.143.28

机器2(CentOS 7):10.60.143.92

依赖安装

根据官方要求安装依赖:

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

这一步和安装Oracle以及PostgreSQL的依赖非常相似。

创建OpenTenBase所需目录和用户

mkdir /data

useradd -d /data/opentenbase -s /bin/bash -m opentenbase

passwd xxx # set password

下载源码(https://github.com/OpenTenBase/OpenTenBase/releases/tag/v2.5.0)并传到服务器

编译源码

我以前学习PG的时候,有一次看到我安装的和老师安装的最后功能不一样。老师说,最后源码编译。导致我现在安装PG也习惯了。

cd /data/opentenbase/OpenTenBase

rm -rf /data/opentenbase/install/opentenbase_bin_v2.0

chmod +x configure*

./configure --prefix=/data/opentenbase/install/opentenbase_bin_v2.0 --enable-user-switch --with-openssl --with-ossp-uuid CFLAGS=-g

make clean

make -sj

make install

chmod +x contrib/pgxc_ctl/make_signature

cd contrib

make -sj

make install

编译成功后可以去/data/opentenbase/install/opentenbase_bin_v2.0看到编译的结果:

然后我们配置下用到的机器之间的互信,基本的步骤:

su - opentenbase

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub destination-user@destination-server

免密配置

环境变量配置(所有机器都要配置):

opentenbase@oracle19ocp \~$ vim ~/.bashrc

export OPENTENBASE_HOME=/data/opentenbase/install/opentenbase_bin_v2.0

export PATH=OPENTENBASEHOME/bin:OPENTENBASEH​OME/bin:PATH

export LD_LIBRARY_PATH=OPENTENBASEHOME/lib:OPENTENBASEH​OME/lib:{LD_LIBRARY_PATH}

export LC_ALL=C

准备搭建集群的配置文件:

opentenbase@oracle19ocp \~$ mkdir /data/opentenbase/pgxc_ctl

opentenbase@oracle19ocp \~$ cd /data/opentenbase/pgxc_ctl

opentenbase@oracle19ocp pgxc_ctl$ vim pgxc_ctl.conf

配置文件基本都是官方给出的模板信息,我们这里只是把IP改为自己的实验机器:后面太长不复制了

#!/bin/bash

Double Node Config

IP_1=10.60.143.28

IP_2=10.60.143.92

pgxcInstallDir=/data/opentenbase/install/opentenbase_bin_v2.0

pgxcOwner=opentenbase

defaultDatabase=postgres

pgxcUser=pgxcOwnertmpDir=/tmplocalTmpDir=pgxcOwnertmpDir=/tmplocalTmpDir=tmpDir

configBackup=n

configBackupHost=pgxc-linker

configBackupDir=$HOME/pgxc

configBackupFile=pgxc_ctl.bak

上文中,我们在10.60.143.28编译好一份二级制包,现在要把它同步到集群所有服务器,这个可以使用pgxc_ctl工具,执行deploy all命令来完成。

执行init all命令,完成集群初始化命令:

执行成功最终会输出:

查看集群状态

访问OpenTenBase和访问单机PostgreSQL基本无差别,我们可以通过任意一个CN访问数据库集群:

OpenTenBase使用datanode group来增加节点的管理灵活度,要求有一个default group才能使用,因此需要预先创建;一般情况下,会将节点的所有datanode节点加入到default group里 另外一方面,OpenTenBase的数据分布为了增加灵活度,加了中间逻辑层来维护数据记录到物理节点的映射,我们叫sharding,所以需要预先创建sharding,命令如下:

访问

至此,就可以跟使用单机数据库一样来访问数据库集群了,创建数据库,用户,创建表,增删查改等操作:

启停

通过pgxc_ctl工具的 stop all 命令来停止集群,stop all 后面可以加上参数 -m fast 或者是 -m immediate 来决定如何停止各个节点。

通过pgxc_ctl工具的start all命令来启动集群

start all

小结

毕竟是集群模式,按照步骤多了一点。总体来说还是可以的。

本次实操体验也是我们作为OpenTenBase社区委员会成员的一点输出。

相关推荐
NineData3 分钟前
日常巡检 Oracle 时,ChatDBA 怎么把会话、SQL 和等待事件一起看
数据库·sql·oracle·ninedata·故障排查·chatdba·实例巡检
海天一色y8 分钟前
深入理解 RAG 技术:从语义张量到向量数据库,Milvus 与 FAISS 全面对比
数据库·milvus·faiss
爱吃羊的老虎9 分钟前
【数据库】模块二:SQL 语句、高级特性与优化
数据库·oracle
Rain5099 分钟前
2.4. PostgreSQL 数据库连接与实战指南
前端·数据库·人工智能·后端·postgresql·数据分析
爱喝水的鱼丶14 分钟前
SAP-ABAP:SAP表与视图权限管控方案:表维护权限、视图访问权限配置实操
运维·数据库·性能优化·sap·abap·权限·表和视图
tomcoding15 分钟前
深入解析Oracle数据块的内部结构
数据库·oracle
pixcarp10 小时前
知识库系统的内容资产闭环怎么设计
服务器·数据库·后端·golang
JosieBook10 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
吴声子夜歌12 小时前
SQL经典实例——使用多张表
数据库·sql
倔强的石头_13 小时前
《Kingbase护城河》——深度解密数据库行锁冲突与等待事件架构
数据库