8cA02 GBase 8c 安装与卸载
GBase 8c 安装与卸载
一、课程整体概述
1. 课程目标
- 理解 GBase 8c 分布式数据库架构,掌握分布式集群整体部署逻辑;
- 熟练完成分布式集群安装、卸载全套实操;
二、核心架构与组件概念
产品介绍课程中已经详细介绍过,这里只做简单说明。
本节介绍集群所有核心节点、角色、功能、架构形态,是理解部署的前提。
1. 集群核心组件
| 组件名称 | 全称 | 核心角色 | 主要功能 | 部署架构 |
|---|---|---|---|---|
| GHA Server | 高可用管理器 | 集群高可用总控 | 统一管理全集群节点高可用状态,作用类似 Patroni | 主备架构,支持同步 / 异步复制 |
| DCS | 集群状态管理器 | 状态存储 & 故障判定 | 持久化所有节点运行状态,节点故障时完成状态仲裁 | 基于 Raft 协议集群部署 |
| GTM | 全局事务管理器 | 分布式事务核心 | 生成、维护全局时间戳,保障分布式集群数据强一致性 | 主备架构,支持同步 / 异步复制 |
| CN / Coordinator | 协调节点 | 入口 & 计算调度 | 对外承接客户端 SQL 请求,完成解析、优化、生成执行计划,调度 DN 执行读写 | 多节点对等部署,无主备区分 |
| DN / Datanode | 数据节点 | 数据存储层 | 存储分片业务数据、节点元数据,执行本地数据读写、查询 | 主备架构,支持同步 / 异步复制 |
客户端 → CN(接待、解析 SQL)→ GTM(保证事务一致)→ DN(真正存数据);GHA+DCS 全程监控所有节点状态,实现故障自动切换。
2. GBase 8c 三种部署形态
GBase 8c 支持多模多态,根据业务规模选择不同形态:
2.1. 分布式形态
- 架构:GTM 主 / 备、多 CN、多 DN 主 / 备全组件冗余高可用;计算、存储分离。
- 优势:计算、存储可独立水平扩容,支撑大数据量、高并发场景,数据安全性高。
- 适用:中大型业务、分布式业务、高可用要求高的生产环境。
2.2. 主备式形态
- 架构:一主多备模式,无复杂分布式组件。
- 优势:部署简单、交付快,单机性能极致。
- 适用:数据量偏小、无需分布式拆分、仅做数据备份的场景。
2.3. 单节点形态(测试 / 学习首选)
- 架构:仅单个数据库实例,无集群、无主备。
- 优势:成本最低、部署极简。
- 适用:个人学习、功能测试、开发环境。
3. 分布式形态整体架构逻辑
- 接入层:客户端应用通过网络连接 CN 协调节点;
- 调度层:CN 解析 SQL,协同 GTM 全局事务节点保证分布式事务;
- 存储层:CN 将任务下发至多个 DN 数据节点,DN 完成本地数据读写;
- 高可用层:GHA+DCS 实时监控所有节点状态,节点故障自动切换主备。
三、安装前置要求(硬件 + 软件 + 依赖)
安装前必须完成环境检查,不满足会直接导致安装失败,分为硬件、系统软件、软件依赖三部分。
1. 硬件配置要求
区分物理机与虚拟机环境,课件标准配置如下:
| 配置项 | 物理机 | 虚拟机 |
|---|---|---|
| CPU | 主频 2.4GHz 以上 | 主频 2.4GHz 以上 |
| 内存 | 单节点 128GB 以上 | 单节点 ≥8GB |
| 硬盘 | ≥500GB | ≥100GB |
| 网络 | 万兆 (10GB) | 千兆 / 万兆 |
补充:生产环境需根据数据量、并发量额外扩容资源。
2. 基础软件依赖
系统需预装指定版本依赖包:bison、flex、patch、bzip2 等,版本需匹配官方要求。
| 所需软件 | 建议版本 |
|---|---|
| bison | 2.7-4 |
| flex | 2.5.31 以上 |
| libaio-devel | 0.3.109-13 |
| lsb_release | 4.1 |
| patch | 2.7.1-10 |
| ncurses-devel | 5.9-13.20130511 |
| bzip | 1.0.6 |
3. 演示集群规划(3 节点虚拟机案例)
课件使用 3 台 CentOS 7.9 虚拟机 做演示,统一配置:
- 系统:CentOS Linux release 7.9.2009 (Core)
- 内存:4G、CPU:2 核、硬盘:100G、文件系统:XFS
- 节点划分:node1、node2、node3,分配 GHA、DCS、GTM、CN、DN 等角色。
同时提供逻辑规划表:明确每一个节点的机器归属、端口、角色、数据目录,是编写配置文件的依据。
*因为虚拟机配置不足,按照下面配置节点角色
| IP 地址 | 节点角色 | 核心职责 |
|---|---|---|
| 10.168.56.200 | GHA Server、DCS、GTM 主 | 高可用管理服务、集群状态管理器、全局事务管理主节点 |
| 10.168.56.201 | DCS、CN1、DN1 主 | 集群状态管理器、协调节点 1、数据节点 1 主节点 |
| 10.168.56.202 | DCS、DN2 主 | 集群状态管理器、数据节点 2 主节点 |
四、分布式集群完整安装流程
整体流程总览:全节点环境准备 → 部署机上传解压安装包 → 编写 yml 配置文件 → 执行集群安装 → 状态验证
重要规则:
- 「全节点操作」:关闭防火墙、SELinux、创建用户、NTP 同步、免密互信;
- 「仅部署机操作」:上传解压包、编辑 yml 配置、执行安装命令。
步骤 1:全节点关闭防火墙(root 执行)
作用:集群节点间大量通信,防火墙会阻断端口,必须永久关闭。
- 查看状态:systemctl status firewalld
- 临时关闭:systemctl stop firewalld
- 禁止开机自启(永久关闭):systemctl disable firewalld
- 验证:状态显示
inactive(dead)即为正常。
步骤 2:全节点关闭 SELinux(root 执行)
SELinux 安全机制会限制数据库文件、进程权限,集群环境必须禁用。
- 查看状态:
sestatus - 编辑配置文件:VIM /etc/selinux/config 将 SELINUX=enforcing 修改为 SELINUX=disabled,保存退出。
- 重启服务器生效:
reboot - 重启后再次执行
sestatus,显示disabled即完成。
步骤 3:全节点环境检查(root 执行)
-
主机名检查 hostname 所有节点主机名不能重复,修改文件 /etc/hostname 自定义主机名,避免集群识别异常。
-
依赖包检查与安装 检查命令:rpm -q bison flex patch bzip2
- 有版本输出:依赖已存在;
- 提示
package is not installed:执行安装yum install -y bison flex patch bzip2。
-
CPU 指令集检查(虚拟机必查) 检查是否支持 rdtscp 指令集:cat /proc/cpuinfo | grep rdtscp 有输出代表支持;无输出需适配 CPU 固件 / 驱动。

