Gbase8a 数据库安装

一、集群节点环境设计

IP

角色

OS

hostID

192.168.18.11

管理、数据、

主节点

RedHat7.7

gbaseman

192.168.18.13

管理、数据节点

RedHat7.7

gbasedata1

192.168.18.14

管理、数据节点

RedHat7.7

gbasedata2

操作系统要求:redhat 7.x(或者centos 7.x)。安装系统时建议在“软件选择”中勾选“带GUI的服务器”中的“开发工具”选项。

硬件配置:内存2G以上(推荐4G),硬盘 20G以上,固定IP地址。

网络要求:各节点IP是同一网段,并互相能连通;开启 SSH 服务;关闭防火墙、关闭seLinux服务。

安装要求:coordinator节点不能超过64个,建议为单数,coordiantor节点必须部署在同一个网段,data节点无此要求

建议创建lvm逻辑卷mount到/opt目录下, /opt目录为Gbase 8a数据库的默认安装目录,数据库的所有数据存放在该目录下,包括元数据和用户数据,设置逻辑卷可以按需扩展磁盘容量

建议使用raid技术,尽管Gbase 8a数据库提供高可用机制,但是节点的故障和数据恢复过程会对数据库的整体性能产生一定的影响,所以建议使用raid技术,使单节点的磁盘问题在节点内部解决,不影响集群的工作效率。

建议设置各节点时间同步,时间对于各节点追踪某事件发生的先后顺序至关重要,同步好时钟便于故障排除和问题溯源

集群组件默认端口:

二、安装前准备工作

节点联通测试:

 在 gbaseman窗口分别执行

 # ssh root@192.168.18.13

 # ssh root@192.167.18.14

 若能成功跳转,则说明节点互通。

 检查所有节点防火墙是否关闭:

 # systemctl status firewalld.service

 如果没关闭,则执行下面命令永久关闭

 # systemctl disable firewalld

 

检查所有节点 selinux 服务是否禁用:

 执行

[root@gbaseman ~]# sestatus

SELinux status:                 enabled

SELinuxfs mount:                /sys/fs/selinux

SELinux root directory:         /etc/selinux

Loaded policy name:             targeted

Current mode:                   enforcing

Mode from config file:          disabled

Policy MLS status:              enabled

Policy deny_unknown status:     allowed

Max kernel policy version:      31

 系统提示以下信息说明 selinux 已被禁用

 SELinux status: disabled

    

否则修改配置文件/etc/selinux/config,将SELINUX参数设置为 disabled,即 SELINUX=disabled 保存退出后,需要重新启动才能生效。

 

 

准备安装包:

 请将下载的安装包上传到 主节点/opt 下解压。

解压后,会在解压目录下生产成gcinstall目录

 tar -xvf GBase8a_MPP_Cluster-NoLicense-9.5.3.26.5-redhat7-x86_64.tar.bz2

三、集群的安装

配置安装环境

1、在集群所有节点上创建DBA用户

[root@gbaseman opt]# useradd gbase

[root@gbaseman opt]# echo "gbase@123" | passwd --stdin gbase

Changing password for user gbase.

passwd: all authentication tokens updated successfully.

本文,gbase 账户密码设置为 gbase@123

 

2、在集群所有节点上创建安装目录并授权

[root@gbaseman opt]# mkdir -p /opt/gbase

[root@gbaseman opt]# chown gbase:gbase /opt/gbase

[root@gbaseman opt]# chown gbase:gbase /tmp

3、安装包解压缩 (主节点)

[root@gbaseman opt]# tar -xf GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-

[root@gbaseman opt]# ls

GBase8a_MPP_Cluster-License-9.5.2.39-redhat7.3-x86_64.tar.bz2  gccli-9.5.2.3

[root@gbaseman opt]# tar -xjvf gccli-9.5.2.39-redhat7.3-x86_64.tar.bz2

gccli_install/

gccli_install/gccli_install.sh

gccli_install/gccli_standalone.tar.bz2

四、安装依赖

$ cat /opt/gcinstall/dependRpms  

在安装脚本执行过程中,如果系统提示缺少rpm依赖包,需要按照以上rpm列表名,在各节点安装缺少的包。                                                                

yum install -y libstdc++ cyrus-sasl-lib zlib nspr libidn libuuid ncurses-libs nss-util openldap libgcc nss glibc nss-softokn-freebl python libcgroup libcgroup-tools

配置cgconfig:8a集群的资源管控功能是基于系统的cgroup构建的,如果需要资源管控功能则需要对应服务,如无需资源管控功能可忽略该项服务。

 cgcongif服务未启动

 [root@gbasedata1 ~]# systemctl enable cgconfig.service

