认证培训专区
学习笔记
文章

8cA02 GBase 8c 安装与卸载

发表于2026-06-11 15:43:04100次浏览8个评论

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 配置文件 → 执行集群安装 → 状态验证

重要规则:

  1. 「全节点操作」:关闭防火墙、SELinux、创建用户、NTP 同步、免密互信;
  2. 「仅部署机操作」:上传解压包、编辑 yml 配置、执行安装命令。

步骤 1:全节点关闭防火墙(root 执行)

作用:集群节点间大量通信,防火墙会阻断端口,必须永久关闭。

  1. 查看状态:systemctl status firewalld
  2. 临时关闭:systemctl stop firewalld
  3. 禁止开机自启(永久关闭):systemctl disable firewalld
  4. 验证:状态显示 inactive(dead) 即为正常。 1781140659887.png

步骤 2:全节点关闭 SELinux(root 执行)

SELinux 安全机制会限制数据库文件、进程权限,集群环境必须禁用。

  1. 查看状态:sestatus
  2. 编辑配置文件:VIM /etc/selinux/config 将 SELINUX=enforcing 修改为 SELINUX=disabled,保存退出。
  3. 重启服务器生效:reboot
  4. 重启后再次执行 sestatus,显示 disabled 即完成。 1781140914150.png

步骤 3:全节点环境检查(root 执行)

  1. 主机名检查 hostname 所有节点主机名不能重复,修改文件 /etc/hostname 自定义主机名,避免集群识别异常。

  2. 依赖包检查与安装 检查命令:rpm -q bison flex patch bzip2

    • 有版本输出:依赖已存在;
    • 提示 package is not installed:执行安装 yum install -y bison flex patch bzip21781140900236.png
  3. CPU 指令集检查(虚拟机必查) 检查是否支持 rdtscp 指令集:cat /proc/cpuinfo | grep rdtscp 有输出代表支持;无输出需适配 CPU 固件 / 驱动。 1781140718287.png

步骤 4:全节点创建 gbase 用户并配置 sudo 权限(root 执行)

GBase 8c 禁止 root 运行数据库进程,必须使用专用 gbase 普通用户。

  1. 创建用户组 & 用户:

    groupadd gbase
    useradd -m -d /home/gbase gbase -g gbase
    passwd gbase  # 设置gbase用户密码
    chown -R gbase:gbase /home/gbase/
    

    1781140881282.png

  2. 配置免密 sudo 权限: 执行 visudo,在文件中添加一行:

    ## Allow root to run any commands anywhere(该行下追加)
    gbase   ALL=(ALL)    NOPASSWD:ALL
    

    1781140853744.png

    作用:gbase 用户执行 sudo 命令无需输入密码,适配集群自动化安装。

  3. 切换普通用户:su gbase,后续所有操作均使用该用户。

步骤 5:全节点配置 NTP 时间同步(gbase 执行)

集群所有节点时间必须完全一致,时间偏差会导致事务、高可用判定异常。

  1. 查看 NTP 状态:sudo systemctl status ntpd.service

  2. 启动服务 + 外网时间同步(能访问外网,我的虚拟机没有配置外网,不执行此步骤):

    sudo systemctl start ntpd.service
    sudo systemctl enable ntpd.service
    sudo ntpdate asia.pool.ntp.org
    
  3. 内网集群(无外网)配置:

    • 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是你自己本地的子网掩码
    

1781141301182.png

  • 从节点指向 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

1781141404550.png

  • 从节点指向 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

1781141668764.png

步骤 6:全节点配置节点免密互信(gbase 执行)

集群安装工具会通过 SSH 远程执行命令,必须实现节点间免密登录。

  1. 创建 SSH 目录并授权:(每个节点都执行

    mkdir ~/.ssh
    chmod 700 ~/.ssh
    
  2. 生成 RSA 密钥(一路回车,不设置密钥密码):

    ssh-keygen -t rsa
    

1781141715992.png

  1. 推送公钥到(每个节点都执行) 所有节点(含本机):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
  1. 验证:ssh gbase@对方IP,无需输入密码直接登录即互信成功。(每个节点都执行
ssh gbase@192.168.56.200
ssh gbase@192.168.56.201
ssh gbase@192.168.56.202

步骤 7:部署机上传并解压安装包(仅部署机,gbase 执行)

部署机一般选择 GTM 主节点

  1. 将 GBase 8c 压缩包上传至 gbase 用户目录;(/home/gbase/gbase_package)
  2. 解压主安装包、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

1781141929621.png

1781141950765.png

  1. 解压后核心目录 / 文件说明:
    • 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

核心配置参数解释

  1. host:数据面 IP(CN/DN 业务访问 IP);
  2. agent_host/agent_port:控制面 IP 与端口(高可用、监控通信);
  3. port:节点服务端口;
  4. role:节点角色(gtm/cn/dn,区分 primary 主节点);
  5. work_dir:数据、日志存放目录;
  6. cluster_type:集群类型,分布式固定填写 multiple-nodes
  7. 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"} 代表集群部署完成。 1781152432112.png

步骤 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

1781152448687.png

正常状态判断

所有节点 state 显示 running、DCS/ GHA 存在 Leader 节点,代表集群运行正常。

五、集群使用(启停、连接)

  • 集群监控 在 DCS 上执行命令

    gha_ctl monitor all -H -l http://192.168.56.200:2379
    

1781153947422.png

  • 集群启动。在 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 目录执行命令。

七、全流程总结(学习记忆要点)

  1. 架构核心:GTM(事务)+ CN(接入调度)+ DN(存储)+ GHA/DCS(高可用),三大部署形态按需选择;
  2. 安装前置四必做:关防火墙 & SELinux、创建 gbase 用户 + sudo、NTP 时间同步、节点免密互信;
  3. 核心工具gha_ctl install(安装)、gha_ctl monitor(监控)、gha_ctl uninstall/destroy(卸载);
  4. 配置核心gbase.yml 定义全集群角色、IP、端口、目录;
  5. 排错核心:安装失败优先检查 网络互信、sudo 权限、时间同步、系统内核参数、依赖包 五大项。

评论

登录后才可以发表评论
GBase用户51966发表于 2个月前
分析得很透彻,学习了。
GBase用户50900发表于 2个月前
写得很好,学习了!
一个老汉发表于 2个月前
总结得很到位,学习。
GBase用户51511发表于 2个月前
写得真不错,赞一个!
佛洛伊得发表于 2个月前
内容详实,值得收藏。
塔山发表于 2个月前
写得很好,学习了!
GBase用户51510发表于 2个月前
不错的文章,受益匪浅。
GBase用户47954发表于 2个月前
感谢作者的精彩分享!