步骤 4:全节点创建 gbase 用户并配置 sudo 权限(root 执行)
GBase 8c 禁止 root 运行数据库进程,必须使用专用 gbase 普通用户。
-
创建用户组 & 用户:
groupadd gbase useradd -m -d /home/gbase gbase -g gbase passwd gbase # 设置gbase用户密码 chown -R gbase:gbase /home/gbase/
-
配置免密 sudo 权限: 执行 visudo,在文件中添加一行:
## Allow root to run any commands anywhere(该行下追加) gbase ALL=(ALL) NOPASSWD:ALL
作用:gbase 用户执行 sudo 命令无需输入密码,适配集群自动化安装。
-
切换普通用户:
su gbase,后续所有操作均使用该用户。
步骤 5:全节点配置 NTP 时间同步(gbase 执行)
集群所有节点时间必须完全一致,时间偏差会导致事务、高可用判定异常。
-
查看 NTP 状态:
sudo systemctl status ntpd.service -
启动服务 + 外网时间同步(能访问外网,我的虚拟机没有配置外网,不执行此步骤):
sudo systemctl start ntpd.service sudo systemctl enable ntpd.service sudo ntpdate asia.pool.ntp.org -
内网集群(无外网)配置:
- 选 GTM 主节点 作为 NTP 主节点;
- 所有节点编辑
/etc/ntp.conf,注释外网时间服务器; - 主节点添加:使用本地时钟(只有主节点添加!!)
sudo vi /etc/ntp.conf # restrict default nomodify notrap nopeer noquery下面添加如下信息 restrict 192.168.56.200 nomodify notrap nopeer noquery # the administrative functions.下面添加如下信息 restrict 192.168.56.255 mask 255.255.255.0 nomodify notrap # restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap下面添加如下信息 server 127.127.1.0 Fudge 127.127.1.0 stratum 10 # 注释下面4行 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst # :wq保存退出 # 注意: # 192.168.56.200是主节点的IP # 192.168.56.255是你自己本地的子网掩码

- 从节点指向 NTP 主节点 IP。(201 配置)
sudo vi /etc/ntp.conf
# restrict default nomodify notrap nopeer noquery下面添加如下信息
restrict 192.168.56.201 nomodify notrap nopeer noquery
# the administrative functions.下面添加如下信息
restrict 192.168.56.255 mask 255.255.255.0 nomodify notrap
# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap下面添加如下信息
server 192.168.56.200
Fudge 192.168.56.200 stratum 10
# 注释下面4行
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
# :wq保存退出
# 注意:
# 192.168.56.201是从节点的IP(每天从节点都不一样)
# 192.168.56.255是你自己本地的子网掩码
# 192.168.56.200是主节点的IP