Created symlink from /etc/systemd/system/sysinit.target.wants/cgconfig.service to /usr/lib/systemd/system/cgconfig.service.

[root@gbasedata1 ~]# cgclear - unload the cgroup filesystem

[root@gbasedata1 ~]# systemctl start cgconfig

[root@gbasedata1 ~]# systemctl status cgconfig

● cgconfig.service - Control Group configuration service

   Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; enabled; vendor preset: disabled)

   Active: active (exited) since Sun 2022-11-13 22:58:09 EST; 4s ago

  Process: 1718 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -L /etc/cgconfig.d -s 1664 (code=exited, status=0/SUCCESS)

 Main PID: 1718 (code=exited, status=0/SUCCESS)

Nov 13 22:58:09 gbasedata1 systemd[1]: Starting Control Group configuration service...

Nov 13 22:58:09 gbasedata1 systemd[1]: Started Control Group configuration service.

5、设置环境变量

复制主节点的环境设置脚本(SetSysEnv.py)至从节点

[root@gbasedata1 /]# scp root@192.168.18.11:/opt/gcinstall/SetSysEnv.py  /opt/

The authenticity of host '192.168.18.11 (192.168.18.11)' can't be established.

ECDSA key fingerprint is SHA256:Lfp7QSOP9WmkV3iyUNmzbk0bPPFqs5al7sduiiQsGmU.

ECDSA key fingerprint is MD5:34:27:88:2d:02:45:c9:99:fc:34:b3:1f:b8:90:91:5d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.18.11' (ECDSA) to the list of known hosts.

root@192.168.18.11's password:

SetSysEnv.py                             100%   27KB  19.0MB/s   00:00

运行SetSysEnv.py脚本,配置安装环境(全部节点)

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

--dbaUser:即指定集群的安装用户,必须与demo.options文件中的dbaUser一致

--installPrefix:用户指定的数据库安装目录,必须为demo.options文件中的installPrefix设置的目录

--cgroup:使用资源管理功能时,主要用于修改资源配置文件,可选参数,默认不配置。

 如果遇到 IPV6 protocol not supported,please turn it on…的错误提示, 请手动开启 IPV6,执行:

  # echo "net.ipv6.conf.all.disable_ipv6 = 0" >> /etc/sysctl.conf

  # echo "net.ipv6.conf.default.disable_ipv6 = 0" >> /etc/sysctl.conf

  # sysctl -p # 立即生效

  

  注:日志记录在/tmp/SetSysEnv.log中

 数据库安装(由dba用户在主节点执行)

6、修改主节点的安装配置文件(demo.options)

切换到 gbase 用户:

[root@gbaseman tmp]# su - gbase

Last login: Wed Nov  9 02:22:59 EST 2022 on pts/0

[gbase@gbaseman ~]$ cd /opt/gcinstall/

[gbase@gbaseman gcinstall]$ vim demo.options

installPrefix= /opt/gbase

coordinateHost = 192.168.18.11,192.168.18.13,192.168.18.14

coordinateHostNodeID = 11,13,14

dataHost = 192.168.18.11,192.168.18.13,192.168.18.14

#existCoordinateHost =

#existDataHost =

#existGcwareHost=

gcwareHost = 192.168.18.11,192.168.18.13,192.168.18.14

gcwareHostNodeID = 11,13,14

dbaUser = gbase

dbaGroup = gbase

dbaPwd = 'gbase@123'

rootPwd = 'gbase@123'

#dbRootPwd = ''

#rootPwdFile = rootPwd.json

#characterSet = utf8

#sshPort = 22

demo.optinons安装参数说明如下:

installPrefix:指定安装目录

coordinateHost:所有 coordinator 节点 IP 列表, IP 地址之间用“,”分隔。

coordinateHostNodeID: 支持对 IPV6 地址的输入,当集群节点为 IPV4 地址,则该参数无效,可不用设置;当集群节点为 IPV6 地址,则用户必须手动设置该参数,该参数为若干个正整数,需要与 coordinateHost 中的 IP 一一对应,用逗号隔开。例如: coordinateHostNodeID = 1,2,3。

dataHost: 有 data 节点 IP 列表, IP 地址之间用“,”分隔。

existCoordinateHost: 有已存在的 coordinator 节点 IP 列表, IP 地址之间用“,”分隔。

existDataHost: 所有已存在的 data 节点 IP 列表, IP 地址之间用“,”分隔。

