GBase 8c V5 主备式部署实操
- 一、前言
- 二、环境准备
- 三、安装
- 四、数据库启停
- 五、卸载
- 六、连接和 SQL 测试
一、前言
GBase 8c 是 GBASE公司(天津南大通用数据技术股份有限公司)自主研发的一款多模多态的企业级分布式数据库:支持行存、列存、内存等多种存储模式;支持单机、主备式、分布式等多种部署形态。
GBase 8c 具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。
本文讲解主备式安装部署步骤、卸载、连接测试。属于入门级别的实操课程。
二、环境准备
0、标识符约定:
命令前的 # 表示以 root 账户执行;
命令前的 $ 表示以 DBA 账户执行。
1、操作系统
硬件 | 配置 |
---|---|
CPU | Intel® Xeon® CPU E5-2699 v3 @ 2.30GHz |
Memory | 16G |
Disk | SSD 50G |
2、集群配置(一主、一备两个节点):
IP | 角色 |
---|---|
192.168.10.71 | node1(主节点) |
192.168.10.72 | node2(备节点) |
3、确保关闭防火墙
(1) 每个节点都要执行
# systemctl status firewalld.service
如果系统提示以下信息说明防火墙已被禁用
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
(2) 否则,执行
# systemctl stop firewalld.service
# systemctl disable firewalld.service
可以关闭防火墙并禁止防火墙开机自启动。
4、确保每个节点的 SELINUX 是关闭的
(1) 每个节点执行
# sestatus
如果系统提示以下信息说明 selinux 已被禁用
SELinux status: disabled
(2) 否则,打开每个节点的 selinux 配置文件
# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
将 SELINUX 关键字的值修改为 disabled,存盘退出,执行
# shutdown -r
重启操作系统。
5、确认主、备节点主机名称不同,也可以重新设置主备机主机名
[192.168.10.71]# hostnamectl set-hostname gbase8c_1
[192.168.10.72]# hostnamectl set-hostname gbase8c_2
6、配置所有节点的 IP 主机名映射:
编辑两个节点的 hosts 文件
# vi /etc/hosts
将以下三行信息追加到 hosts 文件中
192.168.10.71 gbase8c_1
192.168.10.72 gbase8c_2
7、配置系统内核参数
【目的】避免信号量不足无法初始化。
【现象】如果信号量不足,执行安装脚本会发现以下错误
[step 1]: check parameter
[step 2]: check install env and os setting
On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it.
The required value should be greater than 321. You can modify it in file '/etc/sysctl.conf'.
$ sudo vim /etc/sysctl.conf
在sysctl.conf 配置文件中,配置参数如下:
kernel.sem = 40960 2048000 40960 20480
保存并退出。执行 sysctl -p 生效。
三、安装
1、每个节点都要创建 DBA 用户
# useradd gbase
# passwd gbase
# useradd -m -d /home/gbase gbase -g gbase
2、添加gbase 用户至sudoer 列表
所有节点都要执行
# visudo
打开 sudoer 配置文件,找到 ”root ALL=(ALL) ALL” 行,在下方增加
“gbase ALL=(ALL) NOPASSWD:ALL”
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
gbase ALL=(ALL) NOPASSWD:ALL
3、创建目录
以 root 用户登录,在主节点创建存放安装包的目录
# mkdir -p /opt/software/gbase8c
# chmod 755 -R /opt/software
4、使用 SSH 工具上传安装包(GBase8cV5_S5.0.0B28_centos7.8_x86_64.tar.gz)到主安装节点(192.168.10.71) /opt/software/gbase8c 下
5、解压安装包
# cd /opt/software/gbase8c
# tar -xvf GBase8cV5_S5.0.0B28_centos7.8_x86_64.tar.gz
GBase8cV5_S5.0.0BXX_CentOS_x86_64_cm.tar.gz
GBase8cV5_S5.0.0BXX_CentOS_x86_64_om.sha256
GBase8cV5_S5.0.0BXX_CentOS_x86_64_om.tar.gz
解压安装包,对得到的 OM 安装包再次解压
# tar xvf GBase8cV5_S5.0.0B28_CentOS_x86_64_om.tar.gz
6、创建配置文件
获取安装配置文件模板($安装目录/script/gspylib/etc/conf/cluster_config_template.xml)。
根据实际部署情况,编辑 cluster_config.xml 文件。例如
# cp /opt/software/gbase8c/script/gspylib/etc/conf/cluster_config_template.xml /opt/software/gbase8c/cluster_config.xml
<?xml version="1.0" encoding="utf-8"?>
<ROOT><CLUSTER><PARAM name="clusterName" value="Cluster_GBase" /><PARAM name="nodeNames" value="gbase8c_1,gbase8c_2"/><PARAM name="gaussdbAppPath" value="/opt/GBase/install/app" /><PARAM name="gaussdbLogPath" value="/var/log/omm" /><PARAM name="tmpMppdbPath" value="/opt/GBase/tmp"/><PARAM name="gaussdbToolPath" value="/opt/GBase/install/om" /><PARAM name="corePath" value="/opt/GBase/corefile"/><PARAM name="backIp1s" value="192.168.10.71,192.168.10.72"/></CLUSTER><DEVICELIST><DEVICE sn="gbase8c_1"><PARAM name="name" value="gbase8c_1"/><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><PARAM name="backIp1" value="192.168.10.71"/><PARAM name="sshIp1" value="192.168.10.71"/><!--cm zhu--><PARAM name="cmsNum" value="1"/><PARAM name="cmDir" value="/opt/GBase/install/cm"/><PARAM name="cmServerPortBase" value="15300"/><PARAM name="cmServerListenIp1" value="192.168.10.71,192.168.10.72"/><PARAM name="cmServerHaIp1" value="192.168.10.71,192.168.10.72"/><PARAM name="cmServerlevel" value="1"/><PARAM name="cmServerRelation" value="gbase8c_1,gbase8c_2"/><!-- dn --><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/opt/GBase/install/data/dn,gbase8c_2,/opt/GBase/install/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE><DEVICE sn="gbase8c_1"><PARAM name="name" value="gbase8c_2"/><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><PARAM name="backIp1" value="192.168.10.72"/><PARAM name="sshIp1" value="192.168.10.72"/><PARAM name="cmDir" value="/opt/GBase/install/cm"/></DEVICE></DEVICELIST>
</ROOT>
7、初始化安装环境
安装前置脚本 gs_preinstall 可以协助用户自动完成如下的安装环境准备工作
以 root 用户身份登录部署机,进入工具脚本存放目录下
# cd /opt/software/gbase8c/script
# ./gs_preinstall -U gbase -G gbase -X /opt/software/gbase8c/cluster_config.xml
8、执行安装
以 gbase 用户登录部署机
[192.168.10.71]# su - gbase
[192.168.10.71]# gs_install -X /opt/software/gbase8c/cluster_config.xml
在执行过程中,用户需根据提示输入数据库的密码,最少包含 8 个字符,不能和用户名、当前密码、或当前密码反序相同
执行时间 3+ 分钟,安装结束后,脚本会提示
{"ret":0,"msg":"Success"
}
安装成功!
9 安装验证
以 gbase 用户身份登录服务器
[192.168.10.71]$ gs_om -t status --detail
[ DBnode State ]
node node_ip instance state
-----------------------------------------------------------------------------
1 gbase8c_1 192.168.10.71 6001 /opt/database/install/data/dn P Primary Normal
2 gbase8c_2 192.168.10.72 6001 /opt/database/install/data/dn S Standby Normal
四、数据库启停
停止数据库服务
[192.168.10.70]$ /opt/software/gbase8c/script/gs_om -t stop
启动数据库服务
[192.168.10.70]$ /opt/software/gbase8c/script/gs_om -t start
五、卸载
在主节点(192.168.10.70)执行
$ /opt/software/gbase8c/script/gs_uninstall --delete-data
可以完成集群的卸载。
六、连接和 SQL 测试
在主节点(192.168.10.70)执行
$ gsql -d postgres -p 15400
出现 postgres=# 操作符说明客户端工具 gsql 成功连接 8c 数据库
postgres=# create database testdb;
CREATE DATABASE
postgres=# create table student(ID int, Name varchar(10));
CREATE TABLE
postgres=# insert into student values(1, 'Mike'),(2,'John');
INSERT 0 2
postgres=# select * from student;
id | name
----±-----
1 | Mike
2 | John
(2 rows)