GBase 8a MPP Cluster V953 虚拟集群安装与配置指南

6 阅读14分钟

GBase 8a MPP Cluster V953 虚拟集群安装与配置指南


一、概述

GBase 8a 是一款面向分析型应用领域的列存储关系型数据库管理系统,具备高效的统计与分析能力,能够管理 TB 级至 PB 级数据。作为南大通用公司自主研发的分析型数据库产品,GBase 8a 以列为基本存储单位和运算对象,结合列数据压缩处理、并行处理、快速智能索引等新型数据处理技术,在查询、统计、分析以及批量加载性能上具备突出的优势。

1.1 产品特性

  • 列式存储:按列存储数据,大幅提升分析查询性能
  • 高压缩比:支持多种压缩算法,压缩比可达1:10以上
  • 智能索引:基于列的智能索引技术,快速定位数据
  • 并行处理:支持任务级、算子级并行处理
  • 高可用性:支持数据多副本、节点故障自动切换
  • 在线扩容:支持在线动态扩容,不影响业务运行

1.2 应用场景

  • 数据仓库/数据集市
  • 商业智能(BI)分析
  • 大数据统计分析
  • 实时报表查询
  • 物联网数据分析

1.3 虚拟集群(Virtual Cluster, VC)简介

GBase 8a 支持在同一物理集群上创建多个逻辑隔离的虚拟集群(VC)。每个 VC 拥有独立的数据分布、数据库、用户和权限体系,实现资源与数据的完全隔离。

典型应用场景

  • 开发、测试、生产环境分离
  • 不同业务部门/租户的数据隔离
  • 敏感数据与普通数据分区管理

⚠️ 注意:VC 之间无法跨 VC 查询表,库表结构、用户权限均相互独立。


二、集群核心概念与组件

2.1 节点类型详解

2.1.1 管理节点 (Gcware Node)

定义:指运行 gcware 服务的节点。
功能:组成 GCware 集群(分布式管理集群),负责集群的元数据管理、一致性协调和节点状态监控,是集群的“大脑”和“协调中心”。

核心职责

  • 维护集群全局元数据(如表结构、分片信息)
  • 管理节点心跳和状态监控
  • 协调分布式事务一致性
  • 处理节点加入、退出、故障检测
  • 集群配置信息的存储与分发

高可用部署原则
GCware 集群采用基于多数派(超过1/2)的选举协议(Paxos/Raft变种)。因此,必须部署奇数个节点(推荐3、5、7个)。部署3台是满足高可用的最小配置(允许1台故障),部署5台可允许2台故障。

部署建议

  • 生产环境:至少3台
  • 大规模集群:5台或7台
  • 与Gcluster节点同机部署
2.1.2 调度节点 (Gcluster Node)

定义:指运行 gclusterd 服务的节点。
功能:组成 GCluster 集群(分布式调度集群),对外提供数据库连接接口,接收 SQL 请求,进行解析、优化并生成分布式执行计划,然后调度数据节点执行。

核心职责

  • SQL解析、语义检查
  • 查询优化(RBO/CBO)
  • 生成分布式执行计划
  • 任务调度与分发
  • 结果集汇总与返回
  • 连接管理与会话控制

高可用机制
采用 Failover(故障转移) 机制。任一 Gcluster 节点故障,其连接和正在执行的任务可由其他正常节点自动接管。客户端连接可通过连接池或负载均衡器实现自动切换。

部署建议

  • 为避免单点故障并提供连接负载均衡,需部署多台
  • 具体数量参考业务连接压力和数据节点规模
  • 官方建议通常为奇数个(如3、5、7、9、11)
  • 在实际部署中,Gcluster 常与 Gcware 部署在同一物理服务器上,形成 Coordinator 节点
2.1.3 计算节点 (Data Node / GNode)

定义:指运行 gbased 服务的节点。

功能:组成 Data Cluster(数据集群),负责数据的本地存储、压缩、索引和计算,是真正的数据承载与计算单元。