loginUser: 通过该用户 ssh 集群各节点,再 su 切换到 root 用户执行命令,该参数必须使用。默认用户为 root。该用户所属用户组须也是 loginUser。

loginUserPwd: 表示用户 loginUser 在集群节点密码相同的方式;

loginUserPwdFile:表示支持户 loginUser 在集群节点不同密码的方式。二者不能兼用,否则报错,可以根据密码的异同选择参数使用,必使用其一。默认密码均为 111111。

dbaUser:群运行时使用的操作系统用户。 配置 dbaUser与 installPrefix执行目录相同。

dbaGroup: 集群运行时使用的操作系用户所属的组名。

dbaPwd: 群运行时使用的操作系统用户密码。

rootPwdFile: 该参数支持 root 用户在多节点不同密码方式,与参数

rootPwd 不能同时使用,否则报错。默密码 111111。

dbRootPwd:数据库 root 用户码。 安装集群时无需设置, 仅在集群升级、扩容、 节点替换时使用生效。

mcastAddr:组播地址,缺省值为 226.94.1.39,组播方式会引起网络风暴,因此不建议使用此方式,如果将 mcastAddr 参数删除,则会照 UDPU 方式进行安装,我们建议用户按此方式安装。

mcastPort:组播端口,缺省值为 5493,如果按照 UDPU 方式安装,则此参数无效。

rootPwd: 安装集群节点机器中 linux 操作系统中 root 用户的统一的密码。

characterSet:系统支持指定字符安装,默认值为 utf8,,取值范围[utf8,gbk,uft8mb4,gb18030]。同时需保证,客户端置的字符集,以及操作系统设置的字符集,必须与其保持统一。

sshPort: 用于指定安装集群的机器的 ssh port,要求所有节点 ssh port一致。 默认不在 demo.options 中显示。默认值为 22。

Json文件格式如下

$ cat rootPwd.json

{

    "USER":"root",

    "HOSTPASSWD":[

        {

            "IP":"192.168.18.11",

            "PASSWORD":"gbase@123"

        },

        {

            "IP":"192.168.18.13",

            "PASSWORD":"gbase@123"

        },

        {

            "IP":"192.168.18.14",

            "PASSWORD":"gbase@123"

        }

    ]

}

7、执行安装脚本

 ./gcinstall.py --silent=demo.options

 

 执行过程中:Cgconfig service is not exist on host ['192.168.18.13', '192.168.18.14'], resource manangement can not be used, continue ([Y,y]/[N,n])?

 备注:在安装过程中,先进行环境检查,可能会有错,列出缺少rpm依赖包名称,说明操作系统没有安装全必须的rpm包,需要根据rpm包的名称去各节点逐个安装。

 8a需要的必备依赖包列表,请查看安装目录gcinstall下的 dependRpms 文件

参数说明:1、 gcinstall.py 命令可选参数:

passwordInputMode参数含义:指定密码获取的方式,通过不同的参数实现不同的获取方式。若指定该参数,则 demo.options 中的密码不必再修改。默认值: file

取值范围: [file,pwdsame,pwddiff]

1) file : 表示从文件或命令行参数获取, 和原有的方式一致,该方式下,文件中的密码是明文的;

2) pwdsame:表示从终端由用户输入密码,并且所有节点的密码一致情况下使用该参数,对于不同用户密码只输入一次,适用于所有节点使用同一个密码;

3) pwddiff:表示从终端由用户输入密码,并且节点间的密码不一致情况下使用该参数,对于不同用户密码每个节点分别输入一次,适用于不同节点使用不同的密码。

 [173]$ cat dependRpms

  注意:如果操作系统没cgroup(资源管理)组件,会出现如下警告,输入 Y 回车即可。  

7、集群状态查看

安装结束之后,查看集群的状态。

 $ gcadmin

 因为没有注册授权,gcluster 和 gnode 服务是 close 状态属于正常现象。

8、申请授权

① 导出集群各节点的指纹信息:需要使用系统用户名密码,root和gbase都可以

[gbase@gbaseman gcinstall]$  ./gethostsid -n 192.168.18.11,192.168.18.13,192.168.18.14 -u root -p gbase@123 -f /tmp/finger.txt

======================================================================

Successful node nums:  3

======================================================================

 

 或

 

  ./gethostsid --hosts=demo.hosts -u root -p gbase@123 -f /tmp/finger.txt

  demo.hosts文件中包含需要采集的ip列表,如:Hosts = 192.168.18.11,192.168.18.13,192.168.18.14

9、导入和检查授权

