找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4344

积分

0

好友

575

主题
发表于 3 小时前 | 查看: 1| 回复: 0

GBASE 8A是一款国产的MPP架构分析型数据库,常用于大数据分析场景。要在生产环境或测试环境中部署它,前期的环境准备和后期的维护管理都至关重要。本文将手把手带你完成在CentOS 7操作系统上,搭建一个三节点GBASE 8A集群的完整流程,并介绍常用的管理维护命令。

一、部署前环境检查

在开始安装前,需要对所有服务器节点进行全面的系统环境检查,这是确保集群稳定运行的基础。

1. 操作系统检查

确认操作系统的版本和内核信息。

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

2. 磁盘大小和分区格式

检查磁盘空间,确保有足够的空间用于安装数据库和数据存储。

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   13M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   36G  4.1G   32G  12% /
/dev/sda1               1014M  187M  828M  19% /boot
tmpfs                    378M   52K  378M   1% /run/user/1000
/dev/sr0                 4.5G  4.5G     0 100% /run/media/xuxx/CentOS 7 x86_64
tmpfs                    378M     0  378M   0% /run/user/0

3. 内存和swap检查

确认物理内存和交换分区的大小。

[root@localhost ~]# grep ‘MemTotal’ /proc/meminfo
MemTotal:        3861264 kB
[root@localhost ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:              3           0           1           0           0           2
Swap:             3           0           3

4. CPU检查

检查物理CPU的数量。

[root@localhost ~]# cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l

5. 配置主机名

为每个节点设置唯一的主机名,并配置主机名解析(/etc/hosts)。

[root@localhost ~]# cat /etc/hostname
gbase8a1
[root@localhost ~]# hostname gbase8a1

编辑所有节点的 /etc/hosts 文件,添加类似以下内容(IP地址根据实际情况修改):

192.168.220.134  gbase8a1
192.168.220.135  gbase8a2
192.168.220.136  gbase8a3

6. 检查防火墙和selinux

建议在测试环境关闭防火墙和selinux,生产环境需按安全策略开放端口。

[root@gbase8a1 ~]# cat /etc/selinux/config |grep SELINUX
# SELINUX= can take one of these three values:
SELINUX=disable
# SELINUXTYPE= can take one of three values:
SELINUXTYPE=targeted
[root@gbase8a3 ~]# systemctl stop firewalld
[root@gbase8a3 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

7. 检查用户资源限制

修改资源限制配置文件,确保数据库进程有足够的资源可用。

#vi /etc/security/limits.conf
*  soft as unlimited
*  hard as unlimited

二、配置本地yum源(可选)

如果服务器无法访问外网,可以挂载系统镜像配置本地yum源来安装依赖包。

[root@gbase8a1 ~]# mount /dev/sr0 /mnt
cat > /etc/yum.repos.d/dbaas.repo <<EOF
[dbaas]
name=dbaas
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

三、准备安装介质与目录

1. 创建目录并上传安装包

在安装节点上创建统一的软件目录。

[root@gbase8a1 ~]# mkdir /gbase8a
[root@gbase8a1 ~]# mkdir /gbase8a/soft
[root@gbase8a1 soft]# tar xjf GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2
[root@gbase8a1 soft]# ls -l
total 150860
-rw-r--r--. 1 root root 154472922 Jan 29 01:44 GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2
drwxr-xr-x. 3 xuxx xuxx      4096 Jan 23  2024 gcinstall

2. 创建DBA用户并配置权限

在所有节点创建运行数据库的专用用户。

useradd gbase
passwd gbase   # --gbase123
[root@gbase8a1 soft]# chown -R gbase:gbase gcinstall

在所有节点创建数据库软件的安装目录并授权。

[root@gbase8a1 soft]# mkdir -pv /gbase8a/gbase
[root@gbase8a1 soft]# chown -R gbase.gbase /gbase8a/gbase/

四、执行GBASE 8A集群安装

1. 初始化系统环境

将安装包中的环境初始化脚本分发到所有节点并执行。以安装节点为例:

/gbase8a/soft/gcinstall/SetSysEnv.py  --dbaUser=gbase --installPrefix=/gbase8a/gbase

在其他节点执行类似命令(脚本已预先拷贝过去):

/gbase8a/gbase/SetSysEnv.py  --dbaUser=gbase --installPrefix=/gbase8a/gbase

2. 静默安装

编辑安装配置文件 demo.options,定义集群节点、用户等信息。

[root@gbase8a1 gcinstall]# cat demo.options
installPrefix= /gbase8a/gbase
coordinateHost = 192.168.220.134,192.168.220.135,192.168.220.136
coordinateHostNodeID = 134,135,136
dataHost = 192.168.220.134,192.168.220.135,192.168.220.136
#existCoordinateHost =
#existDataHost =
#existGcwareHost=
gcwareHost = 192.168.220.134,192.168.220.135,192.168.220.136
gcwareHostNodeID = 134,135,136
dbaUser = gbase
dbaGroup = gbase
dbaPwd = ‘gbase123’
rootPwd = ‘123456’
#dbRootPwd = ‘’
#rootPwdFile = rootPwd.json
#characterSet = utf8
#sshPort = 22

执行静默安装命令:

[root@gbase8a1 gcinstall]# ./gcinstall.py  --silent=demo.options
192.168.220.136          install gcware and cluster on host 192.168.220.136 successfully.
192.168.220.134          install gcware and cluster on host 192.168.220.134 successfully.
192.168.220.135          install gcware and cluster on host 192.168.220.135 successfully.
Starting all gcluster nodes ...
adding new datanodes to gcware ...
InstallCluster Successfully

安装完成后,切换到gbase用户,加载环境变量并检查集群状态。

[root@gbase8a1 gcinstall]# su - gbase
Last login: Thu Jan 29 02:16:38 EST 2026 on pts/2
[gbase@gbase8a1 ~]$ source ~/.bash_profile
[gbase@gbase8a1 ~]$ gcadmin
CLUSTER STATE:         ACTIVE
=======================================
|  GBASE GCWARE CLUSTER INFORMATION   |
=======================================
| NodeName |    IpAddress    | gcware |
---------------------------------------
| gcware1  | 192.168.220.134 |  OPEN  |
---------------------------------------
| gcware2  | 192.168.220.135 |  OPEN  |
---------------------------------------
| gcware3  | 192.168.220.136 |  OPEN  |
---------------------------------------
=========================================================
|         GBASE COORDINATOR CLUSTER INFORMATION         |
=========================================================
|   NodeName   |    IpAddress    | gcluster | DataState |
---------------------------------------------------------
| coordinator1 | 192.168.220.134 |   OPEN   |     0     |
---------------------------------------------------------
| coordinator2 | 192.168.220.135 |   OPEN   |     0     |
---------------------------------------------------------
| coordinator3 | 192.168.220.136 |   OPEN   |     0     |
---------------------------------------------------------
================================================================
|           GBASE CLUSTER FREE DATA NODE INFORMATION           |
================================================================
| NodeName  |    IpAddress    | gnode | syncserver | DataState |
----------------------------------------------------------------
| FreeNode1 | 192.168.220.135 | OPEN  |    OPEN    |     0     |
----------------------------------------------------------------
| FreeNode2 | 192.168.220.134 | OPEN  |    OPEN    |     0     |
----------------------------------------------------------------
| FreeNode3 | 192.168.220.136 | OPEN  |    OPEN    |     0     |
----------------------------------------------------------------
0 virtual cluster
3 coordinator node
3 free data node

五、集群初始化与基础配置

安装后的集群还处于“空闲数据节点”模式,需要进行初始化才能用于数据存储和SQL操作。

1. 创建数据分布(Distribution)

修改数据分布配置文件 gcChangeInfo.xml

<?xml version=”1.0” encoding=”utf-8”?>
<servers>
    <rack>
        <node ip=“192.168.220.135“/>
        <node ip=“192.168.220.134“/>
        <node ip=“192.168.220.136“/>
    </rack>
</servers>

执行命令创建分布:

[gbase@gbase8a1 gcinstall]$ gcadmin distribution gcChangeInfo.xml p 2 d 1
gcadmin generate distribution ...
NOTE: node [192.168.220.135] is coordinator node, it shall be data node too
NOTE: node [192.168.220.134] is coordinator node, it shall be data node too
NOTE: node [192.168.220.136] is coordinator node, it shall be data node too
gcadmin generate distribution successful

2. 初始化数据库系统

使用root用户(初始密码为空)登录数据库,执行初始化命令。

[gbase@gbase8a1 gcinstall]$ gccli -uroot
GBase client Free Edition 9.5.3.28.12509af27. Copyright (c) 2004-2026, GBase.  All Rights Reserved.
gbase> initnodedatamap;
Query OK, 1 row affected (Elapsed: 00:00:03.59)

3. 安装后状态检查

初始化后,再次检查集群状态,可以看到“虚拟集群模式”变为“NORMAL”,并且空闲数据节点变成了正式的数据节点。

[gbase@gbase8a1 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL   --初始化以后多出来的
=======================================
|  GBASE GCWARE CLUSTER INFORMATION   |
=======================================
| NodeName |    IpAddress    | gcware |
---------------------------------------
| gcware1  | 192.168.220.134 |  OPEN  |
---------------------------------------
| gcware2  | 192.168.220.135 |  OPEN  |
---------------------------------------
| gcware3  | 192.168.220.136 |  OPEN  |
---------------------------------------
=========================================================
|         GBASE COORDINATOR CLUSTER INFORMATION         |
=========================================================
|   NodeName   |    IpAddress    | gcluster | DataState |
---------------------------------------------------------
| coordinator1 | 192.168.220.134 |   OPEN   |     0     |
---------------------------------------------------------
| coordinator2 | 192.168.220.135 |   OPEN   |     0     |
---------------------------------------------------------
| coordinator3 | 192.168.220.136 |   OPEN   |     0     |
---------------------------------------------------------
=========================================================================================================
|                                            GBASE DATA CLUSTER INFORMATION                                             |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
                                                                        初始化以后多出来的
---------------------------------------------------------------------------------------------------------
|  node1   |             192.168.220.135              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node2   |             192.168.220.134              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node3   |             192.168.220.136              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

查看数据分片的具体分布情况:

[gbase@gbase8a1 gcinstall]$ gcadmin showdistribution
                                        Distribution ID: 1 | State: new | Total segment num: 6
            Primary Segment Node IP                   Segment ID                 Duplicate Segment node IP
========================================================================================================================
|                192.168.220.135                 |         1          |                192.168.220.134                 |
------------------------------------------------------------------------------------------------------------------------
|                192.168.220.134                 |         2          |                192.168.220.136                 |
------------------------------------------------------------------------------------------------------------------------
|                192.168.220.136                 |         3          |                192.168.220.135                 |
------------------------------------------------------------------------------------------------------------------------
|                192.168.220.135                 |         4          |                192.168.220.136                 |
------------------------------------------------------------------------------------------------------------------------
|                192.168.220.134                 |         5          |                192.168.220.135                 |
------------------------------------------------------------------------------------------------------------------------
|                192.168.220.136                 |         6          |                192.168.220.134                 |
========================================================================================================================

4. 修改数据库root用户密码

出于安全考虑,安装后应立即修改默认的root用户密码。

[gbase@gbase8a1 gcinstall]$ gccli -uroot
gbase> alter user root@‘%’ identified by ‘gbase123’;
Query OK, 0 rows affected (Elapsed: 00:00:00.33)
gbase> flush privileges;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

使用新密码登录并验证:

[gbase@gbase8a1 gcinstall]$ gccli -uroot -pgbase123
gbase> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| gbase              |
| gctmpdb            |
| gclusterdb         |
+--------------------+
5 rows in set (Elapsed: 00:00:00.00)

六、集群日常管理维护

掌握集群服务的启停和状态监控是运维的基本功。国产数据库GBASE 8A提供了专用的管理工具。

1. 使用 gcluster_services 管理数据节点服务

这个工具用于管理协调节点(gcluster)和数据节点(gnode)的相关服务。

查看所有服务状态:

[gbase@gbase8a1 gcinstall]$ gcluster_services all info
/gbase8a/gbase/192.168.220.134/gcluster/server/bin/gclusterd is running
/gbase8a/gbase/192.168.220.134/gcluster/server/bin/gcrecover is running
/gbase8a/gbase/192.168.220.134/gnode/server/bin/gbased is running
/gbase8a/gbase/192.168.220.134/gnode/server/bin/gc_sync_server is running

重启所有服务:

[gbase@gbase8a1 gcinstall]$ gcluster_services all restart
Stopping gcrecover :                                       [  OK  ]
Stopping gcluster :                                        [  OK  ]
Stopping gbase :                                           [  OK  ]
Stopping syncserver :                                      [  OK  ]
Starting gbase :                                           [  OK  ]
Starting syncserver :                                      [  OK  ]
Starting gcluster :                                        [  OK  ]
Starting gcrecover :                                       [  OK  ]

停止所有服务:

[gbase@gbase8a1 gcinstall]$ gcluster_services all stop
Stopping gcrecover :                                       [  OK  ]
Stopping gcluster :                                        [  OK  ]
Stopping gbase :                                           [  OK  ]
Stopping syncserver :                                      [  OK  ]

停止后,通过 gcadmin 命令可以看到对应节点的 gclustergnode 状态变为 CLOSE

启动所有服务:

[gbase@gbase8a1 gcinstall]$ gcluster_services all start
Starting gbase :                                           [  OK  ]
Starting syncserver :                                      [  OK  ]
Starting gcluster :                                        [  OK  ]
Starting gcrecover :                                       [  OK  ]

也可以对单个服务进行操作,例如只管理协调节点服务:

gcluster_services gcluster start  #开启
gcluster_services gcluster stop   #停止
gcluster_services gcluster restart #重启

2. 使用 gcware_services 管理元数据服务

gcware是集群的元数据管理服务,其启停独立于数据节点服务。

停止gcware服务:

[gbase@gbase8a1 gcinstall]$ gcware_services gcware stop
Stopping gcware :                                          [  OK  ]

执行后,gcadmin 输出中对应节点的 gcware 状态会显示为 CLOSE

3. 使用 gcadmin 工具监控集群

gcadmin 是最常用的集群状态监控工具,上面已经多次使用。它还可以查看更详细的数据分布信息。

[gbase@gbase8a1 gcinstall]$ gcadmin showdistribution node
                                          Distribution ID: 1 | State: new | Total segment num: 6
====================================================================================================================================
|  nodes   |            192.168.220.135            |            192.168.220.134            |            192.168.220.136            |
------------------------------------------------------------------------------------------------------------------------------------
| primary  |                  1                    |                  2                    |                  3                    |
| segments |                  4                    |                  5                    |                  6                    |
------------------------------------------------------------------------------------------------------------------------------------
|duplicate |                  3                    |                  1                    |                  2                    |
|segments 1|                  5                    |                  6                    |                  4                    |
====================================================================================================================================

七、完整停止集群

如果需要完全停止整个GBASE 8A集群,需要按顺序停止数据节点服务和元数据服务。

[gbase@gbase8a1 gcinstall]$ gcluster_services all stop
Stopping gcrecover :                                       [  OK  ]
Stopping gcluster :                                        [  OK  ]
Stopping gbase :                                           [  OK  ]
Stopping syncserver :                                      [  OK  ]
[gbase@gbase8a1 gcinstall]$ gcware_services  all stop
Stopping GCWareMonit success!
Stopping gcware :                                          [  OK  ]

总结

本文详细介绍了从系统检查、软件安装、集群初始化到日常运维管理的GBASE 8A MPP数据库全生命周期操作。对于希望在企业内部部署国产分析型数据库的团队来说,遵循这些步骤可以搭建一个稳定的基础环境。当然,在生产环境中,还需要结合备份恢复、性能监控、安全加固等更高级的主题。如果你想了解更多关于数据库或分布式系统的实战经验,欢迎到云栈社区数据库/中间件/技术栈板块与其他开发者交流探讨。




上一篇:观察:当AI能一键生成网站后,为什么说“审美”将取代“代码”成为核心竞争力?
下一篇:Cache Fusion架构深度解析:核心组件如何管理数据块状态与位置?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-28 03:50 , Processed in 0.525005 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表