核心职责

  • 数据存储与管理(列式存储)
  • 执行本地计算任务
  • 数据压缩与解压缩
  • 智能索引维护
  • 通过 gc_sync_server 进程保障数据副本一致性

高可用机制: 基于数据分片(Segment)的主副本复制机制。每个数据分片有1个主副本和N个备副本(通常为1个)。当主分片所在节点故障时,查询和计算会自动切换到备份分片副本所在的节点。数据同步由独立的 gc_sync_server 进程负责。

数据分布策略

  • 随机分布:数据随机分布在各个节点
  • 哈希分布:根据指定列哈希值分布数据
  • 复制表:每个节点都有一份完整数据(用于小表关联)
2.1.4 节点角色组合
组合类型包含服务适用场景说明
Coordinator Node(协调节点)gcware + gclusterd + 监控进程生产环境标准配置同时承担元数据管理和SQL调度功能,是最常见的部署方式
纯数据节点gbased + gc_sync_server + 监控进程数据节点专用服务器只负责数据存储与计算,不参与集群管理
管理节点专用gcware + 监控进程大规模集群分离部署元数据服务独立部署,减轻协调节点压力
调度节点专用gclusterd + 监控进程高并发SQL场景调度服务独立部署,提升SQL处理能力

2.2 核心进程详解

GBase 8a MPP Cluster 的核心进程分为协调节点进程、数据节点进程以及保障高可用的监控进程。以下详细说明各进程的功能、配置及维护方式。

2.2.1 Coordinator 节点进程

Coordinator 节点(协调节点)通常混合部署管理组件(GCware)和调度组件(GCluster),负责集群的元数据管理、SQL 解析与任务调度。

进程名称所属组件功能说明配置文件路径默认日志路径
gcwareGCware集群“元数据管理核心”。负责元数据存储、节点心跳检测、一致性协调及故障选举。需部署奇数个节点以实现高可用。$GCWARE_BASE/config/gcware.conf$GCWARE_BASE/log/gcware.log
gclusterdGCluster调度中心。负责接收客户端 SQL 请求,进行解析、优化,生成分布式执行计划并下发给数据节点。$GCLUSTER_BASE/config/gbase_8a_gcluster.cnf$GCLUSTER_BASE/log/gcluster/
gcrecover集群恢复服务(与GCluster协同)恢复代理。监控分布式事务一致性,当检测到事务异常时,协助进行数据恢复操作。其日志记录在gclusterd日志中。(内置于gclusterd管理)$GCLUSTER_BASE/log/gcluster/(与gclusterd日志混合)

  • $GCWARE_BASE$GCLUSTER_BASE 默认为 /opt/gbase
  • 生产环境中,建议将 gcware 和 gclusterd 部署在同一组节点上,形成 Coordinator 节点
2.2.2 Data Node 节点进程

Data Node 节点(数据节点)是数据的实际存储和计算单元,负责执行具体的查询任务和数据处理。

进程名称所属组件功能说明配置文件路径默认日志路径
gbasedGNode数据引擎。负责数据的列式存储、压缩、索引维护及本地计算任务执行。$GBASE_BASE/config/gbased.cnf$GBASE_BASE/log/gbase/
gc_sync_serverSyncServer同步服务。负责数据分片在主备节点之间的实时同步,保障数据冗余和高可用。$GBASE_BASE/config/syncserver.conf$GBASE_BASE/log/syncserver/

  • $GBASE_BASE(或 $GNODE_BASE)默认为 /opt/gbase,是数据节点的安装根目录
  • 请勿将数据节点的路径与环境变量 $GCLUSTER_BASE 混淆
2.2.3 监控进程

为确保集群服务的高可用性,GBase 8a 提供了分层级的监控工具。监控体系采用“分层守护”机制:一级监控负责守护业务服务,二级监控负责守护一级监控脚本。

1. 监控工具功能与层级