- 从节点指向 NTP 主节点 IP。(202 配置)
sudo vi /etc/ntp.conf
# restrict default nomodify notrap nopeer noquery下面添加如下信息
restrict 192.168.56.202 nomodify notrap nopeer noquery
# the administrative functions.下面添加如下信息
restrict 192.168.56.255 mask 255.255.255.0 nomodify notrap
# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap下面添加如下信息
server 192.168.56.200
Fudge 192.168.56.200 stratum 10
# 注释下面4行
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
# :wq保存退出
# 注意:
# 192.168.56.202是从节点的IP(每天从节点都不一样)
# 192.168.56.255是你自己本地的子网掩码
# 192.168.56.200是主节点的IP

步骤 6:全节点配置节点免密互信(gbase 执行)
集群安装工具会通过 SSH 远程执行命令,必须实现节点间免密登录。
-
创建 SSH 目录并授权:(每个节点都执行)
mkdir ~/.ssh chmod 700 ~/.ssh -
生成 RSA 密钥(一路回车,不设置密钥密码):
ssh-keygen -t rsa

- 推送公钥到(每个节点都执行) 所有节点(含本机):ssh-copy-id gbase@ 节点 IP
ssh-copy-id gbase@192.168.56.200
ssh-copy-id gbase@192.168.56.201
ssh-copy-id gbase@192.168.56.202
- 验证:
ssh gbase@对方IP,无需输入密码直接登录即互信成功。(每个节点都执行)
ssh gbase@192.168.56.200
ssh gbase@192.168.56.201
ssh gbase@192.168.56.202
步骤 7:部署机上传并解压安装包(仅部署机,gbase 执行)
部署机一般选择 GTM 主节点。
- 将 GBase 8c 压缩包上传至 gbase 用户目录;(/home/gbase/gbase_package)
- 解压主安装包、OM 管理包;
mkdir /home/gbase/gbase_package
cd /home/gbase/gbase_package
sudo chown gbase:gbase GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz
tar -xvf GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz
tar -xvf GBase8cV5_S3.0.0B78_CentOS_x86_64_om.tar.gz


- 解压后核心目录 / 文件说明:
gbase.yml:集群安装核心配置模板;script:工具目录(安装、监控、卸载命令都在此);gha:高可用组件库;simpleInstall:单机版安装脚本。
步骤 8:编辑 gbase.yml 集群配置文件(仅部署机)
gbase.yml 是集群安装的核心,定义所有节点角色、IP、端口、目录、集群类型。
vim /home/gbase/gbase_package/gbase.yml
# 修改各节点对应的服务器IP,这是修改后的配置文件,可以根据自己服务器ip进行替换
# 把dn1_2、dn1_3、dn2_3备节点删除。(这个是根据实际情况设定的,不是必须要删除)
gha_server:
- gha_server1:
host: 192.168.56.200
port: 20001
dcs:
- host: 192.168.56.200
port: 2379
- host: 192.168.56.201
port: 2379
- host: 192.168.56.202
port: 2379
gtm:
- gtm1:
host: 192.168.56.200
agent_host: 192.168.56.200
role: primary
port: 6666
agent_port: 8001
work_dir: /home/gbase/data/gtm/gtm1
coordinator:
- cn1:
host: 192.168.56.201
agent_host: 192.168.56.201
role: primary
port: 5432
agent_port: 8003
work_dir: /home/gbase/data/coord/cn1
datanode:
- dn1:
- dn1_1:
host: 192.168.56.201
agent_host: 192.168.56.201
role: primary
port: 15432
agent_port: 8005
work_dir: /home/gbase/data/dn1/dn1_1
- dn2:
- dn2_1:
host: 192.168.56.202
agent_host: 192.168.56.202
role: primary
port: 20010
agent_port: 8007
work_dir: /home/gbase/data/dn2/dn2_1
# numa:
# cpu_node_bind: 0,1
# mem_node_bind: 0,1
env:
# cluster_type allowed values: multiple-nodes, single-inst, default is multiple-nodes
cluster_type: multiple-nodes
pkg_path: /home/gbase/gbase_package
prefix: /home/gbase/gbase_db
version: V5_S3.0.0B78
user: gbase
port: 22
# constant:
# virtual_ip: 100.0.1.254/24
核心配置参数解释
host:数据面 IP(CN/DN 业务访问 IP);agent_host/agent_port:控制面 IP 与端口(高可用、监控通信);port:节点服务端口;role:节点角色(gtm/cn/dn,区分 primary 主节点);work_dir:数据、日志存放目录;cluster_type:集群类型,分布式固定填写multiple-nodes;version:安装包版本号,仅修改后两位。
双网卡建议:数据流量走万兆网卡,高可用控制报文走千兆网卡,避免业务流量干扰高可用。
步骤 9:执行集群安装命令(仅部署机,gbase 执行)
进入解压目录下的 script 文件夹,使用 gha_ctl 工具安装:
命令语法
./gha_ctl install [-c 集群名] [-p 配置文件路径]
-c:集群名称,默认 gbase,需和 yml 文件匹配;-p:配置文件存放路径。
示例命令
cd /home/gbase/gbase_package/script
./gha_ctl install -c gbase -p /home/gbase/gbase_package
安装成功标识
返回 {"ret":0, "msg":"Success"} 代表集群部署完成。

