GBase8cV5.0.0 主备安装文档

一、服务器规划

以下硬件规划仅为安装文档的示例,不表示数据库仅支持下述描述的环境。如需了解数据库支持的具体硬件环境,请咨询GBase服务人员。
服务器1服务器2
主机名gbase8c-primarygbase8c-standby
IP192.168.123.121192.168.123.122
内存32GB32GB
CPU8c8c
硬盘500GB500GB
操作系统Centos7.9Centos7.9
CPU架构x86x86
安装包版本GBase8cV5_S5.0.0B22GBase8cV5_S5.0.0B22

二、修改操作系统环境配置

在所有节点服务器上,以 root 用户进行修改操作系统配置的操作。以下均为在主节点上执行的例子,备节点同样执行即可。
1、安装依赖包
[root@gbase8c-primary ~]# #安装所需依赖包
[root@gbase8c-primary ~]# yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel expect bzip2 net-tools
2、关闭操作系统防火墙
为了在防火墙开启的状态下,确保 GBase8c 的正常使用。用户需要将同GBase8c 相关的服务、协议、IP 以及端口添加到 GBase8c 各主机的防火墙白名单中,本次示例将对防火墙进行关闭。
 (1) 查看防火墙状态,确认是否处于关闭状态。
如果系统提示 inactive (dead),说明防火墙已被禁用。
[root@gbase8c-primary ~]# #查看防火墙状态
[root@gbase8c-primary ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
(2) 若防火墙处于开启状态(active(running)),则执行如下命令,将其关闭并禁止开机自启动
[root@gbase8c-primary ~]# #查看防火墙状态
[root@gbase8c-primary ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 三 2024-02-28 15:43:52 CST; 34s ago
     Docs: man:firewalld(1)
 Main PID: 16338 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─16338 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

228 15:43:52 gbase8c-primary.com systemd[1]: Starting firewalld - dynamic firewall daemon...
228 15:43:52 gbase8c-primary.com systemd[1]: Started firewalld - dynamic firewall daemon.
228 15:43:52 gbase8c-primary.com firewalld[16338]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option.... it now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@gbase8c-primary ~]# #关闭防火墙
[root@gbase8c-primary ~]# systemctl stop firewalld.service
[root@gbase8c-primary ~]# #关闭防火墙开机启动
[root@gbase8c-primary ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
3、关闭 SELINUX 服务
SELINUX 提供了强制访问控制功能。为了 GBase8c 的正常运行,需要关闭所有节点服务器的 SELINUX。
(1) 查看 SELINUX 状态,确认是否处于关闭状态。
[root@gbase8c-primary ~]# # 查看SELINUX 状态
[root@gbase8c-primary ~]# getenforce
Disabled
(2) 若返回提示 disabled,说明 SELINUX 已被禁用,无需操作;若返回提示 Permissive ,则提示 SELINUX 被临时关闭,重启后会按照配置文件中内容生效,所以需要编辑配置文件,将 ”SELINUX” 参数值修改为 disabled 。
[root@gbase8c-primary ~]# # 修改/etc/selinux/config文件关闭selinux
[root@gbase8c-primary ~]# vim /etc/selinux/config
[root@gbase8c-primary ~]# cat /etc/selinux/config | grep "SELINUX"
SELINUX = disabled
[root@gbase8c-primary ~]# # 重启生效
[root@gbase8c-primary ~]# reboot
4、设置字符集参数
将服务器字符集设置为相同的字符集,建议设置为英文字符集。
[root@gbase8c-primary ~]# # 查看当前服务器字符集
[root@gbase8c-primary ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
[root@gbase8c-primary ~]# # 在文件中将 LANG 修改为英文字符集。例如,设置为 en_US.UTF-8
[root@gbase8c-primary ~]# vim /etc/locale.conf
[root@gbase8c-primary ~]# # 重新登录,以使更改生效
[root@gbase8c-primary ~]# 登出
[root@gbase8c-primary ~]# # 查看是否生效
[root@gbase8c-primary ~]# echo $LANG
en_US.UTF-8
5、设置时区和时间
将各数据库节点的时区设置为相同时区。
(1) 首先将 /usr/share/zoneinfo/ 目录下的时区文件拷贝为 /etc/localtime 文件。
[root@database1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
(2) 使用date -s 命令将各主机的时间设置为统一时间
[root@database1 ~]# date -s "Tue Nov 7 11:14:07 CST 2023"
(3) 通过date 命令查询主机时区。检查年份、日期是否一致即可。时间可能由于操作时间而显示时差。
[root@database1 ~]# date
202311月 07日 星期二 11:14:41 CST
6、关闭 RemoveIPC 安全设置
在CentOS 7.2+ 、RHEL 7.2+ 或Kylin-Server-20200711+ 操作系统环境中, 需检查 RemoveIPC  参数,避免因该参数开启导致用户退出后数据库中断的问题。
(1) 修改 /etc/systemd/logind.conf 文件中的 “RemoveIPC” 值为 “no”。
[root@gbase8c-primary ~]# # 修改 /etc/systemd/logind.conf 文件关闭参数
[root@gbase8c-primary ~]# vim /etc/systemd/logind.conf
[root@gbase8c-primary ~]# cat /etc/systemd/logind.conf | grep RemoveIPC
RemoveIPC=no
(2) 检查修改是否生效。
[root@gbase8c-primary ~]# loginctl show-session | grep RemoveIPC
[root@gbase8c-primary ~]# systemctl show systemd-logind | grep RemoveIPC
7、关闭 THP服务
内存大页机制(Transport Huge Pages,THP),是linux2.6.38 后支持的功能。该功能支持2MB 的大页内存分配,默认开启。
[root@gbase8c-primary ~]# # 查看THP 服务
[root@gbase8c-primary ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@gbase8c-primary ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
关闭 THP 服务
[root@gbase8c-primary ~]# # 关闭 THP 服务
[root@gbase8c-primary ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@gbase8c-primary ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@gbase8c-primary ~]# # 查看THP 服务变化
[root@gbase8c-primary ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@gbase8c-primary ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
8、设置网卡 MTU 值
将各数据库节点的网卡MTU 值设置为相同大小。
(1) 执行如下命令查询服务器的网卡名称。
[root@gbase8c-primary ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.121  netmask 255.255.255.0  broadcast 192.168.123.255
        inet6 fe80::5054:ff:febd:6dbb  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:bd:6d:bb  txqueuelen 1000  (Ethernet)
        RX packets 13914  bytes 810512 (791.5 KiB)
        RX errors 0  dropped 649  overruns 0  frame 0
        TX packets 10815  bytes 1260750 (1.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(2) 使用如下命令将各数据库节点的网卡MTU 值设置为相同大小。其中,网卡编号和MTU 值根据实际情况修改。MTU 值推荐8192,要求不小于1500。
[root@gbase8c-primary ~]# ifconfig eth0 mtu 8192

9、关闭 swap 交换内存
关闭swap 交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。如果服务器内存比较小,内存过载时,可打开swap 交换内存保障正常运行。建议低于 16G(包含16G) 保持开启swap内存交换。

(1)、检查服务器内存和是否开启swap内存交换
[root@gbase8c-primary ~]# free -gh
			total 	used 	free 	shared 	buff/cache 	available
	Mem: 	31.8G 	16.8 	6.3G 	156M 	5.1G 		5.4G
	Swap: 	7.9G 	264K 	7.9G
(2)、关闭 swap 交换内存
[root@gbase8c-primary ~]# # 关闭交换内存
[root@gbase8c-primary ~]# swapoff -a
[root@gbase8c-primary ~]# free -gh
			total 	used 	free 	shared 	buff/cache 	available
	Mem: 	31.8G 	16.8 	6.3G 	156M 	5.1G 		5.4G
	Swap: 	0B 		0B 		0B

三、初始化安装环境

为了保证 GBase8c 的正确安装,请首先对主机环境进行配置。在执行安装前,为了后续能以最小权限进行安装及 GBase8c 管理操作,保证系统安全性,需要运行安装前置脚本 gs_preinstall 准备好安装用户及环境。
1、安装环境配置
1.1 安装目录规划

在执行环境配置脚本时,需要规划好 GBase8c 配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。
目录规划建议:
主备节点均手动创建
(1)、解压的安装包单独放一个目录下:/dbdata/gbase/Installation_package
安装脚本自动创建:
(2)、数据库安装目录 (gaussdbAppPath):/dbdata/gbase/database/app
(3)、日志目录 (gaussdbLogPath):/dbdata/gbase/database/log
(4)、临时文件目录 (tmpMppdbPath):/dbdata/gbase/database/tmp
(5)、数据库工具目录 (gaussdbToolPath):/dbdata/gbase/database/om
(6)、数据库core文件目录(corePath):/dbdata/gbase/database/corefile
(7)、Data数据节点目录:主节点 /dbdata/gbase/database/data/dn1_1
** 备节点 /dbdata/gbase/database/data/dn1_2**

1.2 环境适配

⭐ (可选) 如果是 openEuler 的操作系统为确保适配 python 版本,解压安装包后,修改
script/gspylib/cgbaseon/CheckPythonVersion.py 文件,将 if not pythonVersion == (3, 6):修改为 if not pythonVersion > = (3, 6):,键入“ESC”键进入指令模式,执行":wq"保存并退出修改。
⭐(可选)如果是 openEuler 的操作系统,执行如下命令打开 performance.sh 文件,用 # 注释 sysctl -w vm.min_free_kbytes=112640 &> /dev/null,键入“ESC”键进入指令模式,执行":wq"保存并退出修改。

2、创建目录并依次解压安装包
GBase8cV5.0.0 主备安装只需要在主节点上执行安装程序即可,首先在主备两个节点创建 /dbdata/gbase/Installation_package 文件夹,将安装包移到**主节点**的 Installation_package 内进行解压。
[root@gbase8c-primary ~]# mkdir -p /dbdata/gbase/Installation_package
[root@gbase8c-primary ~]# mv GBase8cV5_S5.0.0B22_centos7.8_x86_64.tar.gz /dbdata/gbase/Installation_package/
[root@gbase8c-primary ~]# cd /dbdata/gbase/Installation_package
[root@gbase8c-primary Installation_package]# # 解压安装包
[root@gbase8c-primary Installation_package]# tar -zxvf GBase8cV5_S5.0.0B22_centos7.8_x86_64.tar.gz
GBase8cV5_S5.0.0B22_CentOS_x86_64_cm.tar.gz
GBase8cV5_S5.0.0B22_CentOS_x86_64_om.sha256
GBase8cV5_S5.0.0B22_CentOS_x86_64_om.tar.gz
GBase8cV5_S5.0.0B22_CentOS_x86_64_pgpool.tar.gz
GBase8cV5_S5.0.0B22_CentOS_x86_64.sha256
GBase8cV5_S5.0.0B22_CentOS_x86_64.tar.bz2
upgrade_sql.sha256
upgrade_sql.tar.gz
[root@gbase8c-primary Installation_package]# # 解压安装包解压出的 om.tar.gz 工具包
[root@gbase8c-primary Installation_package]# tar -zxf GBase8cV5_S5.0.0B22_CentOS_x86_64_om.tar.gz
解压后会得到以下文件(以安装包版本 GBase8cV5_S5.0.0B22_CentOS_x86_64 示例)
[root@gbase8c-primary Installation_package]# ll
total 620360
-r--------.  1 root root 316140328 Feb 28 14:58 GBase8cV5_S5.0.0B22_centos7.8_x86_64.tar.gz
-rw-rw-r--.  1 1000 1000  22548171 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64_cm.tar.gz
-rw-rw-r--.  1 1000 1000        65 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64_om.sha256
-rw-rw-r--.  1 1000 1000  79215456 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64_om.tar.gz
-rw-rw-r--.  1 1000 1000   1035714 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64_pgpool.tar.gz
-rw-rw-r--.  1 1000 1000        65 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64.sha256
-rw-rw-r--.  1 1000 1000 215773501 Feb  3 21:54 GBase8cV5_S5.0.0B22_CentOS_x86_64.tar.bz2
drwxrwxr-x.  2 1000 1000       190 Feb  3 21:54 lib
drwxrwxr-x.  2 1000 1000         6 Feb  3 21:54 libssl
drwxr-xr-x.  4 1000 1000        28 Mar 16  2021 python3.8
drwxrwxr-x. 10 1000 1000      4096 Feb  3 21:54 script
-rw-rw-r--.  1 1000 1000       813 Feb  3 21:54 set_elf_runpath.sh
-rw-rw-r--.  1 1000 1000       369 Feb  3 21:54 support_system_info.json
-rw-------.  1 1000 1000        65 Feb  3 21:54 upgrade_sql.sha256
-rw-------.  1 1000 1000    496980 Feb  3 21:54 upgrade_sql.tar.gz
drwx------.  6 1000 1000        87 Jul  2  2022 venv
-rw-rw-r--.  1 1000 1000        36 Feb  3 21:54 version.cfg
3、创建 XML 配置文件
在**主节点**上复制安装包内自带的安装配置文件 cluster_config_template.xml 到 Installation_package 文件夹内,并将其内容修改为本次安装的内容,根据配置文件参考说明进行修改即可。
[root@gbase8c-primary Installation_package]# cp script/gspylib/etc/conf/cluster_config_template.xml /dbdata/gbase/Installation_package/gbase.xml
[root@database1 Installation_package]# # 编辑 gbase.xml
[root@database1 Installation_package]# vim gbase.xml
❀ 一主一备带 CM 部署 xml 配置文件参考及说明:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- 整体信息 -->
    <CLUSTER>
	    <!-- 数据库名称 -->
        <PARAM name="clusterName" value="gbase" />
		<!-- 写入所需安装节点的主机名 -->
        <PARAM name="nodeNames" value="gbase8c-primary.com,gbase8c-standby.com" />
		<!-- 设置数据库安装目录 -->
        <PARAM name="gaussdbAppPath" value="/dbdata/gbase/database/app" />
		<!-- 设置日志目录-->
        <PARAM name="gaussdbLogPath" value="/dbdata/gbase/database/log" />
		<!-- 设置临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/dbdata/gbase/database/tmp"/>
		<!-- 设置数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/dbdata/gbase/database/om" />
		<!-- 设置数据库 core 文件目录-->
        <PARAM name="corePath" value="/dbdata/gbase/database/corefile"/>
		<!-- 写入安装节点 IP 信息 -->
        <PARAM name="backIp1s" value="192.168.123.121,192.168.123.122"/>
    </CLUSTER>
	
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 主节点的节点部署信息 -->
		<!-- 节点1上的部署信息,一般为主节点,sn填写主节点主机名 -->
        <DEVICE sn="gbase8c-primary.com">
			<!-- 写入主节点的主机名 -->
            <PARAM name="name" value="gbase8c-primary.com"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.123.121"/>
            <PARAM name="sshIp1" value="192.168.123.121"/>
            
			<!-- CM 主节点 --> 
			<PARAM name="cmsNum" value="1"/> 
			<!-- 设置 CM 安装目录 -->
			<PARAM name="cmDir" value="/dbdata/gbase/database/cm"/> 
			<!-- 设置 CM 端口 -->
			<PARAM name="cmServerPortBase" value="15300"/>
			<!-- 设置 CM 的安装IP -->
			<PARAM name="cmServerListenIp1" value="192.168.123.121,192.168.123.122"/> 
			<!-- 设置 CM 的高可用IP -->
			<PARAM name="cmServerHaIp1" value="192.168.123.121,192.168.123.122"/> 
			<PARAM name="cmServerlevel" value="1"/> 
			<!-- 写入 CM 主及备的主机名 --> 
			<PARAM name="cmServerRelation" value="gbase8c-primary.com,gbase8c-standby.com"/>
			
			<!-- DN 安装信息 -->
			<PARAM name="dataNum" value="1"/>
			<PARAM name="dataPortBase" value="15400"/>
			<!-- 设置各节点 DN 的目录,格式为:DN1安装目录,DN2主机名,DN2安装目录,DN3主机名... -->
			<PARAM name="dataNode1" value="/dbdata/gbase/database/data/dn1_1,gbase8c-standby.com,/dbdata/gbase/database/data/dn1_2"/>
			<PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
		
        <!-- 节点2上的节点部署信息,sn填写主机名 -->
        <DEVICE sn="gbase8c-standby.com">
			<!-- 节点 2 的主机名 -->
            <PARAM name="name" value="gbase8c-standby.com"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.123.122"/>
            <PARAM name="sshIp1" value="192.168.123.122"/>
            <!-- 设置 CM 安装目录 --> 
            <PARAM name="cmDir" value="/dbdata/gbase/database/cm"/> 
		</DEVICE>
    </DEVICELIST>
</ROOT>
4、执行环境配置脚本(gs_preinstall)

使用 gs_preinstall 工具,自动检测安装环境。在执行此过程前可不用创建 GBase8c 操作系统用户及用户组,在环境配置过程中可执行创建。 ⚠ 只能使用 root 用户执行 gs_preinstall 命令。
若为共用环境,需加入 –sep-env-file=ENVFILE 参数分离环境变量,避免与其他用户相互影响,ENVFILE 为用户自行指定的环境变量分离文件的路径,可以为一个空文件。

[root@gbase8c-primary script]# ./gs_preinstall -U gbase -G gbase -X /dbdata/gbase/Installation_package/gbase.xml
-U 中的 gbase 为数据库管理员(也是运行GBase8c 的操作系统用户)
-G 中的 gbase 为 GBase 8c的操作系统用户所在的用户组,gbase 为运行 GBase8c 的操作系统用户的群组名称。
-X 中的 /dbdata/gbase/Installation_package/gbase.xml 为 GBase8c 配置文件路径。
⚠  注意点
1、在预安装过程中会需确定是否为 root 互信,建议选择 yes,待安装完后可移除互信。
2、在预安装过程会提示是否创建 gbase 用户和 gbase 用户互信,若在安装前未自行创建 gbase 用户或未做互信,则必须选择yes。

**预安装过程展示**
[root@gbase8c-primary script]# ./gs_preinstall -U gbase -G gbase -X /dbdata/gbase/Installation_package/gbase.xml
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Are you sure you want to create trust for root (yes/no)?yes
Please enter password for root
Password:
Successfully created SSH trust for the root permission user.
Setting host ip env
Successfully set host ip env.
Distributing package.
Begin to distribute package to tool path.
Successfully distribute package to tool path.
Begin to distribute package to package path.
Successfully distribute package to package path.
Successfully distributed package.
Are you sure you want to create the user[gbase] and create trust for it (yes/no)? yes
Please enter password for cluster user.
Password:
Please enter password for cluster user again.
Password:
Generate cluster user password files successfully.
Successfully created [gbase] user on all nodes.
Preparing SSH service.
Successfully prepared SSH service.
Installing the tools in the cluster.
Successfully installed the tools in the cluster.
Checking hostname mapping.
Successfully checked hostname mapping.
Creating SSH trust for [gbase] user.
Please enter password for current user[gbase].
Password:
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Distributing trust keys file to all node successfully.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.
Successfully created SSH trust for [gbase] user.
Checking OS software.
Successfully check os software.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.

‍🔺 错误排查:如果安装失败请根据日志目录下的“gs_preinstall-YYYY-MM-DD_HHMMSS.log”

四、正式安装

使用 gs_install 安装 GBase8c。若为环境变量分离的模式安装的数据库需要 source  环境变量分离文件 ENVFILE。
[gbase@gbase8c-primary ~]$ # 使用环境变量命令安装
[gbase@gbase8c-primary ~]$ gs_install -X /dbdata/gbase/Installation_package/gbase.xml
/dbdata/gbase/Installation_package/gbase.xml 为 GBase8c 配置文件的路径。在执行过程中,用户需根据输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。
设置的密码要符合复杂度要求:
⭐ 最少包含8 个字符,最多包含16 个字符。
⭐ 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
⭐ 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
安装过程中会生成 ssl 证书,证书存放路径为 {gaussdbAppPath}/share/sslcert/om,其中 {gaussdbAppPath} 为 GBase8c 配置文件中指定的程序安装目录。

安装过程展示:

[gbase@gbase8c-primary ~]$ # 使用环境变量命令安装
[gbase@gbase8c-primary ~]$ gs_install -X /dbdata/gbase/Installation_package/gbase.xml
Parsing the configuration file.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Successfully created the backup directory.
begin deploy..
Installing the cluster.
begin prepare Install Cluster..
Checking the installation environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt cipher and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /dbdata/gbase/database/app/share/sslcert/om
Create CA files for cm beginning.
Create CA files on directory [/dbdata/gbase/database/app_10c6a905/share/sslcert/cm]. file list: ['cacert.pem', 'server.key', 'server.crt', 'client.key', 'client.crt', 'server.key.cipher', 'server.key.rand', 'client.key.cipher', 'client.key.rand']
Non-dss_ssl_enable, no need to create CA for DSS
Cluster installation is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on database nodes.
Successful check consistence of memCheck and coresCheck on all nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
Starting cluster.
======================================================================
Successfully started primary instance. Wait for standby instance.
======================================================================
.
Successfully started cluster.
======================================================================
cluster_state      : Normal
redistributing     : No
node_count         : 2
Datanode State
    primary           : 1
    standby           : 1
    secondary         : 0
    cascade_standby   : 0
    building          : 0
    abnormal          : 0
    down              : 0

Successfully installed application.
end deploy..
🔺 错误排查:如果安装失败请根据日志目录下的“gs_install-YYYY-MM-DD_HHMMSS.log” 和“gs_local-YYYYMM-DD_HHMMSS.log”中的日志信息排查错误。

五、数据库基本配置

1、配置服务端远程连接
配置使用的客户端认证方式,即允许客户端接入认证。用户可以设置某一客户端IP 或任意IP(0.0.0.0/0),以某一用户或任意用户(all)连接到本机。此处不能使用数据库默认用户  gbase (操作系统用户)。
[gbase@gbase8c-primary ~]$ gs_guc reload -N all -I all -h "host all all 0.0.0.0/0 sha256"
[gbase@gbase8c-primary ~]$ gs_guc set -N all -I all -c "listen_addresses = '*' "
[gbase@gbase8c-primary ~]$ gs_guc set -N all -I all -c "password_encryption_type=1"
[gbase@gbase8c-primary ~]$ gs_om -t restart
2、主备VIP配置

VIP 是虚拟IP,随主DN 状态进行动态绑定和切换,即如果DN 主发生了切换,原主DN 上的虚拟IP 可能动态绑定到新主DN 上,用户可以只通过该IP 与数据库连接,不用感知数据库在哪个节点上
⚠ 前提条件:需要一个同网段内可用的IP 设置为虚拟IP,配置虚拟IP可以实现主机宕机后自动切换备机连接

(1)、给 gbase 安装用户添加 sudo 权限
需在所有 CM 节点上执行修改 gbase 用户sudo权限:
**主节点**
[root@gbase8c-primary ~]# visudo
[root@gbase8c-primary ~]# cat /etc/sudoers | grep gbase
gbase   ALL=(ALL)       NOPASSWD:ALL

** 备节点**

[root@gbase8c-standby ~]# visudo
[root@gbase8c-standby ~]# cat /etc/sudoers | grep gbase
gbase   ALL=(ALL)       NOPASSWD:ALL
(2)、生成 VIP 配置文件步骤,在每个节点上都要生成该 VIP 配置文件,且每个节点要 求一致,需要重启集群才能生效。
主备节点均需执行,以下为主节点样例。
[gbase@gbase8c-primary ~]$ # 设置CM虚拟IP为 192.168.123.115
[gbase@gbase8c-primary ~]$ cm_ctl res --add --res_name="CM_VIP" --res_attr="resources_type=VIP,float_ip=192.168.123.115"
[gbase@gbase8c-primary ~]$ # 写入主备IP
[gbase@gbase8c-primary ~]$ cm_ctl res --edit --res_name="CM_VIP" --add_inst="res_instance_id=6001,node_id=1" --inst_attr="base_ip=192.168.123.121"
[gbase@gbase8c-primary ~]$ cm_ctl res --edit --res_name="CM_VIP" --add_inst="res_instance_id=6002,node_id=2" --inst_attr="base_ip=192.168.123.122"
若上述执行错误可以执行以下语句进行删除:
 [gbase@gbase8c-primary ~]$ cm_ctl res --del --res_name="CM_VIP" --del_inst="res_instance_id=6002,node_id=2"
(3)、主节点修改数据库的配置文件 pg_hba.conf 远程连接
[gbase@gbase8c-primary ~]$ gs_guc reload -I all -N all -h 'host all all 192.168.123.115/32 sha256'
(4)、主节点配置主备切换参数,并重启集群
[gbase@gbase8c-primary ~]$ cm_ctl set --param --server -k "cms_enable_failover_on2nodes=1"
[gbase@gbase8c-primary ~]$ cm_ctl set --param --server -k "cms_network_isolation_timeout=10"
[gbase@gbase8c-primary ~]$ cm_ctl set --param --server -k "cms_enable_db_crash_recovery=1"
[gbase@gbase8c-primary ~]$ # 设置网关地址 192.168.123.1
[gbase@gbase8c-primary ~]$ cm_ctl set --param --server -k "third_party_gateway_ip=192.168.123.1"
[gbase@gbase8c-primary ~]$ # 集群重启
[gbase@gbase8c-primary ~]$ cm_ctl stop
[gbase@gbase8c-primary ~]$ cm_ctl start
3、设置备机可读(可选)
备机可读特性为可选特性,需要修改配置参数并重启主备机器后才能使用。在开启备机可读之后,备机将支持读操作,并满足数据一致性要求。

方法一、修改数据库配置文件
如果主备机上的 GBase8c 数据库实例正在运行,请先分别停止主备机上的数据库实例。分别打开主机与备机的 postgresql.conf 配置文件, 找到并将对应参数修改为:

wal_level=hot_standby
hot_standby = on
hot_standby_feedback = on

方法二、主机执行以下命令

[gbase@gbase8c-standby ~]$ gs_guc set -I all -N all -c 'wal_level=hot_standby'
[gbase@gbase8c-standby ~]$ gs_guc set -I all -N all -c 'hot_standby = on'
[gbase@gbase8c-standby ~]$ gs_guc set -I all -N all -c 'hot_standby_feedback = on'

六、基本使用

1、创建DBA用户
系统管理员是指具有 SYSADMIN 属性的帐户,默认安装情况下具有与对象所有者相同的权限,但不包括 dbe_perf 模式的对象权限。要创建新的系统管理员,请以初始用户或者系统管理员用户身份连接数据库,并使用带 SYSADMIN 选项的 CREATE USER 语句或 ALTER USER语句进行设置。
[gbase@gbase8c-primary ~]$ gsql -r -d postgres -p 15400
gsql ((single_node GBase8cV5 S5.0.0B22 build 10c6a905) compiled at 2024-02-03 21:19:45 commit 0 last mr 470 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

postgres=# create user gbase8c with sysadmin login password 'Database@123';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
2、创建数据库
(1)、兼容性选择 DBCOMPATIBILITY
	DBCOMPATIBILITY [ = ] compatibility_type
	指定兼容的数据库的类型,默认兼容O。
	取值范围:A、B、C、PG。分别表示兼容O、MY、TD和POSTGRES。
(2)、字符编码 ENCODING

ENCODING [ = ] encoding
指定数据库使用的字符编码,可以是字符串(如’SQL_ASCII’)、整数编号。

(3)、字符集 LC_COLLATE
	LC_COLLATE [ = ] lc_collate
	指定新数据库使用的字符集。例如,通过 lc_collate = 'zh_CN.gbk' 设定该参数。
	该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的排序顺序。
	取值范围:操作系统支持的字符集。
(4)、字符分类LC_CTYPE
	LC_CTYPE [ = ] lc_ctype
	指定新数据库使用的字符分类。例如,通过 lc_ctype = 'zh_CN.gbk' 设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。
	取值范围:操作系统支持的字符分类。

建库案例:

# 创建 dboracle 库,兼容性为 ORACLE,字符编码使用 UTF8 字符集使用 en_US.UTF-8
[gbase@gbase8c-primary ~]# gsql -r -d postgres -p 15400
postgres#= create database dboracle owner gbase8c DBCOMPATIBILITY= 'A' ENCODING 'UTF8' LC_COLLATE'en_US.UTF-8' LC_CTYPE'en_US.UTF-8';
CREATE DATABASE

# 创建 dbmysql 库,兼容性为 mysql,字符编码使用 UTF8 字符集使用 en_US.UTF-8
[gbase@gbase8c-primary ~]# gsql -r -d postgres -p 15400
postgres#= create database dbmysql owner gbase8c DBCOMPATIBILITY= 'B' ENCODING 'UTF8' LC_COLLATE'en_US.UTF-8' LC_CTYPE'en_US.UTF-8';
CREATE DATABASE

七、卸载

卸载 GBase8c 的过程包含卸载 GBase8c 和服务器环境清理两部分。GBase8c 提供了卸载脚本帮助用户完整的卸载 GBase8c。
执行 gs_uninstall 脚本卸载 GBase8c
[gbase@gbase8c-primary ~]$ gs_uninstall --delete-data
Checking unInstallationGuide.
Successfully checked unInstallationGuide.
Stopping the cluster.
Successfully stopped the cluster.
Successfully deleted instances.
Uninstalling application.
Successfully uninstalled application.
UnInstallationGuide succeeded.
🔺错误排查
如果卸载失败请根据 “$GAUSSLOG/om/gs_uninstall-YYYY-MM-DD_HHMMSS.log” 中的日志信息排查错误。
GBase8c 卸载完成后,如果不需要在环境上重新部署 GBase8c,可以运行脚本 gs_postuninstall 对服务器上环境信息做清理。GBase8c 环境清理是对环境准备脚本 gs_preinstall 所做设置的清理。
[root@gbase8c-primary ~]$ cd /dbdata/gbase/Installation_package/script
[root@gbase8c-primary script]$ ./gs_postuninstall -U gbase -X /dbdata/gbase/Installation_package/gbase.xml --delete-user --delete-group
  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值