监控脚本守护对象功能说明
gcmonit.shgclusterd, gbased, gcrecover, gc_sync_server核心监控脚本。实时监控业务服务进程,若发现进程异常退出,会自动尝试重启。
gcmmonitgcmonit.sh守护进程。专门监控 gcmonit.sh 本身,防止监控脚本意外停止。
gcware_monit.shgcware管理节点监控脚本。专门负责监控 gcware 服务的运行状态。
gcware_mmonitgcware_monit.sh守护进程。专门监控 gcware_monit.sh,确保 gcware 监控层的高可用。

2. 配置文件与日志

监控脚本配置文件路径默认日志路径说明
gcmonit.sh$GCLUSTER_BASE/config/gcmonit.conf$GCLUSTER_BASE/log/gcluster/可配置检测间隔、重启次数等参数
gcmmonit$GCLUSTER_BASE/config/gcmmonit.conf$GCLUSTER_BASE/log/gcluster/守护 gcmonit.sh
gcware_monit.sh$GCWARE_BASE/config/gcware_monit.conf$GCWARE_BASE/log/监控 gcware 服务
gcware_mmonit$GCWARE_BASE/config/gcware_mmonit.conf$GCWARE_BASE/log/守护 gcware_monit.sh

注意:修改配置文件后,必须重启对应的监控服务方可生效。

3. 常用运维命令

监控脚本支持 start(启动)、stop(停止)、restart(重启)、status(状态查询)四个标准操作。请注意参数不带 -- 前缀

  • 启动/停止/重启监控

    # 启动监控
    $ gcmonit.sh start
    $ gcware_monit.sh start
    
    # 停止监控
    $ gcmonit.sh stop
    $ gcware_monit.sh stop
    
    # 重启监控
    $ gcmonit.sh restart
    $ gcware_monit.sh restart
    
  • 查看监控状态 执行 status 命令可查看所有被监控进程的实时运行状态及 PID。

    查看 gcluster/gnode 监控状态:

    $ gcmonit.sh status
    

    查看 gcware 监控状态:

    $ gcware_monit.sh status
    

2.3 集群架构图

┌─────────────────────────────────────────────────────────────┐
│                    客户端/应用                               │
└─────────────────┬───────────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────────┐
│                   负载均衡器/连接池                          │
└─────────┬───────────────┬────────────────┬──────────────────┘
          │               │                │
          ▼               ▼                ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Coordinator 1   │ │ Coordinator 2   │ │ Coordinator 3   │
│ gcware+gclusterd│ │ gcware+gclusterd│ │ gcware+gclusterd│
│ IP:19           │ │ IP:20           │ │ IP:21           │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
         │                   │                   │
         └───────────────────┼───────────────────┘
                             │
                             ▼
┌─────────────────────────────────────────────────────────────┐
│                    数据节点集群                              │
├───────────────┬───────────────┬───────────────┬─────────────┤
│  Data Node 1  │  Data Node 2  │  Data Node 3  │ Data Node 4 │
│    gbased     │    gbased     │    gbased     │   gbased    │
│    IP:19      │    IP:20      │    IP:21      │   IP:22     │
│   Segment 1   │   Segment 2   │   Segment 3   │  备用节点   │
│   (Primary)   │   (Primary)   │   (Primary)   │             │
└───────────────┴───────────────┴───────────────┴─────────────┘

架构说明

  • Coordinator节点:运行 gcware + gclusterd 服务,对外提供SQL接入,对内管理元数据和调度任务
  • 数据节点:运行 gbased + gc_sync_server 服务,负责数据存储、计算和副本同步
  • 负载均衡器:可选组件,用于将客户端连接分发到多个Coordinator节点,实现高可用和负载均衡
  • 网络要求:所有节点之间建议万兆网络互联,保障数据交换效率

三、环境准备

3.1 节点规划与设计

根据您的原始规划,优化后的详细节点规划表如下:

序号主机名IP地址角色操作系统安装目录虚拟集群(VC)硬件配置建议备注
1node04192.168.126.19Coordinator + Data Node (主安装节点)RedHat 7.9/opt/gbasevc1CPU:16C+, 内存:64G+, 磁盘:2T+同时运行gcluster和gcware服务,并作为数据节点
2node05192.168.126.20Coordinator + Data NodeRedHat 7.9/opt/gbasevc2CPU:16C+, 内存:64G+, 磁盘:2T+同上
3node06192.168.126.21Coordinator + Data Node (备用)RedHat 7.9/opt/gbaseFree NodeCPU:16C+, 内存:64G+, 磁盘:2T+构成3节点的Coordinator集群,满足高可用
4node07192.168.126.22Data Node (待扩容)RedHat 7.9/opt/gbaseFree NodeCPU:16C+, 内存:64G+, 磁盘:2T+预留的数据节点,可用于未来扩容或创建新VC

关键概念说明

  • Coordinator Node:指同时部署了 gcluster (调度) 和 gcware (管理) 服务的节点
  • Data Node:指运行 gbased 服务的数据节点
  • Free Node:指已加入根集群但尚未分配给任何虚拟集群(VC)的数据节点,可用于VC创建或扩容
  • VC (Virtual Cluster):虚拟集群,在一个物理集群上划分的逻辑子集群,资源隔离

3.2 系统与硬件要求

3.2.1 硬件最低要求
组件最低配置推荐配置说明
CPU2核16核及以上频率越高越好,支持多核并行
内存4GB64GB及以上取决于数据量和并发
磁盘100GB2TB及以上SSD优先,RAID10或RAID5
网络千兆万兆节点间通信关键
3.2.2 操作系统要求
项目要求
操作系统RedHat 7.X / CentOS 7.X / 麒麟等
文件系统ext4 / xfs
磁盘分区独立数据盘,挂载到/opt/gbase
3.2.3 软件依赖
软件包版本要求用途
python2.7+ / 3.6+安装脚本依赖
bc最新版计算工具
bzip2最新版解压工具
libcgroup-tools最新版资源管理(可选)
ntp/chrony最新版时间同步

3.3 具体配置步骤

以下步骤需在所有节点上以 root 用户执行。

3.3.1 关闭防火墙与SELinux

防火墙配置

# 停止防火墙服务
systemctl stop firewalld

# 禁用防火墙开机自启
systemctl disable firewalld

# 确认防火墙状态
systemctl status firewalld
# 期望输出: Active: inactive (dead)

SELinux配置

# 临时关闭(立即生效)
setenforce 0

# 永久关闭(需重启生效)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

# 验证配置
grep -E "^SELINUX=" /etc/selinux/config
# 期望输出: SELINUX=disabled
3.3.2 配置主机名与网络

设置主机名(如已设置可略过):

# 在node04上执行
hostnamectl set-hostname node04

# 在node05上执行
hostnamectl set-hostname node05

# 在node06上执行
hostnamectl set-hostname node06

# 在node07上执行
hostnamectl set-hostname node07

配置IP映射(/etc/hosts)
确保所有节点包含集群内所有IP和主机名的映射。

cat >> /etc/hosts << EOF
192.168.126.19 node04
192.168.126.20 node05
192.168.126.21 node06
192.168.126.22 node07
EOF

网络连通性测试

# 从node04测试到其他节点
ping -c 3 node05
ping -c 3 node06
ping -c 3 node07

重启网络服务(如修改了IP或主机名):

systemctl restart network
3.3.3 配置SSH互信(免密登录)

生成密钥(在所有节点执行):

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

分发公钥(在主节点 node04 上执行):

# 将本节点公钥拷贝到所有节点(包括自己)
ssh-copy-id node04
ssh-copy-id node05
ssh-copy-id node06
ssh-copy-id node07

# 测试免密登录
ssh node05 "hostname"
ssh node06 "hostname"
ssh node07 "hostname"
# 应能直接返回主机名,无需输入密码