① 导入授权:

 ./License -n 192.168.18.11,192.168.18.13,192.168.18.14 -f /tmp/20210608.lic -u gbase -p gbase@123

② 检查授权导入情况:

[root@gbaseman gcinstall]# ./chkLicense --hosts=demo.hosts -u gbase -p gbase@123

192.168.18.14

is_exist:no

192.168.18.13

is_exist:no

192.168.18.11

is_exist:no

License 状态说明:

is_exist 用于标识 license 文件是否存在: yes 代表存在,no 代表不存在;

version 用于标识 license 类型: trial 为试用版, business 为商用版;

expire_time 用于标识试用版 license 的到期日期,只在检测试用版license 时才会显示;

is_valid 用于标识 license 是否有效: yes 代表 license 有效,no代表 license 失效;

  若发现授权失效(is_valid is no),可能由于集群节点硬件变更,请重新生成指纹文件并发邮件申请授权。

10、在集群所有节点上启动全部集群服务

# su - gbase

 $ gcluster_services all start

 查看集群状态:

 $ gcadmin

 CLUSTER STATE: ACTIVE

 VIRTUAL CLUSTER MODE: NORMAL

设置分片信息(创建发布)coordinator节点执行

[root@gbaseman gcinstall]# gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1

gcinstall 下生成 gcChangeInfo.xml 文件

gcChangeInfo.xml:是描述集群内节点和rack(机柜)对应关系的文件,默认存放于gcinstall目录

p:每个数据节点存放的主分片的数量,注:pattern 1 模式下,p的取值范围:1<=p<rack内节点数。

d:每个主分片的备份数量,取值为0,1,2.默认值为1

pattern:描述分片备份规则的模板,1为rack高可用,2为节点高可用。默认为1.

 修改 gcChangeInfo.xml,将同一服务器的 ip 放到一个机架里。

$ vi gcChangeInfo.xml

<?xml version="1.0" encoding="utf-8"?>

<servers>

    <rack>

        <node ip="192.168.18.13"/>

    </rack>

    <rack>

        <node ip="192.168.18.11"/>

    </rack>

    <rack>

        <node ip="192.168.18.14"/>

    </rack>

</servers>

兼容模式分片:

[gbase@gbaseman gcinstall]$ gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 2

gcadmin generate distribution ...

NOTE: node [192.168.18.13] is coordinator node, it shall be data node too

NOTE: node [192.168.18.11] is coordinator node, it shall be data node too

NOTE: node [192.168.18.14] is coordinator node, it shall be data node too

gcadmin generate distribution successful

再次查看集群状态

gcadmin

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

gcadmin showdistribution node

12、数据库初始化(coordinator节点)

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

连接数据库

gccli -u root -p

初始化操作

gbase> use vc vc1;(多vc下执行))

gbase> initnodedatamap;

注:初始化命令只需对的distribution表执行一次即可。

13、创建库表

初始化成功,则整个8a集群安装完毕,可以创建第一个库和表。

 gbase> create database test;

 gbase>show databases;

 gbase>use test;

 gbase>create table t(id int ,name varchar(20));

 gbase>show tables;

四、集群的卸载

注意:卸载后,集群的所有数据都会丢失

1.停止所有节点的所有集群服务

查看服务状态:

[gbase@gbaseman ~]$ gcmonit  --status

+--------------------------------------------------------------------------------+

|SEG_NAME                 PROG_NAME                STATUS              PID       |

+--------------------------------------------------------------------------------+

|gcluster                 gclusterd                Stoped                        |

|gcware                   gcware                   Running             4191      |

|gcrecover                gcrecover                Running             4332      |

|gcmmonit                 gcmmonit                 Running             4377      |

+--------------------------------------------------------------------------------+

停止服务:

gcluster_services all stop

2.停止进程

[gbase@gbasedata2 ~]$ ps -ef|grep gc

gbase      7588      1  0 01:12 ?        00:00:07 /opt/gbase/192.168.18.14/gcware/sbin/gcware

gbase      7595      1  0 01:12 ?        00:00:01 /opt/gbase/192.168.18.14/gcware/sbin/gcware_monit --start

gbase      7597      1  0 01:12 ?        00:00:01 /opt/gbase/192.168.18.14/gcware/sbin/gcware_mmonit --start

gbase      9304   9237  0 01:29 pts/0    00:00:00 grep --color=auto gc

[gbase@gbasedata2 ~]$ kill -9 7588  7595 7597

3.验证卸载配置文件demo.options,确保配置文件信息正确

在主节点上执行卸载命令

cd /opt/gcinstall

./unInstall.py --silent=demo.options

         

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值