前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GBase 8a MPP Cluster 安装部署过程

GBase 8a MPP Cluster 安装部署过程

原创
作者头像
用户8006012
修改2022-05-18 09:12:31
1.2K0
修改2022-05-18 09:12:31
举报
文章被收录于专栏:DATABASE

环境准备

node

操作系统

IP

内存

gbase版本

gbase1

redhat7.3

192.168.30.101

2G

GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64

gbase2

redhat7.3

192.168.30.102

2G

GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64

gbase3

redhat7.3

192.168.30.103

2G

GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64

安装系统时建议在“软件选择”中勾选“带GUI的服务器”中的“开发工具”选项。

操作系统安装

安装前准备

? 以下操作,三台主机均需执行!截图仅展示主节点。

1、关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld.service
systemctl disable firewalld.service

2、禁用 Selinux

关闭 Selinux 之后需要重启主机才能生效,这里使用 setenforce 0 临时生效。

代码语言:javascript
复制
/usr/sbin/setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

3、创建 gbase 用户

代码语言:javascript
复制
useradd gbase
echo gbase | passwd --stdin gbase

4、创建目录并授权

代码语言:javascript
复制
mkdir -p /opt/gbase
chown gbase:gbase /opt/gbase
chown gbase:gbase /tmp

5、重启主机

代码语言:javascript
复制
reboot

非必须,建议重启三个节点后进行安装。

GBase 8a MPP Cluster 安装

主节点上传安装介质

主节点为 192.168.30.101,因此上传安装介质到主节点 /opt 目录下。

主节点解压安装包

代码语言:javascript
复制
cd /opt
tar xfj GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64.tar.bz2

解压成功后,/opt 目录会多出一个 gcinstall 的目录。

分发配置文件

这里三台主机均需要配置环境变量,因此需要拷贝配置文件 SetSysEnv.py 到三台主机的 /opt 目录下。

代码语言:javascript
复制
cp gcinstall/SetSysEnv.py /opt
scp /opt/gcinstall/SetSysEnv.py 192.168.30.101:/opt
scp /opt/gcinstall/SetSysEnv.py 192.168.30.102:/opt
scp /opt/gcinstall/SetSysEnv.py 192.168.30.103:/opt

? 注意:以上命令只需要在主节点执行分发即可。

配置环境变量

以下命令每个节点均需执行:

代码语言:javascript
复制
cd /opt
python SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup

修改主节点安装配置文件

代码语言:javascript
复制
su - gbase
cd /opt/gcinstall/
vi demo.options

修改内容如下:

代码语言:javascript
复制
installPrefix= /opt/gbase
coordinateHost = 192.168.30.101,192.168.30.102,192.168.30.103
coordinateHostNodeID = 101,102,103
dataHost = 192.168.30.101,192.168.30.102,192.168.30.103
#existCoordinateHost =
#existDataHost =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase'
rootPwd = 'root'
#rootPwdFile = rootPwd.json

注意:IP地址根据实际环境进行修改,dbaPwdgbase 账户的密码,rootPwdroot 账户的密码。

主节点执行安装命令

只需要在主节点执行安装命令即可。

代码语言:javascript
复制
cd /opt/gcinstall
./gcinstall.py --silent=demo.options

中间过程输入两次 y

检查集群状态

gbase 用户下,新打开一个窗口或者手动生效环境变量:

代码语言:javascript
复制
source ~/.bash_profile
gcadmin
代码语言:javascript
复制
[gbase@gbase1 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE

=================================================================
|             GBASE COORDINATOR CLUSTER INFORMATION             |
=================================================================
|   NodeName   |   IpAddress    | gcware | gcluster | DataState |
-----------------------------------------------------------------
| coordinator1 | 192.168.30.101 |  OPEN  |  CLOSE   |     0     |
-----------------------------------------------------------------
| coordinator2 | 192.168.30.102 |  OPEN  |  CLOSE   |     0     |
-----------------------------------------------------------------
| coordinator3 | 192.168.30.103 |  OPEN  |  CLOSE   |     0     |
-----------------------------------------------------------------
===============================================================
|          GBASE CLUSTER FREE DATA NODE INFORMATION           |
===============================================================
| NodeName  |   IpAddress    | gnode | syncserver | DataState |
---------------------------------------------------------------
| FreeNode1 | 192.168.30.101 | CLOSE |    OPEN    |     0     |
---------------------------------------------------------------
| FreeNode2 | 192.168.30.102 | CLOSE |    OPEN    |     0     |
---------------------------------------------------------------
| FreeNode3 | 192.168.30.103 | CLOSE |    OPEN    |     0     |
---------------------------------------------------------------

0 virtual cluster
3 coordinator node
3 free data node

可以看到此时集群状态和节点状态都是 CLOSE,原因是因为因为没有注册 License 授权,属于正常现象。

申请和导入授权

① 导出集群各节点的指纹信息

进入 /opt/gcinstall 目录下,执行导出指纹命令,IP和密码根据实际情况修改:

代码语言:javascript
复制
cd /opt/gcinstall
./gethostsid -n 192.168.30.101,192.168.30.102,192.168.30.103 -u root -p root -f /tmp/finger.txt

[gbase@gbase1 gcinstall]$ ./gethostsid -n 192.168.30.101,192.168.30.102,192.168.30.103 -u root -p root -f /tmp/finger.txt
======================================================================
Successful node nums:  3
======================================================================

② 邮件申请授权

  • 发邮件给:license@gbase.cn;抄送给 shenliping@gbase.cn;
  • 附件为指纹信息文件finger.txt;
  • 邮件标题:GBase 8a MPP Cluster v95 license 申请
  • 邮件正文:
代码语言:javascript
复制
客户名称: 学员公司名称
项目名称: 2022年X月认证培训
申请人: 填写自己姓名
申请原因: 培训学习
有效期: 3个月
操作系统名称及版本: Red Hat Enterprise Linux Server release 7.3 (Maipo)
8a集群版本: GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64.tar.bz2

授权文件(20220517-04.lic)后上传到主节点的 /tmp 下。

③ 主节点导入授权

代码语言:javascript
复制
cd /opt/gcinstall
./License -n 192.168.30.101,192.168.30.102,192.168.30.103 -f /tmp/20220517-04.lic -u gbase -p gbase


[gbase@gbase1 gcinstall]$ ./License -n 192.168.30.101,192.168.30.102,192.168.30.103 -f /tmp/20220517-04.lic -u gbase -p gbase
======================================================================
Successful node nums:   3
======================================================================

④ 检查授权情况

代码语言:javascript
复制
cd /opt/gcinstall
./chkLicense -n 192.168.30.101,192.168.30.102,192.168.30.103 -u gbase -p gbase

[gbase@gbase1 gcinstall]$ ./chkLicense -n 192.168.30.101,192.168.30.102,192.168.30.103 -u gbase -p gbase
======================================================================
192.168.30.101
is_exist:yes
version:trial
expire_time:20220817
is_valid:yes
======================================================================
192.168.30.103
is_exist:yes
version:trial
expire_time:20220817
is_valid:yes
======================================================================
192.168.30.102
is_exist:yes
version:trial
expire_time:20220817
is_valid:yes

可以看到,三个节点均已授权成功。

License 状态说明:

  • is_exist 用于标识 license 文件是否存在: yes 代表存在,no 代表不存在;
  • version 用于标识 license 类型: trial为试用版, business 为商用版;
  • expire_time 用于标识试用版 license 的到期日期,只在检测试用版license 时才会显示;
  • is_valid 用于标识 license 是否有效: yes 代表 license 有效,no代表 license 失效;

? 注意:授权有效期为 3 个月,如果没超出 license 有效期,CPU、内存、网卡等机器配置没变更过,可以重复使用。虚拟机系统重装之后,就需要重新申请。

所有节点启动集群服务

代码语言:javascript
复制
su - gbase
gcluster_services all start
gcadmin


[gbase@gbase1 gcinstall]$ gcluster_services all start
Starting gcware :                                          [  OK  ]
Starting gcluster :                                        [  OK  ]
Starting gcrecover :                                       [  OK  ]
Starting gbase :                                           [  OK  ]
Starting syncserver :                                      [  OK  ]
Starting GCMonit success!
代码语言:javascript
复制
[gbase@gbase1 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE

=================================================================
|             GBASE COORDINATOR CLUSTER INFORMATION             |
=================================================================
|   NodeName   |   IpAddress    | gcware | gcluster | DataState |
-----------------------------------------------------------------
| coordinator1 | 192.168.30.101 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
| coordinator2 | 192.168.30.102 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
| coordinator3 | 192.168.30.103 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
===============================================================
|          GBASE CLUSTER FREE DATA NODE INFORMATION           |
===============================================================
| NodeName  |   IpAddress    | gnode | syncserver | DataState |
---------------------------------------------------------------
| FreeNode1 | 192.168.30.101 | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------
| FreeNode2 | 192.168.30.102 | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------
| FreeNode3 | 192.168.30.103 | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------

0 virtual cluster
3 coordinator node
3 free data node

确认集群状态均已 OPEN ,运行正常。

主节点设置分片信息

代码语言:javascript
复制
gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1
代码语言:javascript
复制
[gbase@gbase1 gcinstall]$ gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1
gcadmin generate distribution ...

NOTE: node [192.168.30.101] is coordinator node, it shall be data node too
NOTE: node [192.168.30.102] is coordinator node, it shall be data node too
NOTE: node [192.168.30.103] is coordinator node, it shall be data node too
gcadmin generate distribution successful

执行完之后,在 /opt/gcinstall 目录下会生成 gcChangeInfo.xml 文件:

代码语言:javascript
复制
[gbase@gbase1 gcinstall]$ cat gcChangeInfo.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
 <rack>
  <node ip="192.168.30.101"/>
  <node ip="192.168.30.102"/>
  <node ip="192.168.30.103"/>
 </rack>
</servers>

再次检查集群状态:

代码语言:javascript
复制
gcadmin

[gbase@gbase1 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

=================================================================
|             GBASE COORDINATOR CLUSTER INFORMATION             |
=================================================================
|   NodeName   |   IpAddress    | gcware | gcluster | DataState |
-----------------------------------------------------------------
| coordinator1 | 192.168.30.101 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
| coordinator2 | 192.168.30.102 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
| coordinator3 | 192.168.30.103 |  OPEN  |   OPEN   |     0     |
-----------------------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |              192.168.30.101              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node2   |              192.168.30.102              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
|  node3   |              192.168.30.103              |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

也可以执行如下命令查看发布信息

代码语言:javascript
复制
gcadmin showdistribution node

[gbase@gbase1 gcinstall]$ gcadmin showdistribution node
                                      Distribution ID: 1 | State: new | Total segment num: 6

====================================================================================================================================
|  nodes   |            192.168.30.101             |            192.168.30.102             |            192.168.30.103             |
------------------------------------------------------------------------------------------------------------------------------------
| primary  |                  1                    |                  2                    |                  3                    |
| segments |                  4                    |                  5                    |                  6                    |
------------------------------------------------------------------------------------------------------------------------------------
|duplicate |                  3                    |                  1                    |                  2                    |
|segments 1|                  5                    |                  6                    |                  4                    |
====================================================================================================================================

数据库初始化

在管理节点上执行如下命令(数据库root密码默认为空

代码语言:javascript
复制
gccli -u root -p
密码为空,直接回车
initnodedatamap;

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

GBase client 9.5.2.39.126761. Copyright (c) 2004-2022, GBase.  All Rights Reserved.

gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:00.64)

创建库表

代码语言:javascript
复制
create database gtest8a;
show database;
use gtest8a;
create table t1(id int ,name varchar(20));
show tables;
insert into t1 values(1,'lucifer');
select * from t1;
代码语言:javascript
复制
gbase> create database gtest8a;
Query OK, 1 row affected (Elapsed: 00:00:00.02)

gbase> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| gbase              |
| gctmpdb            |
| gclusterdb         |
| gtest8a            |
+--------------------+
6 rows in set (Elapsed: 00:00:00.00)

gbase> use gtest8a;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> create table t1(id int ,name varchar(20));
Query OK, 0 rows affected (Elapsed: 00:00:00.13)

gbase> show tables;
+-------------------+
| Tables_in_gtest8a |
+-------------------+
| t1                |
+-------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> insert into t1 values(1,'kk');
Query OK, 1 row affected (Elapsed: 00:00:00.09)

gbase> insert into t1 values(2,'mm');
Query OK, 1 row affected (Elapsed: 00:00:00.06)

gbase> select * from t1;
+------+------+
| id   | name |
+------+------+
|    1 | kk   |
|    2 | mm   |
+------+------+
2 rows in set (Elapsed: 00:00:00.03)

gbase>

集群卸载

关闭所有集群服务

3台主机均需执行关闭命令:

代码语言:javascript
复制
gcluster_services all stop

主节点执行卸载命令

代码语言:javascript
复制
cd /opt/gcinstall
./unInstall.py --silent=demo.options

代码语言:javascript
复制
常见问题
Q01. 集群安装成功后,在管理节点执行 gcadmin,系统提示找不到命令

原因:环境变量没有生效
解决方法:切换操作系统账户
$ exit
$ su gbase
Q02. 在管理节点执行 gcadmin,系统提示

Could not initialize CRM instance error: [122]->[can not connect to any server]
1
原因:所有节点的集群服务都没有启动
解决方法:
[173]$ gcluster_services all start
[174]$ gcluster_services all start
[175]$ gcluster_services all start

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • 操作系统安装
      • 安装前准备
        • 1、关闭防火墙
        • 2、禁用 Selinux
        • 3、创建 gbase 用户
        • 4、创建目录并授权
        • 5、重启主机
      • 主节点上传安装介质
        • 主节点解压安装包
          • 分发配置文件
            • 配置环境变量
              • 修改主节点安装配置文件
                • 主节点执行安装命令
                  • 检查集群状态
                    • 申请和导入授权
                      • ① 导出集群各节点的指纹信息
                      • ② 邮件申请授权
                      • ③ 主节点导入授权
                      • ④ 检查授权情况
                    • 所有节点启动集群服务
                      • 主节点设置分片信息
                        • 数据库初始化
                          • 创建库表
                            • 集群卸载
                              • 关闭所有集群服务
                                • 主节点执行卸载命令
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档