可选:配置SSH超时防止断开

# 编辑SSH客户端配置
cat >> ~/.ssh/config << EOF
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
EOF
3.3.4 安装必需软件包
# 安装基础工具
yum install -y python3 bc bzip2 net-tools telnet wget

# 安装资源管理工具(可选)
yum install -y libcgroup-tools

# 安装时间同步工具
yum install -y chrony

重要依赖检查
安装前需检查 gcinstall 目录下的 dependRpms 文件,安装其中列出的所有依赖包。

# 在主节点解压软件包后查看
cat /opt/gcinstall/dependRpms

# 使用 yum 逐一安装所有列出的包
yum install -y $(cat /opt/gcinstall/dependRpms)
3.3.5 创建DBA用户与目录

创建用户和组

groupadd gbase
useradd -g gbase -m -s /bin/bash gbase

# 设置密码,建议所有节点密码一致
echo "gbase" | passwd --stdin gbase

# 查看用户信息
id gbase
# uid=1000(gbase) gid=1000(gbase) groups=1000(gbase)

创建安装目录并授权

mkdir -p /opt/gbase
chown -R gbase:gbase /opt/gbase

# 验证权限
ls -ld /opt/gbase
# drwxr-xr-x 2 gbase gbase 6 Feb 20 10:00 /opt/gbase

设置/tmp目录权限(部分环境需要):

chmod -R 777 /tmp
3.3.6 其他重要检查

确保root密码一致
所有节点root密码需相同,以便安装脚本使用。

检查并开启SSH服务

systemctl enable sshd
systemctl start sshd
systemctl status sshd
# 期望输出: Active: active (running)

时钟同步配置

# 安装chrony
yum install -y chrony

# 启动并设置开机自启
systemctl enable chronyd --now

# 查看时间同步状态
chronyc sources -v

# 手动同步
chronyc -a makestep

# 检查各节点时间
date

检查crontab服务(为后续日志归档准备):

systemctl status crond
systemctl enable crond
systemctl start crond

检查系统限制

# 修改limits.conf(建议)
cat >> /etc/security/limits.conf << EOF
gbase soft nofile 65536
gbase hard nofile 65536
gbase soft nproc 65536
gbase hard nproc 65536
EOF

检查磁盘挂载

# 查看磁盘使用情况
df -h

# 确保/opt/gbase目录所在分区有足够空间
# 建议单独挂载数据盘

四、安装GBase 8a MPP Cluster

4.1 软件包解压与系统环境设置

4.1.1 软件包准备

操作节点:主安装节点(如 node04)
执行用户:root

步骤

  1. 上传安装包至主节点(如 /opt 目录):
scp GBase8a_MPP_Cluster-License-9.5.3.28.35_patch.2-redhat7-x86_64.tar.bz2 root@node04:/opt/
  1. 解压软件包
cd /opt
tar xfj GBase8a_MPP_Cluster-License-9.5.3.28.35_patch.2-redhat7-x86_64.tar.bz2
ls -ld /opt/gcinstall
4.1.2 复制环境设置脚本

在所有节点执行

scp /opt/gcinstall/SetSysEnv.py root@node04:/opt/
scp /opt/gcinstall/SetSysEnv.py root@node05:/opt/
scp /opt/gcinstall/SetSysEnv.py root@node06:/opt/
scp /opt/gcinstall/SetSysEnv.py root@node07:/opt/
4.1.3 执行环境设置脚本

在每个节点执行

cd /opt
python SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup

预期输出

Set System Env Start...
Set System Env Successfully.

4.2 修改主节点的安装配置文件

4.2.1 进入安装目录

操作节点:主安装节点(node04)
执行用户:gbase

su - gbase
cd /opt/gcinstall
4.2.2 编辑demo.options
# 安装目录
installPrefix=/opt/gbase

# Coordinator节点IP列表
coordinateHost=192.168.126.19,192.168.126.20,192.168.126.21

