高可用 & 容灾24 分钟阅读
GBase 8c 分布式集群安装部署手册
大家好,这里是公众号 DBA学习之路,致力于分享数据库领域相关知识。 @TOC目录 2025 年第一场 GBase 培训:培训预告 2025元月 GBase 8c 认证培训班开始报名啦~https://mp.weixin.qq.com/s/Hhk-cLC-9p4eiBzoa5r1g ,老规矩,写一篇安装部署教程,一起免费学习考证。
2025年1月15日阅读—点赞—收藏—
database
在知识库中专注阅读,并随时返回相关工具与课程
大家好,这里是公众号 DBA学习之路,致力于分享数据库领域相关知识。 @TOC目录 2025 年第一场 GBase 培训:培训预告 2025元月 GBase 8c 认证培训班开始报名啦~https://mp.weixin.qq.com/s/Hhk-cLC-9p4eiBzoa5r1g ,老规矩,写一篇安装部署教程,一起免费学习考证。
大家好,这里是公众号 DBA学习之路,致力于分享数据库领域相关知识。
本章目标:掌握本章核心知识点 前置要求:完成前序章节学习 预计时长:60 分钟
2025 年第一场 GBase 培训:培训预告 | 2025元月 GBase 8c 认证培训班开始报名啦~ ,老规矩,写一篇安装部署教程,一起免费学习考证。
GBase 8c 是南大通用自主研发的一款多模多态的第三代智能分布式数据库,通过智能优化,智能运维,智能安全实现 DB 智能化,使 GBase8c 具备高性能、高可用、弹性伸缩、高安全性等智能特性。

产品架构: GBase 8c 支持主备式与分布式两种部署,支持行存、列存、内存三种存储引擎,满足用户各种业务需求。
多存储模式:
多部署形态: GBase 8c 通过多租户方式实现多种部署形态,可提供单机部署、主备部署及分布式部署三种部署形态,并通过统一运维管理平台来进行管理,分别面向企业核心交易和未来海量事务型场景,打造差异化竞争力。
本文主要演示分布式形态的部署方案。
这里我已经提前好了三台 Linux 主机:
推荐服务器配置:

在推荐的部署环境下,建议部署 GBase 8c 数据库分布式集群时,至少部署 1 台 GTM 服务器、3 台数据库服务器部署 Coordinator 和 Datanode 节点。
官网可以直接下载:GBase8cV5_3.0.0_分布式_x86.zip。
根据操作系统的版本(同一套集群使用相同版本操作系统)获取相应的 GBase 8c 软件安装包:

环境配置需要在 root 用户下执行。
1cat<<-EOF>>/etc/hosts2192.168.6.135 gbase8c013192.168.6.136 gbase8c024192.168.6.137 gbase8c035EOF所有节点均需关闭防火墙:
1systemctl stop firewalld.service2systemctl disable firewalld.service3systemctl status firewalld.service确保防火墙正常关闭。
所有节点建议关闭 SELNUX,防止造成一些不必要的问题:
1## 这里使用 `setenforce 0` 临时生效2/usr/sbin/setenforce 03sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config4sestatus将 SELINUX 参数设置为 disabled,即 SELINUX=disabled 保存退出后,需要重新启动才能生效。
检查 bison、flex、patch、bzip2 依赖是否已安装:
1[root@gbase8c01 ~]# rpm -q bison flex patch bzip22bison-3.6.4-3.ky10.x86_643flex-2.6.4-5.ky10.x86_644patch-2.7.6-13.ky10.x86_645bzip2-1.0.8-6.ky10.x86_64主机创建用户如果有密码复杂性要求,不想设置密码太复杂的话,可以取消密码复杂度:
1## 以节点一为例2sed -i 's/^password\+[[:space:]]\+requisite[[:space:]]\+pam_pwquality.so/#&/g' /etc/pam.d/system-auth3sed -i 's/use_authtok$//' /etc/pam.d/system-auth集群安装用户为 gbase,所有节点均需创建:
1useradd gbase2echo "gbase:gbase" | chpasswd1## 对 root 用户赋权并打开 /etc/sudoers 文件2chmod +w /etc/sudoers3## 在文件的最后添加如下内容4cat<<-EOF>>/etc/sudoers5gbase ALL=(ALL)NOPASSWD:ALL6EOF78chmod -w /etc/sudoers在部署机上创建 GBase 8c 数据库的安装目录。
配置文件中 pkg_path 参数值需与安装目录保持一致。建议设置为 /home/gbase/gbase_package,即 yml 文件中 pkg_path 参数默认值:
1## 所有节点均需执行,以节点一为例2[gbase@gbase8c01 ~]$ mkdir -p /home/gbase/gbase_package3[gbase@gbase8c01 ~]$ chown -R gbase:gbase /home/gbase/gbase_package配置系统内核参数,避免信号量不足无法初始化:
1## 以节点一为例2sysctl -w kernel.sem="40960 2048000 40960 20480"3echo "kernel.sem=40960 2048000 40960 20480" >>/etc/sysctl.conf45## 生效配置6sysctl -p在所有节点创建 gbase 用户免密登录。
创建免密配置文件:
1## 所有节点均需执行,以节点一为例2[root@gbase8c01 soft]# su - gbase3[gbase@gbase8c01 ~]$ mkdir ~/.ssh4[gbase@gbase8c01 ~]$ chmod 700 ~/.sshgbase 用户生成密钥文件:
1## 在密钥生成过程中,执行互动操作,默认回车键即可2## 只在节点一执行3ssh-keygen -t rsa将公钥文件上传至同集群所有节点(包括本节点),即可实现免密登录(此操作需输入密码):
1## 只在节点一执行,中途需要输入 gbase 用户密码2ssh-copy-id gbase@192.168.6.1353ssh-copy-id gbase@192.168.6.1364ssh-copy-id gbase@192.168.6.137验证互信:
1[gbase@gbase8c01 ~]$ ssh 192.168.6.135 date23Authorized users only. All activities may be monitored and reported.42025年 01月 14日 星期二 14:58:56 CST5[gbase@gbase8c01 ~]$ ssh 192.168.6.136 date67Authorized users only. All activities may be monitored and reported.82025年 01月 14日 星期二 14:58:59 CST9[gbase@gbase8c01 ~]$ ssh 192.168.6.137 date1011Authorized users only. All activities may be monitored and reported.122025年 01月 14日 星期二 14:59:02 CST配置互信成功即可。
在 gbase 用户下,下载安装包,拷贝或使用 ssh 工具传至部署机安装目录。
1[gbase@gbase8c01 gbase_package]$ ll2总用量 2768603-rwxr-xr-x 1 gbase gbase 283503415 1月 14 14:20 GBase8cV5_3.0.0_分布式_x86.zip对解压得到的 GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz 安装包,继续进行解压:
1[gbase@gbase8c01 gbase_package]$ unzip -q GBase8cV5_3.0.0_分布式_x86.zip 2[gbase@gbase8c01 gbase_package]$ ls3GBase8cV5_3.0.0_分布式_x86.zip GBase8cV5_S3.0.0B1144[gbase@gbase8c01 gbase_package]$ cd GBase8cV5_S3.0.0B114/5[gbase@gbase8c01 GBase8cV5_S3.0.0B114]$ ls6Document Server7[gbase@gbase8c01 GBase8cV5_S3.0.0B114]$ cd Server/8[gbase@gbase8c01 Server]$ ls9GBase8cV5_S3.0.0B114_centos7.8_x86_64.md5.txt GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz10[gbase@gbase8c01 Server]$ tar -xf GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz 11[gbase@gbase8c01 Server]$ ll *gz12-rw-r--r-- 1 gbase gbase 266255210 11月 23 2023 GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz13-rw-r--r-- 1 gbase gbase 103175364 11月 7 2023 GBase8cV5_S3.0.0B114_CentOS_x86_64_om.tar.gz14-rw-r--r-- 1 gbase gbase 1036193 11月 7 2023 GBase8cV5_S3.0.0B114_CentOS_x86_64_pgpool.tar.gz15-rw------- 1 gbase gbase 383797 11月 7 2023 upgrade_sql.tar.gz16## 需要移动到 /home/gbase/gbase_package/ 目录下17[gbase@gbase8c01 Server]$ mv *.gz /home/gbase/gbase_package/再次对 GBase8cV5_S3.0.0B114_CentOS_x86_64_om.tar.gz 进行解压:
1[gbase@gbase8c01 Server]$ tar -xf GBase8cV5_S3.0.0B114_CentOS_x86_64_om.tar.gz -C /home/gbase/gbase_package2[gbase@gbase8c01 Server]$ cd /home/gbase/gbase_package3[gbase@gbase8c01 gbase_package]$ ll4总用量 2768885drwxr-xr-x 6 gbase gbase 180 11月 7 2023 dependency6-rwxr-xr-x 1 gbase gbase 283503415 1月 14 14:20 GBase8cV5_3.0.0_分布式_x86.zip7drwxr-xr-x 4 gbase gbase 36 11月 30 2023 GBase8cV5_S3.0.0B1148-rw-r--r-- 1 gbase gbase 2590 11月 7 2023 gbase.yml9drwxr-xr-x 11 gbase gbase 4096 11月 7 2023 gha10-rw-r--r-- 1 gbase gbase 188 11月 7 2023 gha_ctl.ini11drwxr-xr-x 2 gbase gbase 96 11月 7 2023 lib12-rw-r--r-- 1 gbase gbase 1242 11月 7 2023 package_info.json13drwxr-xr-x 4 gbase gbase 28 3月 16 2021 python3.814drwxr-xr-x 10 gbase gbase 4096 11月 7 2023 script15drwxr-xr-x 2 gbase gbase 330 11月 7 2023 simpleInstall16drwxr-xr-x 3 gbase gbase 24 11月 7 2023 tools17-rw-r--r-- 1 gbase gbase 132 11月 7 2023 ubuntu_version.json18drwx------ 6 gbase gbase 87 7月 2 2022 venv19-rw-r--r-- 1 gbase gbase 42 11月 7 2023 version.cfg解压完成后即可进行安装。
安装前需要先编辑集群配置文件。模板配置文件默认在安装目录中,安装时可移动至其他 owner 为 gbase 用户路径下。用户需要根据实际情况,修改配置文件名和其中节点参数信息。
安装目录为 /home/gbase/gbase_package/,将模板文件复制到 owner 为 gbase 用户的 /home/gbase 目录下,并编辑 gbase.yml 配置文件:
1[gbase@gbase8c01 gbase_package]$ cp /home/gbase/gbase_package/gbase.yml /home/gbase/修改配置文件中节点参数信息:
1[gbase@gbase8c01 ~]$ sed -i 's/10.0.1.16/192.168.6.135/g' /home/gbase/gbase.yml2[gbase@gbase8c01 ~]$ sed -i 's/100.0.1.16/192.168.6.135/g' /home/gbase/gbase.yml3[gbase@gbase8c01 ~]$ sed -i 's/10.0.1.17/192.168.6.136/g' /home/gbase/gbase.yml4[gbase@gbase8c01 ~]$ sed -i 's/100.0.1.17/192.168.6.136/g' /home/gbase/gbase.yml5[gbase@gbase8c01 ~]$ sed -i 's/10.0.1.18/192.168.6.137/g' /home/gbase/gbase.yml6[gbase@gbase8c01 ~]$ sed -i 's/100.0.1.18/192.168.6.137/g' /home/gbase/gbase.yml其中,必选参数说明如下:
完成两层安装包解压后,会在安装目录下生成 script 子目录。执行 gha_ctl 命令安装 GBase 8c 数据库。语法格式为:
1gha_ctl install <-c cluster> <-p confpath>其中参数说明:
部署命令如下:
1[gbase@gbase8c01 ~]$ cd gbase_package/script/2[gbase@gbase8c01 script]$ ./gha_ctl install -p /home/gbase/ -c gbase3{4 "ret":0,5 "msg":"Success"6}如上返回部署成功信息。
1[root@gbase8c01 ~]# su - gbase2上一次登录: 二 1月 14 16:39:38 CST 2025 pts/0 上 3[gbase@gbase8c01 ~]$ gha_ctl monitor -l http://192.168.6.135:2379 -H4+----+-------------+---------------+-------+---------+--------+5| No | name | host | port | state | leader |6+----+-------------+---------------+-------+---------+--------+7| 0 | gha_server1 | 192.168.6.135 | 20001 | running | True |8+----+-------------+---------------+-------+---------+--------+9+----+------+---------------+------+---------------------------+---------+---------+10| No | name | host | port | work_dir | state | role |11+----+------+---------------+------+---------------------------+---------+---------+12| 0 | gtm1 | 192.168.6.135 | 6666 | /home/gbase/data/gtm/gtm1 | running | primary |13| 1 | gtm2 | 192.168.6.136 | 6666 | /home/gbase/data/gtm/gtm2 | running | standby |14+----+------+---------------+------+---------------------------+---------+---------+15+----+------+---------------+------+----------------------------+---------+---------+16| No | name | host | port | work_dir | state | role |17+----+------+---------------+------+----------------------------+---------+---------+18| 0 | cn1 | 192.168.6.136 | 5432 | /home/gbase/data/coord/cn1 | running | primary |19| 1 | cn2 | 192.168.6.137 | 5432 | /home/gbase/data/coord/cn2 | running | primary |20+----+------+---------------+------+----------------------------+---------+---------+21+----+-------+-------+---------------+-------+----------------------------+---------+---------+22| No | group | name | host | port | work_dir | state | role |23+----+-------+-------+---------------+-------+----------------------------+---------+---------+24| 0 | dn1 | dn1_1 | 192.168.6.136 | 15432 | /home/gbase/data/dn1/dn1_1 | running | primary |25| 1 | dn1 | dn1_2 | 192.168.6.137 | 15433 | /home/gbase/data/dn1/dn1_2 | running | standby |26| 2 | dn1 | dn1_3 | 192.168.6.135 | 15433 | /home/gbase/data/dn1/dn1_3 | running | standby |27| 3 | dn2 | dn2_1 | 192.168.6.137 | 20010 | /home/gbase/data/dn2/dn2_1 | running | primary |28| 4 | dn2 | dn2_2 | 192.168.6.135 | 20010 | /home/gbase/data/dn2/dn2_2 | running | standby |29| 5 | dn2 | dn2_3 | 192.168.6.136 | 20010 | /home/gbase/data/dn2/dn2_3 | running | standby |30+----+-------+-------+---------------+-------+----------------------------+---------+---------+31+----+---------------------------+--------+---------+----------+32| No | url | name | state | isLeader |33+----+---------------------------+--------+---------+----------+34| 0 | http://192.168.6.136:2379 | node_1 | healthy | False |35| 1 | http://192.168.6.137:2379 | node_2 | healthy | False |36| 2 | http://192.168.6.135:2379 | node_0 | healthy | True |37+----+---------------------------+--------+---------+----------+也可以使用以下方式:
1[gbase@gbase8c01 ~]$ gha_ctl monitor -l http://192.168.6.135:23792{3 "cluster": "gbase",4 "version": "V5_S3.0.0B114",5 "server": [6 {7 "name": "gha_server1",8 "host": "192.168.6.135",9 "port": "20001",10 "state": "running",11 "isLeader": true12 }13 ],14 "gtm": [15 {16 "name": "gtm1",17 "host": "192.168.6.135",18 "port": "6666",19 "workDir": "/home/gbase/data/gtm/gtm1",20 "agentPort": "8001",21 "state": "running",22 "role": "primary",23 "agentHost": "192.168.6.135"24 },25 {26 "name": "gtm2",27 "host": "192.168.6.136",28 "port": "6666",29 "workDir": "/home/gbase/data/gtm/gtm2",30 "agentPort": "8002",31 "state": "running",32 "role": "standby",33 "agentHost": "192.168.6.136"34 }35 ],36 "coordinator": [37 {38 "name": "cn1",39 "host": "192.168.6.136",40 "port": "5432",41 "workDir": "/home/gbase/data/coord/cn1",42 "agentPort": "8003",43 "state": "running",44 "role": "primary",45 "agentHost": "192.168.6.136",46 "central": true47 },48 {49 "name": "cn2",50 "host": "192.168.6.137",51 "port": "5432",52 "workDir": "/home/gbase/data/coord/cn2",53 "agentPort": "8004",54 "state": "running",55 "role": "primary",56 "agentHost": "192.168.6.137"57 }58 ],59 "datanode": {60 "dn1": [61 {62 "name": "dn1_1",63 "host": "192.168.6.136",64 "port": "15432",65 "workDir": "/home/gbase/data/dn1/dn1_1",66 "agentPort": "8005",67 "state": "running",68 "role": "primary",69 "agentHost": "192.168.6.136"70 },71 {72 "name": "dn1_2",73 "host": "192.168.6.137",74 "port": "15433",75 "workDir": "/home/gbase/data/dn1/dn1_2",76 "agentPort": "8006",77 "state": "running",78 "role": "standby",79 "agentHost": "192.168.6.137"80 },81 {82 "name": "dn1_3",83 "host": "192.168.6.135",84 "port": "15433",85 "workDir": "/home/gbase/data/dn1/dn1_3",86 "agentPort": "8006",87 "state": "running",88 "role": "standby",89 "agentHost": "192.168.6.135"90 }91 ],92 "dn2": [93 {94 "name": "dn2_1",95 "host": "192.168.6.137",96 "port": "20010",97 "workDir": "/home/gbase/data/dn2/dn2_1",98 "agentPort": "8007",99 "state": "running",100 "role": "primary",101 "agentHost": "192.168.6.137"102 },103 {104 "name": "dn2_2",105 "host": "192.168.6.135",106 "port": "20010",107 "workDir": "/home/gbase/data/dn2/dn2_2",108 "agentPort": "8008",109 "state": "running",110 "role": "standby",111 "agentHost": "192.168.6.135"112 },113 {114 "name": "dn2_3",115 "host": "192.168.6.136",116 "port": "20010",117 "workDir": "/home/gbase/data/dn2/dn2_3",118 "agentPort": "8009",119 "state": "running",120 "role": "standby",121 "agentHost": "192.168.6.136"122 }123 ]124 },125 "dcs": {126 "clusterState": "healthy",127 "members": [128 {129 "url": "http://192.168.6.136:2379",130 "id": "14a718a6a4833a05",131 "name": "node_1",132 "isLeader": false,133 "state": "healthy"134 },135 {136 "url": "http://192.168.6.137:2379",137 "id": "8eed282d78c15ddb",138 "name": "node_2",139 "isLeader": false,140 "state": "healthy"141 },142 {143 "url": "http://192.168.6.135:2379",144 "id": "a43c96850bc6ef25",145 "name": "node_0",146 "isLeader": true,147 "state": "healthy"148 }149 ]150 }151}如上说明集群安装正常,数据服务启动中。
1[gbase@gbase8c01 ~]$ gha_ctl stop all -l http://192.168.6.135:23792{3 "ret":0,4 "msg":"Success"5}1[gbase@gbase8c01 ~]$ gha_ctl start all -l http://192.168.6.135:23792{3 "ret":0,4 "msg":"Success"5}在数据库节点执行:
1+----+------+---------------+------+----------------------------+---------+---------+2| No | name | host | port | work_dir | state | role |3+----+------+---------------+------+----------------------------+---------+---------+4| 0 | cn1 | 192.168.6.136 | 5432 | /home/gbase/data/coord/cn1 | running | primary |5| 1 | cn2 | 192.168.6.137 | 5432 | /home/gbase/data/coord/cn2 | running | primary |6+----+------+---------------+------+----------------------------+---------+---------+连接数据库:
1## 出现 postgres=# 操作符说明客户端工具 gsql 成功连接 8c 数据库2[gbase@gbase8c02 ~]$ gsql -d postgres -p 54323gsql ((multiple_nodes GBase8cV5 3.0.0B114 build 9b50bc36) compiled at 2023-11-07 19:39:08 commit 0 last mr 1763 )4Non-SSL connection (SSL connection is recommended when requiring high-security)5Type "help" for help.67postgres=# create database lucifer;8CREATE DATABASE9postgres=# \c lucifer10Non-SSL connection (SSL connection is recommended when requiring high-security)11You are now connected to database "lucifer" as user "gbase".12lucifer=# create table test(ID int, Name varchar(10));13CREATE TABLE14lucifer=# insert into test values(1, 'lucifer'),(2,'echo');15INSERT 0 216lucifer=# select * from test;17 id | name 18----+---------19 1 | lucifer20 2 | echo21(2 rows)集群卸载具体操作命令为:
1gha_ctl uninstall -l http://192.168.6.135:2379在集群卸载后环境变量自动清除,因此再次执行 gha_ctl 命令需要进入script 目录。卸载 DCS 工具的具体操作命令为:
1cd /home/gbase/script2./gha_ctl destroy dcs -l http://192.168.6.135:2379如果有遗漏或者不足的地方,欢迎评论区补充或者投稿,感谢阅读!