操作系统要求: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技术,使单节点的磁盘问题在节点内部解决,不影响集群的工作效率。
建议设置各节点时间同步,时间对于各节点追踪某事件发生的先后顺序至关重要,同步好时钟便于故障排除和问题溯源
# ssh root@192.167.18.14
# systemctl status firewalld.service
[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 保存退出后,需要重新启动才能生效。
tar -xvf GBase8a_MPP_Cluster-NoLicense-9.5.3.26.5-redhat7-x86_64.tar.bz2
[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
[root@gbaseman opt]# mkdir -p /opt/gbase
[root@gbaseman opt]# chown gbase:gbase /opt/gbase
[root@gbaseman opt]# chown gbase:gbase /tmp
[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构建的,如果需要资源管控功能则需要对应服务,如无需资源管控功能可忽略该项服务。
[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.
复制主节点的环境设置脚本(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
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中
[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
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。
{
"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"
}
]
}
./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 文件
passwordInputMode参数含义:指定密码获取的方式,通过不同的参数实现不同的获取方式。若指定该参数,则 demo.options 中的密码不必再修改。默认值: file
取值范围: [file,pwdsame,pwddiff]
1) file : 表示从文件或命令行参数获取, 和原有的方式一致,该方式下,文件中的密码是明文的;
2) pwdsame:表示从终端由用户输入密码,并且所有节点的密码一致情况下使用该参数,对于不同用户密码只输入一次,适用于所有节点使用同一个密码;
3) pwddiff:表示从终端由用户输入密码,并且节点间的密码不一致情况下使用该参数,对于不同用户密码每个节点分别输入一次,适用于不同节点使用不同的密码。
注意:如果操作系统没cgroup(资源管理)组件,会出现如下警告,输入 Y 回车即可。
因为没有注册授权,gcluster 和 gnode 服务是 close 状态属于正常现象。
① 导出集群各节点的指纹信息:需要使用系统用户名密码,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
./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
is_exist 用于标识 license 文件是否存在: yes 代表存在,no 代表不存在;
version 用于标识 license 类型: trial 为试用版, business 为商用版;
expire_time 用于标识试用版 license 的到期日期,只在检测试用版license 时才会显示;
is_valid 用于标识 license 是否有效: yes 代表 license 有效,no代表 license 失效;
若发现授权失效(is_valid is no),可能由于集群节点硬件变更,请重新生成指纹文件并发邮件申请授权。
$ gcluster_services all start
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL
[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
gccli -u root -p
初始化操作
gbase> use vc vc1;(多vc下执行))
gbase> initnodedatamap;
注:初始化命令只需对的distribution表执行一次即可。
gbase>create table t(id int ,name varchar(20));
[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 |
+--------------------------------------------------------------------------------+
[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,确保配置文件信息正确
./unInstall.py --silent=demo.options