# 节点ID
coordinateHostNodeID=19,20,21

# 数据节点IP列表
dataHost=192.168.126.19,192.168.126.20,192.168.126.21,192.168.126.22

# Gcware管理节点IP列表
gcwareHost=192.168.126.19,192.168.126.20,192.168.126.21
gcwareHostNodeID=19,20,21

# DBA用户信息
dbaUser=gbase
dbaGroup=gbase
dbaPwd='gbase'

# root用户密码(所有节点必须一致)
rootPwd='root1234'

4.3 执行安装脚本

操作节点:主安装节点(node04)
执行用户:gbase

cd /opt/gcinstall
./gcinstall.py --silent=demo.options --license_file=/home/gbase/20260127-04.lic

4.4 安装后检查

4.4.1 检查集群状态
[gbase@node04 ~]$ gcadmin
4.4.2 安装成功验证清单
检查项命令预期结果
集群状态[gbase@node04 ~]$ gcadminCLUSTER STATE: ACTIVE
所有进程运行[gbase@node04 ~]$ gcmonit --status所有 status = OK
客户端可连接[gbase@node04 ~]$ gccli -u root -p成功进入 SQL 提示符
日志无 ERROR[gbase@node04 ~]$ grep -r "ERROR" /opt/gbase/log/ | wc -l返回 0
4.4.3 查看生成配置文件
cat /opt/gcinstall/gcChangeInfo.xml

4.5 创建虚拟集群(VC)与分布信息

4.5.1 创建第一个VC
[gbase@node04 gcinstall]$ gcadmin createvc e create_vc1.xml
vi create_vc1.xml
<?xml version="1.0" encoding="utf-8"?>
<vc>
    <name>vc1</name>
    <description>Virtual Cluster 1</description>
    <nodes>
        <node ip="192.168.126.19"/>
        <node ip="192.168.126.20"/>
    </nodes>
</vc>
[gbase@node04 gcinstall]$ gcadmin createvc create_vc1.xml
4.5.2 创建第二个VC
<?xml version="1.0" encoding="utf-8"?>
<vc>
    <name>vc2</name>
    <description>Virtual Cluster 2</description>
    <nodes>
        <node ip="192.168.126.21"/>
        <node ip="192.168.126.22"/>
    </nodes>
</vc>
[gbase@node04 gcinstall]$ gcadmin createvc create_vc2.xml
4.5.3 创建分布信息

为vc1创建分布

[gbase@node04 gcinstall]$ vi gcChangeInfo_vc1.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
    <rack>
        <node ip="192.168.126.19"/>
    </rack>
    <rack>
        <node ip="192.168.126.20"/>
    </rack>
