OpenTenBase 是基于 Postgres-XL 项目的先进企业级数据库管理系统。它支持SQL标准的扩展子集,包括事务、外键、用户定义类型和函数。此外,它还添加了并行计算、安全性、管理、审计和其他功能。
OpenTenBase具有许多类似于PostgreSQL的语言接口,其中的一些可以在下面的链接中找到:
https://www.postgresql.org/download
一个 OpenTenBase 集群由多个 CoordinateNodes
、DataNodes
和 GTM
节点组成。所有用户数据都存储在 DataNode
中,CoordinateNode
仅包含元数据,GTM
则用于全局事务管理。CoordinateNodes
和DataNodes
共享相同的视图。
用户总是会将请求发送到到 CoordinateNodes
,CoordinateNodes
将请求分段之后分发给 DataNodes
执行 ,CoordinateNodes
将收集到的请求汇总后返回给用户。
您可以在以下的链接获取 OpenTenBase 软件的最新版本:
https://github.com/OpenTenBase/OpenTenBase
更多的信息则可以从我们的网站中获取到:
https://www.opentenbase.org/
内存: 最小 4G RAM
操作系统: TencentOS 2, TencentOS 3, OpenCloudOS, CentOS 7, CentOS 8, Ubuntu等
yum -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex
或者
apt install -y gcc make libreadline-dev zlib1g-dev libssl-dev libossp-uuid-dev bison flex
mkdir /data
useradd -d /data/opentenbase -s /bin/bash -m opentenbase # add user opentenbase
passwd opentenbase # set password
git clone https://github.com/OpenTenBase/OpenTenBase
export SOURCECODE_PATH=/data/opentenbase/OpenTenBase
export INSTALL_PATH=/data/opentenbase/install
cd ${SOURCECODE_PATH}
rm -rf ${INSTALL_PATH}/opentenbase_bin_v2.0
chmod +x configure*
./configure --prefix=${INSTALL_PATH}/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
注意: 如果您使用 Ubuntu 并且在"init all"的过程中出现了 initgtm: command not found
错误, 你可以需要添加 ${INSTALL_PATH}/opentenbase_bin_v2.0/bin
到 /etc/environment
中
使用 PGXC_CTL 工具 来搭建一个集群, 例如: 搭建一个具有1个 global transaction management(GTM) 节点, 1个 coordinator(COORDINATOR)节点以及2个 data nodes (DATANODE) 节点的集群。
安装 pgxc
并且把 pgxc
安装包的路径导入到系统环境变量中
PG_HOME=${INSTALL_PATH}/opentenbase_bin_v2.0
export PATH="$PATH:$PG_HOME/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PG_HOME/lib"
export LC_ALL=C
关掉 SELinux
和 firewall
(可选的)
vi /etc/selinux/config # set SELINUX=disabled
# Disable firewalld
systemctl disable firewalld
systemctl stop firewalld
实现集群节点所在机器之间的 ssh
无密码登录,然后进行部署和初始化将会通过 ssh
连接到每个节点的机器。一旦完成这一步,就无需输入密码
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub destination-user@destination-server
生成并填写配置文件 pgxc_ctl.conf
。pgxc_ctl
工具可以生成配置文件的模板,需要在模板中填写集群节点的信息。启动 pgxc_ctl
工具后,将在当前用户的主目录中生成 pgxc_ctl
目录。在输入 "prepare config" 命令后,将在 pgxc_ctl
目录中生成可直接修改的配置文件模板。
pgxcInstallDir
指的是 pgxc
安装包的存放位置, 数据库用户可以根据自己的需求进行设置pgxcInstallDir=${INSTALL_PATH}/opentenbase_bin_v2.0
#---- GTM ----------
gtmName=gtm
gtmMasterServer=xxx.xxx.xxx.1
gtmMasterPort=50001
gtmMasterDir=${GTM_MASTER_DATA_DIR}/data/gtm_master
gtmSlave
,您可以直接在相应节点的配置中将其设置为n
gtmSlave=n
如果您需要gtmSlave
,则可以按照配置文件中的说明进行配置。
coordNames=(cn001)
coordMasterCluster=(opentenbase_cluster)
coordPorts=(30004)
poolerPorts=(30014)
coordPgHbaEntries=(0.0.0.0/0)
coordMasterServers=(xxx.xxx.xxx.2)
coordMasterDirs=(${COORD_MASTER_DATA_DIR}/data/cn_master/cn001)
primaryDatanode=dn001
datanodeNames=(dn001 dn002)
datanodePorts=(20008 20009)
datanodePoolerPorts=(20018 20019)
datanodeMasterCluster=(opentenbase_cluster opentenbase_cluster)
datanodePgHbaEntries=(0.0.0.0/0)
datanodeMasterServers=(xxx.xxx.xxx.3 xxx.xxx.xxx.4)
datanodeMasterDirs=(${DATANODE_MASTER_DATA_DIR}/data/dn_master/dn001 ${DATANODE_MASTER_DATA_DIR}/data/dn_master/dn002)
Coordination节点和Data节点分别对应 coordSlave
和 datanodeSlave
。如果不需要这些节点,则可以将它们配置为'n';否则,需要根据配置文件的说明进行配置。
此外,Coordination节点和Data节点需要配置两种类型的端口:poolerPort
和 port
, poolerPort
用于节点之间的通信,port
用于用户登录节点。值得注意的是,poolerPort
和 port
必须配置不同,否则会发生冲突,导致集群无法启动。
每个节点都需要有自己的目录,并且不能配置位相同的目录。
安装包的分发(deploy all)。在填写好配置文件后,运行 pgxc_ctl
工具,然后输入 "deploy all" 命令,将安装包分发到每个节点的IP机器上。
初始化集群的每个节点(init all)。在安装包分发完成后,在 pgxc_ctl
工具中输入 "init all" 命令,初始化配置文件 pgxc_ctl.conf
中的所有节点,并启动集群。到目前为止,集群已经完成启动。
$ psql -h ${CoordinateNode_IP} -p ${CoordinateNode_PORT} -U ${pgxcOwner} -d postgres
postgres=# create default node group default_group with (dn001,dn002);
CREATE NODE GROUP
postgres=# create sharding group to group default_group;
CREATE SHARDING GROUP
postgres=# create table foo(id bigint, str text) distribute by shard(id);
https://docs.opentenbase.org/
OpenTenBase 使用 BSD 3-Clause 许可证,版权和许可信息可以在 LICENSE.txt 中找到。
感谢所有参与项目贡献的人: CONTRIBUTORS
新闻 |
---|
开放原子校源行走进苏南,加速开源人才培养和创新能力提升 |
OpenTenBase首亮相,腾讯云数据库开源取得重大突破 |
开放原子校源行走进西部,加速开源人才培养 |
开源数据库OpenTenBase获信通院“OSCAR尖峰开源项目优秀案例”奖 |
开放原子开源基金会赴黑龙江科技大学走访交流 |
博客和文章 |
---|
快速入门 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型