Gbase【安装篇】02:RedHat7.9【三节点】安装GBase 8a MPP Cluster数据库
一、安装前准备
1.1 环境信息
| 项目 | 信息 |
|---|---|
| 操作系统 | Red Hat Enterprise Linux Server 7.9 (Maipo) |
| 数据库版本 | GBase 8a MPP Cluster 9.5.3.28.12 |
| 安装包 | GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2 |
| 安装用户 | gbase |
| 安装路径 | /opt |
| 数据端口 | 5258 |
| 超级用户 | root(默认无密码) |
| 节点 IP | 192.168.255.131 / 192.168.255.132 / 192.168.255.133 |
| root 密码 | maxs.PDG~2022 |
| gbase 密码 | gbase |
| 部署模式 | 三节点(Coordinator + Data + Gcware 同机部署) |
| 以下操作仅在 131 节点以 root 用户执行。 |
1.2 安装包下载
官网下载
https://www.gbase.cn/download/gbase-8a?category=INSTALL_PACKAGE
网盘下载
链接: https://pan.baidu.com/s/1Y5VCdgZ5legvzTOUAibFJg?pwd=r4ad 提取码: r4ad1.3 上传安装包
将安装包上传至 131 节点的/root目录:
[root@redhat-7-9 ~]# ll-rw-r--r--.1root root1544729228月516:36 GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz21.4 验证网络互通
ping-c2192.168.255.132&&ping-c2192.168.255.1331.5 解压安装包
tarxjf /root/GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2-C/opt/解压后生成gcinstall目录:
[root@redhat-7-9 ~]# ls /opt/gcinstall1.6 创建 gbase 用户(131 节点)
useraddgbase&&echo"gbase:gbase"|chpasswd1.7 分发安装包到其他节点
scp-r/opt/gcinstall192.168.255.132:/opt/scp-r/opt/gcinstall192.168.255.133:/opt/scp 连接时输入 root 密码
maxs.PDG~2022,首次连接需输入yes确认。
1.8 在三台节点创建用户并执行环境配置
在 131 上通过 SSH 远程执行 132、133,同时本机也执行。
# 132 节点sshroot@192.168.255.132"useradd gbase && echo 'gbase:gbase' | chpasswd && chown -R gbase:gbase /opt/gcinstall /opt && python /opt/gcinstall/SetSysEnv.py --dbaUser=gbase --installPrefix=/opt"# 133 节点sshroot@192.168.255.133"useradd gbase && echo 'gbase:gbase' | chpasswd && chown -R gbase:gbase /opt/gcinstall /opt && python /opt/gcinstall/SetSysEnv.py --dbaUser=gbase --installPrefix=/opt"# 131 本机chown-Rgbase:gbase /opt/gcinstall /opt&&python /opt/gcinstall/SetSysEnv.py--dbaUser=gbase--installPrefix=/opt
SetSysEnv.py脚本会自动配置内核参数、创建必要目录、设置系统环境等。
二、安装集群
2.1 编辑安装配置文件
切换到 gbase 用户,编辑demo.options:
su- gbasevi/opt/gcinstall/demo.options三节点配置内容:
installPrefix = /opt coordinateHost = 192.168.255.131,192.168.255.132,192.168.255.133 coordinateHostNodeID = 131,132,133 dataHost = 192.168.255.131,192.168.255.132,192.168.255.133 gcwareHost = 192.168.255.131,192.168.255.132,192.168.255.133 gcwareHostNodeID = 131,132,133 dbaUser = gbase dbaGroup = gbase dbaPwd = 'gbase' rootPwd = 'maxs.PDG~2022' #rootPwdFile = rootPwd.json #characterSet = utf8 #sshPort = 22参数说明:
| 参数 | 说明 |
|---|---|
| installPrefix | 安装目录 |
| coordinateHost | 调度节点(Coordinator)IP 列表,逗号分隔 |
| coordinateHostNodeID | 各 Coordinator 节点 ID,与 IP 一一对应 |
| dataHost | 数据节点 IP 列表 |
| gcwareHost | 集群管理节点 IP 列表 |
| gcwareHostNodeID | 各 Gcware 节点 ID,与 IP 一一对应 |
| dbaUser / dbaGroup | DBA 操作系统用户和组 |
| dbaPwd | DBA 用户密码,含特殊字符需单引号括起 |
| rootPwd | root 用户密码,含特殊字符需单引号括起 |
2.2 执行安装脚本
在 131 节点上以 gbase 用户执行:
cd/opt/gcinstall&&python gcinstall.py--silent=demo.options2.3 安装交互步骤
| 步骤 | 提示 | 操作 |
|---|---|---|
| 1. 许可协议 | Do you accept the above licence agreement | 输入Y |
| 2. 资源管理 | Cgconfig service is not exist...continue | 输入Y |
| 3. 确认节点 | Are you sure to install GCluster on these nodes | 输入Y |
| 4. 安装进度 | 自动分发安装到 3 个节点 | 等待完成 |
2.4 安装完成
192.168.255.132 install gcware and cluster on host 192.168.255.132 successfully. 192.168.255.133 install gcware and cluster on host 192.168.255.133 successfully. 192.168.255.131 install gcware and cluster on host 192.168.255.131 successfully. Starting all gcluster nodes ... adding new datanodes to gcware ... InstallCluster Successfully安装完成后各节点组件目录:
| 组件 | 安装路径 | 说明 |
|---|---|---|
| GCluster | /opt/gcluster | 调度节点程序 |
| GNode | /opt/gnode | 数据节点程序 |
| Gcware | /opt/gcware | 集群管理程序 |
三、初始配置
安装完成后,Data 节点处于 FreeNode 状态,需要创建 distribution 并初始化才能使用。
3.1 查看 gcChangeInfo.xml
安装包已根据demo.options自动生成,确认三个节点 IP 正确:
cat/opt/gcinstall/gcChangeInfo.xml输出:
<?xml version="1.0" encoding="utf-8"?><servers><rack><nodeip="192.168.255.132"/></rack><rack><nodeip="192.168.255.131"/></rack><rack><nodeip="192.168.255.133"/></rack></servers>3.2 创建 distribution
三节点部署,设置每节点 1 个主分片、1 个备份分片:
source~/.bash_profile gcadmin distribution /opt/gcinstall/gcChangeInfo.xml p1d1参数说明:
p 1:每个节点 1 个主分片d 1:每个分片 1 个备份(数据分布在另外节点)
输出:
NOTE: node [192.168.255.132] is coordinator node, it shall be data node too NOTE: node [192.168.255.131] is coordinator node, it shall be data node too NOTE: node [192.168.255.133] is coordinator node, it shall be data node too gcadmin generate distribution successful3.3 初始化集群
gccli-uroot进入客户端后执行:
initnodedatamap;
输出:
Query OK, 1 row affected (Elapsed: 00:00:02.05)此命令只需执行一次,重复执行会报
nodedatamap is already initialized。
四、验证集群
4.1 查看集群状态
source~/.bash_profile&&gcadmin输出:
CLUSTER STATE: ACTIVE VIRTUAL CLUSTER MODE: NORMAL ======================================= | GBASE GCWARE CLUSTER INFORMATION | ======================================= | NodeName | IpAddress | gcware | --------------------------------------- | gcware1 | 192.168.255.131 | OPEN | --------------------------------------- | gcware2 | 192.168.255.132 | OPEN | --------------------------------------- | gcware3 | 192.168.255.133 | OPEN | --------------------------------------- ========================================================= | GBASE COORDINATOR CLUSTER INFORMATION | ========================================================= | NodeName | IpAddress | gcluster | DataState | --------------------------------------------------------- | coordinator1 | 192.168.255.131 | OPEN | 0 | --------------------------------------------------------- | coordinator2 | 192.168.255.132 | OPEN | 0 | --------------------------------------------------------- | coordinator3 | 192.168.255.133 | OPEN | 0 | --------------------------------------------------------- ================================================================== | GBASE DATA CLUSTER INFORMATION | ================================================================== | NodeName | IpAddress | DistributionId | gnode | DataState | ------------------------------------------------------------------ | node1 | 192.168.255.132 | 1 | OPEN | 0 | ------------------------------------------------------------------ | node2 | 192.168.255.131 | 1 | OPEN | 0 | ------------------------------------------------------------------ | node3 | 192.168.255.133 | 1 | OPEN | 0 | ------------------------------------------------------------------4.2 查看数据分布
gcadmin showdistribution4.3 连接测试
gccli-uroot-- 查看版本SELECTversion();-- 创建数据库CREATEDATABASEtest;-- 查看数据库列表SHOWDATABASES;-- 切换数据库并建表测试USEtest;CREATETABLEt1(idINT,nameVARCHAR(50),create_timeDATETIME);INSERTINTOt1VALUES(1,'hello',NOW());INSERTINTOt1VALUES(2,'gbase',NOW());SELECT*FROMt1;五、常用命令
# 查看集群状态gcadmin# 查看 distribution 信息gcadmin showdistribution# 连接数据库(root 用户默认无密码)gccli-uroot# 连接数据库(指定用户和密码)gccli -u用户名 -p密码# 查看集群节点详情gcadmin showclustergccli 常用 SQL
-- 查看版本SELECTversion();-- 查看所有数据库SHOWDATABASES;-- 切换数据库USEdatabase_name;-- 查看所有表SHOWTABLES;-- 查看表结构DESCtable_name;-- 查看建表语句SHOWCREATETABLEtable_name;-- 查看当前连接SHOWPROCESSLIST;-- 查看服务器状态SHOWSTATUS;六、关键文件和目录
| 文件/目录 | 路径 | 说明 |
|---|---|---|
| 安装配置 | /opt/gcinstall/demo.options | 集群安装参数配置 |
| 分布配置 | /opt/gcinstall/gcChangeInfo.xml | 数据分布配置文件 |
| GCluster 目录 | /opt/gcluster | 调度节点程序 |
| GNode 目录 | /opt/gnode | 数据节点程序 |
| Gcware 目录 | /opt/gcware | 集群管理程序 |
| 环境变量 | ~/.bash_profile | 安装脚本自动写入 |
| GCluster 日志 | /opt/gcluster/log | 调度节点运行日志 |
| GNode 日志 | /opt/gnode/log | 数据节点运行日志 |
七、卸载
在 131 节点上以 gbase 用户执行:
su- gbasecd/opt/gcinstall# 卸载集群(会在三个节点上同步卸载)python gcinstall.py--uninstall=demo.options清理残留目录(每台节点均需以 root 执行):
rm-rf/opt/gcluster /opt/gnode /opt/gcware /opt/gcinstall八、注意事项
- 必须使用 DBA 用户安装和运行:集群安装和管理必须使用
dbaUser(如 gbase),不能使用 root 启动数据库服务。 - 所有节点必须创建同名 DBA 用户:gbase 用户需要在每台节点上存在且密码一致。
- SetSysEnv.py 必须在每个节点执行:使用 root 用户在所有节点执行该脚本,配置系统环境。
- 必须先创建 distribution 和 initnodedatamap:安装完成后 FreeNode 不能直接使用,否则 SQL 操作会报
nodedatamap is not initialized。 - root 用户默认无密码:首次登录后建议设置密码:
SET PASSWORD FOR root = PASSWORD('新密码'); - Gcware 节点数必须为奇数:三节点部署可保证集群选举正常(1、3、5 等)。
- 资源管理组件(cgroup):如未安装 cgroup 相关包,安装时会提示,输入 Y 跳过不影响基本使用。
- 备份分片:三节点
d 1表示每个主分片有 1 个备份,数据分布在 3 个节点上,任一台故障不影响数据完整性。