</servers>
[gbase@node04 gcinstall]$ gcadmin distribution gcChangeInfo_vc1.xml p 1 d 0 dba_os_password gbase vc vc1
4.5.4 分布创建参数详解
参数含义示例说明
p N主分片数量p 2通常等于 VC 中 Data Node 数量
d M备份分片数量d 0d 1d=0 表示无备份(仅限测试
dba_os_passwordgbase 系统用户密码dba_os_password gbase用于远程执行脚本
db_user / db_pwd数据库管理员账号db_user root db_pwd Admin2O11O531初始安装默认凭证

❗ 注意:生产环境强烈建议设置 d ≥ 1 以保障高可用。

4.5.5 查看分布信息
[gbase@node04 ~]$ gcadmin showdistribution vc vc1
[gbase@node04 ~]$ gcadmin showdistribution vc vc2
4.5.6 查看整体集群状态
[gbase@node04 ~]$ gcadmin

4.6 数据库初始化

[gbase@node04 ~]$ gccli -u root -p
Enter password: Admin2O11O531

初始化vc1

use vc vc1;
initnodedatamap;
show nodedatamap;

初始化vc2

use vc vc2;
initnodedatamap;
show nodedatamap;

4.7 创建库表验证

4.7.1 在vc1中创建库表
use vc vc1;
create database test;
use test;
create table T(id int ,name varchar(20));
insert into T values(1, '张三');
insert into T values(2, '李四');
select * from T;
4.7.2 在vc2中创建库表
use vc vc2;
create database test;
use test;
create table T(id int ,name varchar(20));
insert into T values(1, '王五');
insert into T values(2, '赵六');
select * from T;
4.7.3 验证数据隔离
-- vc1 只能看到张三、李四
use vc vc1; select * from test.T;

-- vc2 只能看到王五、赵六
use vc vc2; select * from test.T;

数据隔离成功,说明虚拟集群配置正确。


五、常见问题与解决方案

5.1 crontab权限问题

错误现象

Error: gcinstall.py(line 4292) -- check crontab privilege failed nodes: 192.168.126.19

解决方法

# 编辑白名单
sudo vi /etc/cron.allow
# 添加
gbase

# 重启服务
sudo systemctl restart crond.service

5.2 SSH主机密钥问题

解决方法

cd /etc/ssh
mkdir bak
mv ssh_host_* bak/
systemctl restart sshd

5.3 Cgroup警告

解决方法

输入 y 继续安装,或安装缺失包:

yum install libcgroup-tools -y

六、集群卸载

6.1 卸载前准备

# 停止服务
gcware_services all stop
gcluster_services all stop

6.2 执行卸载

cd /opt/gcinstall
cp demo.options demo_uninstall.options
# 编辑 demo_uninstall.options(清空 exist* 字段)
./unInstall.py --silent=demo_uninstall.options

6.3 验证卸载

ls -la /opt/gbase          # 应为空
ps -ef | grep gbase        # 应无输出

七、性能优化建议

7.1 操作系统优化(略)

7.2 数据库参数优化

7.2.1 GNode 内存分配建议

gbase_memory_pool_size ≈ (总物理内存 - 16GB) × 0.7

服务器内存推荐 gbase_memory_pool_size
64 GB32G
128 GB75G
256 GB+160G

配置示例(/opt/gbase/etc/gbased.cnf)

[gbased]
gbase_memory_pool_size = 75G
gbase_buffer_distribution = 8G
gbase_buffer_sort = 4G
gbase_parallel_degree = 16

⚠️ 注意:所有内存参数之和不应超过 gbase_memory_pool_size


八、日常运维命令速查

8.1 集群状态查看

命令说明
gcadmin查看集群概要状态
gcadmin showcluster查看详细集群状态
gcadmin showdistribution查看数据分布
gcadmin showvc查看虚拟集群信息
gcmonit --status查看进程监控状态

8.2 服务启停

命令说明
gcluster_services all start启动所有gcluster和gnode服务
gcware_services all start启动所有gcware服务
gcmonit --start启动监控进程

8.3 虚拟集群管理

命令说明
gcadmin createvc创建虚拟集群
gcadmin dropvc删除虚拟集群
gcadmin distribution创建分布信息

九、附录

9.1 端口说明

端口服务是否需对外暴露说明
5258gclusterd✅ 是应用连接端口
5918gbased❌ 否节点间通信
5919syncserver❌ 否主备同步
5259/5260gcware❌ 否管理节点内部通信

9.2 目录结构

/opt/gbase/
├── bin/
├── etc/
├── log/
│   ├── gbase/
│   ├── gcluster/
│   ├── gcware/
│   └── syncserver/
└── userdata/

9.3 常用SQL

SELECT current_vc();        -- 查看当前 VC
SHOW VCS;                   -- 列出所有 VC
SHOW NODES FROM VC vc1;     -- 查看 VC 节点
SHOW DISTRIBUTION TABLE t;  -- 查看表分布

9.4 故障自检流程

  1. gcadmin → 集群是否 ACTIVE
  2. gcmonit --status → 进程是否 OK
  3. gccli -u root -p → 能否连接
  4. grep "ERROR" /opt/gbase/log/... → 查日志
  5. ping / telnet → 网络与端口