步骤 10:集群状态监控验证(gbase 执行)
使用 gha_ctl monitor 查看全集群节点运行状态,确认所有组件正常启动。
命令语法
./gha_ctl monitor 节点类型 -H -l DCS地址
- 节点类型:
all(全节点)、datanode、coordinator、gtm、dcs; -H:表格化输出,方便阅读;-l:指定 DCS 服务地址,格式http://IP:2379。
示例命令
./gha_ctl monitor all -H -l http://192.168.56.200:2379

正常状态判断
所有节点 state 显示 running、DCS/ GHA 存在 Leader 节点,代表集群运行正常。
五、集群使用(启停、连接)
-
集群监控 在 DCS 上执行命令
gha_ctl monitor all -H -l http://192.168.56.200:2379

-
集群启动。在 DCS 上执行命令
gha_ctl start all -l http://192.168.56.200:2379 -
集群停止。在 DCS 上执行命令
gha_ctl stop all -l http://192.168.56.200:2379 -
本地连接(只有部署了 CN 节点才可以使用本地连接)
gsql -d postgres -p 5432
- 远程连接
gsql -d postgres -h 192.168.56.201 -p 5432
问题解决:
# 下面报错原因是 GBase 8c 数据库默认禁止使用 trust(无密码信任)方式进行远程连接
# 远程连接不允许使用默认用户连接,需要创建用户。
[gbase@gbase8c_1 ~]$ gsql -d postgres -h 192.168.56.201 -p 5432
gsql: FATAL: Forbid remote connection with trust method!
FATAL: Forbid remote connection with trust method!
# 放行所有主机访问、认证方式为sha256
gs_guc reload -Z coordinator -N all -I all -h "host all all 0.0.0.0/0 sha256"
# 设置密码加密类型
gs_guc reload -Z coordinator -N all -I all -c "password_encryption_type=1"
# 监听所有IP地址
gs_guc reload -Z coordinator -N all -I all -c "listen_addresses = '*'"
# 创建用户
create user gb01 password "自己的密码";
# 远程连接
gsql -h 192.168.56.201 -p 5432 -d postgres -U gb01
六、集群卸载流程(部署机 gbase 用户执行)
卸载分两步:先卸载数据库集群,再销毁 DCS 状态集群,顺序不可颠倒。
1. 卸载 GBase 8c 业务集群
命令语法
./gha_ctl uninstall -l DCS地址 [-c 集群名]
示例
./gha_ctl uninstall -c gbase -l http://192.168.56.200:2379
返回 ret:0, Success 代表业务集群卸载成功。
2. 销毁 DCS 集群
DCS 是独立状态集群,需单独销毁:
命令语法
./gha_ctl destroy dcs -l DCS地址 [-c 集群名]
示例
./gha_ctl destroy dcs -l http://192.168.56.200:2379
返回成功即完成全套卸载。
注意:卸载后环境变量失效,后续操作仍需进入
script目录执行命令。
七、全流程总结(学习记忆要点)
- 架构核心:GTM(事务)+ CN(接入调度)+ DN(存储)+ GHA/DCS(高可用),三大部署形态按需选择;
- 安装前置四必做:关防火墙 & SELinux、创建 gbase 用户 + sudo、NTP 时间同步、节点免密互信;
- 核心工具:
gha_ctl install(安装)、gha_ctl monitor(监控)、gha_ctl uninstall/destroy(卸载); - 配置核心:
gbase.yml定义全集群角色、IP、端口、目录; - 排错核心:安装失败优先检查 网络互信、sudo 权限、时间同步、系统内核参数、依赖包 五大项。
评论
热门帖子
- 12025-12-01浏览数:183408
- 22023-05-09浏览数:26146
- 42023-09-25浏览数:19813
- 52020-05-11浏览数:18463