本文主要是介绍实现【openGauss5.0企业版】一主一备集群搭建部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实现【openGauss5.0企业版】一主一备集群搭建部署
- 🔻 前言
- 🔻 一、安装前准备
- 🔰 1.1 openGauss安装包下载
- 🔰 1.2 安装环境准备
- ⛳ 1.2.1 硬件环境要求
- ⛳ 1.2.2 软件环境要求
- ⛳ 1.2.3 软件依赖要求
- ⛳ 1.2.4 修改 hosts 和 hostname(pg-node01、pg-node02)
- ⛳ 1.2.5 关闭操作系统防火墙、selinux
- ⛳ 1.2.6 设置字符集参数
- ⛳ 1.2.7 设置时区和时间
- ⛳ 1.2.8 关闭swap交换内存(可选)
- ⛳ 1.2.9 设置网卡MTU值(可选)
- ⛳ 1.2.10 关闭RemoveIPC
- ⛳ 1.2.11 设置root用户远程登录(可选)
- ⛳ 1.2.12 配置Banner
- ⛳ 1.2.13 了解安装用户及用户组
- 🔻 二、系统资源参数配置
- 🔰 2.1 设置sysctl.conf
- 🔰 2.2 配置资源限制
- 🔰 2.3 关闭透明大页
- 🔻 三、预安装
- 🔰 3.1 创建安装用户omm和dbgrp用户组->(pg-node01,pd-node02执行)
- 🔰 3.2 创建存放安装包的目录->(pg-node01,pd-node02执行)
- 🔰 3.2 上传并解压安装包--》主节点(pg-node01执行)
- 🔰 3.3 创建XML配置文件
- 🔰 3.4 执行预安装脚本
- 🔰 3.5 检查系统环境
- 🔻 四、开始安装openGauss数据库集群
- 🔰 4.1 使用root用户修改目录属主为 omm:dbgrp
- 🔰 4.2 开始安装
- 🔰 4.3 验证openGauss数据库
- ⛳ 4.3.1 查询openGauss各个节点信息
- ⛳ 4.3.2 登录openGauss
- 🔻 五、设置pg-node02备机可读->(pg-node01,pd-node02执行)
- 🔰 5.1 先停止数据库服务
- 🔰 5.2 postgres.conf 配置文件修改
- 🔰 5.3 主备功能测试
- 🔻 六、openGauss简单使用
- 🔰 6.1 启停openGauss数据库服务
- 🔰 6.2 安装生成的目录
- 🔻 总结—温故知新
👈【上一篇】 | 💖The Begin💖 点点关注,收藏不迷路💖 | 【下一篇】👉 |
🔻 前言
openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。
- 🔊 本次安装环境
[root@pg-node01 ~]# python3 -V
Python 3.6.8
[root@pg-node01 ~]# cat /proc/version
Linux version 3.10.0-1160.el7.x86_64 (mockbuild@x86-vm-26.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 18 14:50:17 EDT 2020
[root@pg-node01 ~]#
[root@pg-node01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@pg-node01 ~]#
🟢运行内存8G、磁盘空间60G🟢
🔻 一、安装前准备
🔰 1.1 openGauss安装包下载
openGauss安装包下载,这里选择openGauss_5.0.0 企业版。
🔰 1.2 安装环境准备
⛳ 1.2.1 硬件环境要求
项目 | 配置描述 |
---|---|
内存 | 1、功能调试建议32GB以上。2、性能测试和商业部署时,单实例部署建议128GB以上。3、复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。 |
CPU | 1、功能调试最小1×8核,2.0GHz。2、性能测试和商业部署时,单实例部署建议1×16核,2.0GHz。3、CPU超线程和非超线程两种模式都支持。📜 说明:目前,openGauss仅支持鲲鹏服务器和基于x86_64通用PC服务器的CPU。 |
硬盘 | 📜 用于安装openGauss的硬盘需最少满足如下要求:1、至少1GB用于安装openGauss的应用程序。2、每个主机需大约300MB用于元数据存储。3、预留70%以上的磁盘剩余空间用于数据存储。4、建议系统盘配置为RAID1,数据盘配置为RAID5,且规划4组RAID5数据盘用于安装openGauss。 |
网络要求 | 1、300兆以上以太网。2、建议网卡设置为双网卡冗余bond。 |
⛳ 1.2.2 软件环境要求
软件类型 | 配置描述 |
---|---|
Linux操作系统 | 🔖 ARM:openEuler 20.03LTS(推荐采用此操作系统)、麒麟V10。 🔖x86:openEuler 20.03LTS、CentOS 7.6。说明:当前安装包只能在英文操作系统上安装使用。 |
Linux文件系统 | 剩余inode个数 > 15亿(推荐) |
工具 | bzip2 |
Python | 支持Python3.6+ |
🟡 以下操作《 ⛳ 1.2.3 软件依赖要求 ~ ⛳1.2.12 配置Banner》在各节点执行(pg-node01,pg-node02)🟡
⛳ 1.2.3 软件依赖要求
所需软件 | 建议版本 |
---|---|
libaio-devel | 建议版本:0.3.109-13 |
flex | 要求版本:2.5.31 以上 |
bison | 建议版本:2.7-4 |
ncurses-devel | 建议版本:5.9-13.20130511 |
glibc-devel | 建议版本:2.17-111 |
patch | 建议版本:2.7.1-10 |
redhat-lsb-core | 建议版本:4.1 |
readline-devel | 建议版本:7.0-13 |
libnsl(openEuler+x86环境中) | 建议版本:2.28-36 |
###🟢使用yum来安装依赖包或者使用iso镜像挂载安装(小编采用镜像挂载安装有关依赖)
yum install -y java-1.8.0-openjdk* psmisc* bzip2*
yum install -y python3-devel* python3* lksctp*yum install -y yum install -y libaio-devel* flex* bison* ncurses-devel* glibc-devel* patch* readline-devel* redhat-lsb-core* expect* ntp*
⛳ 1.2.4 修改 hosts 和 hostname(pg-node01、pg-node02)
- pg-node01
🟢 vi /etc/hosts
192.168.181.11 pg-node01
192.168.181.12 pg-node02
🟢 vi /etc/hostname
pg-node01
- pg-node02
🟢 vi /etc/hosts
192.168.181.11 pg-node01
192.168.181.12 pg-node02
🟢 vi /etc/hostname
pg-node02
⛳ 1.2.5 关闭操作系统防火墙、selinux
目前openGauss仅支持在防火墙关闭的状态下进行安装
。
🟢 1、修改/etc/selinux/config文件中的SELINUX值为
disabled
[root@pg-node01 ~]# vim /etc/selinux/config
🟢 2、修改SELINUX的值为disabled
SELINUX=disabled
🟢 3、检查防火墙是否关闭
[root@pg-node01 ~]# systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭
若防火墙状态显示为inactive (dead),则无需再关闭防火墙
🟢 4、关闭防火墙并禁止开机重启
[root@pg-node01 ~]# systemctl disable firewalld.service
[root@pg-node01 ~]# systemctl stop firewalld.service
⛳ 1.2.6 设置字符集参数
###🟢
将数据库节点的字符集设置为en_US.UTF-8
echo LANG=en_US.UTF-8 >> /etc/profile
source /etc/profile
echo $LANG
⛳ 1.2.7 设置时区和时间
###🟢
查询时区
[root@pg-node01 ~]# timedatectl
[root@pg-node01 ~]# timedatectl list-timezones |grep Shanghai
[root@pg-node01 ~]# timedatectl set-timezone Asia/Shanghai
🟢集群模式需要使用date -s命令将各主机的时间设置为统一时间。
[root@pg-node01 ~]# date -s " 2023-06-17 16:39:50 "
🟢通过date命令查询主机时区
[root@pg-node01 ~]# date
Sat Jun 17 16:41:03 CST 2023
⛳ 1.2.8 关闭swap交换内存(可选)
关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。
###🟢
使用swapoff -a
命令将交换内存关闭—集群模式则需要各节点执行
###🟢关闭交换内存命令
[root@pg-node01 ~]# swapoff -a
###🟢开启交换内存命令
[root@pg-node01 ~]# swapon -a
⛳ 1.2.9 设置网卡MTU值(可选)
将各数据库节点的网卡MTU值设置为相同大小。对于x86,MTU值推荐1500
;对于ARM,MTU值推荐8192
。
###🟢
查询服务器的网卡名称
[root@pg-node01 ~]# ifconfig
###🟢设置网卡MTU值设置为8192,---集群模式则需要各节点执行
[root@pg-node01 ~]# ifconfig ens33 mtu 8192
⛳ 1.2.10 关闭RemoveIPC
集群模式则需要各节点上执行,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。
###🟢 `关闭RemoveIPC`
[root@pg-node01 ~]# sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
[root@pg-node01 ~]# sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service[root@pg-node01 ~]# echo "RemoveIPC=no" >> /etc/systemd/logind.conf
[root@pg-node01 ~]# echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service
###🟢
重新加载配置参数
[root@pg-node01 ~]# systemctl daemon-reload
[root@pg-node01 ~]# systemctl restart systemd-logind
###🟢检查修改是否生效
[root@pg-node01 ~]# loginctl show-session | grep RemoveIPC
RemoveIPC=no
[root@pg-node01 ~]# systemctl show systemd-logind | grep RemoveIPC
RemoveIPC=no
[root@pg-node01 ~]#
⛳ 1.2.11 设置root用户远程登录(可选)
修改PermitRootLogin配置,允许root用户远程登录,root用户默认是可登录的,否则需要修改。
###🟢
修改sshd_config文件
🟢vim /etc/ssh/sshd_config
###修改权限配置
,可以使用以下两种方式实现
🟢1、注释掉“PermitRootLogin no”
#PermitRootLogin no
🟢2、将“PermitRootLogin”改为“yes”
PermitRootLogin yes
⛳ 1.2.12 配置Banner
修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。
###🟢
编辑sshd_config文件
vim /etc/ssh/sshd_config
###🟢修改Banner配置,注释掉“Banner”所在的行
#Banner XXXX
###🟢使设置生效
systemctl restart sshd.service
⛳ 1.2.13 了解安装用户及用户组
在安装openGauss过程中运行“gs_install”时,会创建与安装用户同名的数据库用户,即数据库用户omm。此用户具备数据库的最高操作权限,此用户初始密码由用户指定。
🔻 二、系统资源参数配置
🟡 以下操作《🔰 2.1 ~ 🔰 2.3 》在各节点执行(pg-node01,pg-node02)🟡
🔰 2.1 设置sysctl.conf
### 🟢 vi /etc/sysctl.conf net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.sctp.path_max_retrans = 10
net.sctp.max_init_retransmits = 10
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_retries2 = 12
net.ipv4.ip_local_reserved_ports = 15400-15407,20050-20057
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
kernel.sem = 250 6400000 1000 25600
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
vm.min_free_kbytes = 201318
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
kernel.shmall = 1152921504606846720
kernel.shmmax = 18446744073709551615
🔰 2.2 配置资源限制
###🟢 `配置资源限制`
echo "* soft stack 3072" >> /etc/security/limits.conf
echo "* hard stack 3072" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf###🟢 `查看配置`
tail -n 4 /etc/security/limits.conf
tail -n 1 /etc/security/limits.d/90-nproc.conf
🔰 2.3 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabledecho 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local[root@pg-node01 ~]# chmod +x /etc/rc.d/rc.local
[root@pg-node01 ~]# /usr/bin/sh /etc/rc.d/rc.local
🔻 三、预安装
🟡 以下操作《🔰 3.1 ~ 🔰 3.2》 在各节点执行(pg-node01,pg-node02)🟡
确保有关依赖是否安装完成,见【⛳ 1.2.3 软件依赖要求】。
🔰 3.1 创建安装用户omm和dbgrp用户组->(pg-node01,pd-node02执行)
🟢omm用户-----用于运行和维护openGauss数据库,在安装时有两种方式建立该用户。
🟢 1、安装过程自动创建初始用户—omm和dbgrp用户组(使用的这种方式---会导致openGauss安装后yum、ssh命令无法使用,所以先创建
)。
🟢 2、先创建omm(zyl#2023)和dbgrp用户组-----则不会产生yum、ssh命令无法使用
。
groupadd -g 5001 dbgrp
useradd -u 5001 -g dbgrp omm
passwd omm
chown -R omm:dbgrp /opt
🔰 3.2 创建存放安装包的目录->(pg-node01,pd-node02执行)
以root用户登录待安装openGauss主机,按规划创建存放安装包的目录。
注意:
-
不建议把安装包的存放目录规划到openGauss用户的根目录或其子目录下,可能导致权限问题。
-
openGauss用户须具有/opt/software/openGauss5.0目录的读写权限。
###🟢
创建安装目录
mkdir -p /opt/software/openGauss5.0
chmod 755 -R /opt/software/openGauss5.0
🔰 3.2 上传并解压安装包–》主节点(pg-node01执行)
在安装包所在的目录下,解压安装包openGauss-5.0.0-CentOS-64bit-all.tar.gz。
安装包解压后,会有OM安装包和Server安装包。
继续解压OM安装包,会在/opt/openGauss5.0/路径下自动生成script子目录,并且在script目录下生成gs_preinstall等各种OM工具脚本。
###🟢
将openGauss-5.0.0安装包解压至 /opt/software/openGauss5.0/
[root@pg-node01 ~]# tar -zxvf openGauss-5.0.0-CentOS-64bit-all.tar.gz -C /opt/software/openGauss5.0/
###🟢继续解压OM安装包
[root@pg-node01 ~]# cd /opt/software/openGauss5.0/
[root@pg-node01 openGauss5.0]# tar -zxvf openGauss-5.0.0-CentOS-64bit-om.tar.gz
###🟢再次更改目录权限
chmod -R 777 /opt/software/openGauss5.0
🔰 3.3 创建XML配置文件
官方一主一备配置文件模板:
###🟢 一主一备配置文件
<?xml version="1.0" encoding="UTF-8"?>
<ROOT><!-- openGauss整体信息 --><CLUSTER><!-- 数据库名称 --><PARAM name="clusterName" value="Cluster_template" /><!-- 数据库节点名称(hostname) --><PARAM name="nodeNames" value="node1_hostname,node2_hostname" /><!-- 数据库安装目录--><PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /><!-- 日志目录--><PARAM name="gaussdbLogPath" value="/var/log/omm" /><!-- 临时文件目录--><PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/><!-- 数据库工具目录--><PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /><!-- 数据库core文件目录--><PARAM name="corePath" value="/opt/huawei/corefile"/><!-- 节点IP,与数据库节点名称列表一一对应 --><PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/> </CLUSTER><!-- 每台服务器上的节点部署信息 --><DEVICELIST><!-- 节点1上的部署信息 --><DEVICE sn="node1_hostname"><!-- 节点1的主机名称 --><PARAM name="name" value="node1_hostname"/><!-- 节点1所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.0.1"/><PARAM name="sshIp1" value="192.168.0.1"/><!--dn--><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE><!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 --><DEVICE sn="node2_hostname"><!-- 节点2的主机名称 --><PARAM name="name" value="node2_hostname"/><!-- 节点2所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.0.2"/><PARAM name="sshIp1" value="192.168.0.2"/></DEVICE></DEVICELIST>
</ROOT>
需要修改的地方:
🟢
数据库节点名称
nodeNames value=node1_hostname
sn=node1_hostname
把value后面的值改为主机名
🟢IP地址
节点IP,与数据库节点名称列表一一对应
backIp1s value=192.168.xxx.xxx
backIp1 value=192.168.xxx.xxx
sshIp1 value=192.168.xxx.xxx
🟢端口
dataPortBase value=15400
修改之后的模板:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT><!-- openGauss整体信息 --><CLUSTER><!-- 数据库名称 --><PARAM name="clusterName" value="dbCluster" /><!-- 数据库节点名称(hostname) --><PARAM name="nodeNames" value="pg-node01,pg-node02" /><!-- 数据库安装目录--><PARAM name="gaussdbAppPath" value="/opt/software/openGauss5.0/install/app" /><!-- 日志目录--><PARAM name="gaussdbLogPath" value="/var/log/omm" /><!-- 临时文件目录--><PARAM name="tmpMppdbPath" value="/opt/software/openGauss5.0/tmp"/><!-- 数据库工具目录--><PARAM name="gaussdbToolPath" value="/opt/software/openGauss5.0/install/om" /><!-- 数据库core文件目录--><PARAM name="corePath" value="/opt/software/openGauss5.0/corefile"/><!-- 节点IP,与数据库节点名称列表一一对应 --><PARAM name="backIp1s" value="192.168.181.11,192.168.181.12"/> </CLUSTER><!-- 每台服务器上的节点部署信息 --><DEVICELIST><!-- 节点1上的部署信息 --><DEVICE sn="pg-node01"><!-- 节点1的主机名称 --><PARAM name="name" value="pg-node01"/><!-- 节点1所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.181.11"/><PARAM name="sshIp1" value="192.168.181.11"/><!--dn--><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15600"/><PARAM name="dataNode1" value="/opt/software/openGauss5.0/install/data/dn,pg-node02,/opt/software/openGauss5.0/install/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE><!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 --><DEVICE sn="pg-node02"><!-- 节点2的主机名称 --><PARAM name="name" value="pg-node02"/><!-- 节点2所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.181.12"/><PARAM name="sshIp1" value="192.168.181.12"/></DEVICE></DEVICELIST>
</ROOT>
###🟢 在
/opt/openGauss5.0
路径下,创建一个名为cluster_config.xml
的文件
[root@pg-node01 openGauss5.0]# vim cluster_config.xml
🔰 3.4 执行预安装脚本
在执行前置脚本gs_preinstall时,需要规划好openGauss配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。
###🟢
执行交互模式前置脚本,执行过程中自动创建操作系统root用户互信和omm用户互信
[root@pg-node01 ~]# cd /opt/software/openGauss5.0/script
[root@pg-node01 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss5.0/cluster_config.xml
###🟢 预安装过程
[root@pg-node01 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss5.0/cluster_config.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[omm] and create trust for it (yes/no)? yes
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 [omm] user.
Please enter password for current user[omm].
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 [omm] user.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/openGauss5.0/script/gs_checkos -i A -h pg-node01,pg-node02 --detail".
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.
[root@pg-node01 script]#
🔰 3.5 检查系统环境
[root@pg-node01 script]# ./gs_checkos -i A -h pg-node01 --detail
Checking items:A1. [ OS version status ] : Normal [pg-node01]redhat_7.9_64bitA2. [ Kernel version status ] : Normal The names about all kernel versions are same. The value is "3.10.0-1160.el7.x86_64".A3. [ Unicode status ] : Normal The values of all unicode are same. The value is "LANG=en_US.UTF-8".A4. [ Time zone status ] : Normal The informations about all timezones are same. The value is "+0800".A5. [ Swap memory status ] : Normal The value about swap memory is correct. A6. [ System control parameters status ] : Normal All values about system control parameters are correct.A7. [ File system configuration status ] : Warning [pg-node01]Warning reason: variable 'open files' RealValue '1024' ExpectedValue '1000000'Warning reason: variable 'max user processes' RealValue '7183' ExpectedValue 'unlimited'A8. [ Disk configuration status ] : Normal The value about XFS mount parameters is correct. A9. [ Pre-read block size status ] : Normal The value about Logical block size is correct. A11.[ Network card configuration status ] : Warning [pg-node01]
BondMode NullWarning reason: network 'ens33' 'mtu' RealValue '1500' ExpectedValue '8192'A12.[ Time consistency status ] : Warning [pg-node01]The NTPD not detected on machine and local time is "2023-07-05 23:39:23".A13.[ Firewall service status ] : Normal The firewall service is stopped. A14.[ THP service status ] : Normal The THP service is stopped.
Total numbers:13. Abnormal numbers:0. Warning numbers:3.
[root@pg-node01 script]#
🔻 四、开始安装openGauss数据库集群
- omm指的是前置脚本gs_preinstall中-U参数指定的用户。
- 安装脚本gs_install必须以前置脚本中指定的omm执行,否则,脚本执行会报错。
- 前置条件:已成功执行前置脚本 gs_preinstall;所有服务器操作系统和网络均正常运行;用户需确保各个主机上的 locale 保持一致。
🔰 4.1 使用root用户修改目录属主为 omm:dbgrp
chmod -R 755 /opt/software/openGauss5.0/
chown -R omm:dbgrp /opt/software/openGauss5.0/
🔰 4.2 开始安装
###🟢
必须使用上面预安装指定的omm用户进行安装,omm用户为运行openGauss的用户。
###🟢切换omm用户 --omm(zyl#2023)
[root@pg-node01 ~]# su - omm
###🟢使用gs_install安装openGauss
[omm@pg-node01 ~]$ cd /opt/software/openGauss5.0/script/
[omm@pg-node01 script]$ gs_install -X /opt/software/openGauss5.0/cluster_config.xml
❗ 在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。
设置的密码要符合复杂度要求:
1、最少包含8个字符。
2、不能和用户名、当前密码(ALTER)、或当前密码反序相同。
3、 至少包含大写字母(A-Z),小写字母(a-z),数字,非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
4、 安装过程中会生成ssl证书,证书存放路径为{gaussdbAppPath}/share/sslcert/om,其中{gaussdbAppPath}为openGauss配置文件中指定的程序安装目录。
5、日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。
###🟢安装过程--(数据库密码zyl#2023)
[omm@pg-node01 script]$ gs_install -X /opt/software/openGauss5.0/cluster_config.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 /opt/software/openGauss5.0/install/app/share/sslcert/om
NO cm_server instance, no need to create CA for CM.
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.
The cluster status is Normal.
Successfully started cluster.
Successfully installed application.
end deploy..
[omm@pg-node01 script]$
--------------------------------✅至此openGauss一主一备安装成功
🔰 4.3 验证openGauss数据库
###🟢在omm用户下执行
[omm@pg-node01 ~]$ su - omm
[omm@pg-node01 openGauss5.0]$ gs_om -t status --detail
[ Cluster State ]cluster_state : Normal
redistributing : No
current_az : AZ_ALL[ Datanode State ]node node_ip port instance state
---------------------------------------------------------------------------------------------------------------
1 pg-node01 192.168.181.11 15600 6001 /opt/software/openGauss5.0/install/data/dn P Primary Normal
2 pg-node02 192.168.181.12 15600 6002 /opt/software/openGauss5.0/install/data/dn S Standby Normal
[omm@pg-node01 openGauss5.0]$
cluster_state : Normal
----表示已启动,可以正常使用,如果状态不是Normal表示不可用。
⛳ 4.3.1 查询openGauss各个节点信息
[omm@pg-node01 ~]$ gs_om -t status --all
🟢或者使用🟢
#####🟢使用date标记,测试响应时间
[omm@pg-node01 ~]$ date && gs_om -t status --detail && date
[omm@pg-node01 openGauss5.0]$ date && gs_om -t status --detail && date
Thu Jul 6 13:13:22 EDT 2023
[ Cluster State ]cluster_state : Normal
redistributing : No
current_az : AZ_ALL[ Datanode State ]node node_ip port instance state
---------------------------------------------------------------------------------------------------------------
1 pg-node01 192.168.181.11 15600 6001 /opt/software/openGauss5.0/install/data/dn P Primary Normal
2 pg-node02 192.168.181.12 15600 6002 /opt/software/openGauss5.0/install/data/dn S Standby Normal
Thu Jul 6 13:13:25 EDT 2023
[omm@pg-node01 openGauss5.0]$ [omm@pg-node01 ~]$
⛳ 4.3.2 登录openGauss
[omm@pg-node01 openGauss5.0]$ gsql -d postgres -p 15600
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:07:56 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.openGauss=#
🔻 五、设置pg-node02备机可读->(pg-node01,pd-node02执行)
备机可读特性为可选特性,需要修改配置参数并重启主备机器后才能使用。在开启备机可读之后,备机将支持读操作,并满足数据一致性要求。
🔰 5.1 先停止数据库服务
###🟢 openGauss数据库服务状态查看
[omm@pg-node01 ~]$ gs_om -t status
###🟢 停止openGauss数据库服务
[omm@pg-node01 ~]$ gs_om -t stop
###🟢 openGauss数据库服务状态再次检查
[omm@pg-node01 ~]$ gs_om -t status
🔰 5.2 postgres.conf 配置文件修改
分别打开主节点pg-node01与备机pd-node02的postgres.conf配置文件,找到并将对应参数修改为:
wal_level=hot_standby;hot_standby=on;hot_standby_feedback=on。
🟢 1、参数检查
[omm@pg-node01 ~]$ more /opt/software/openGauss5.0/install/data/dn/postgresql.conf | grep hot_standby
wal_level = hot_standby # minimal, archive, hot_standby or logical
hot_standby = on # "on" allows queries during recovery
#hot_standby_feedback = off # send info from standby to prevent
[omm@pg-node01 ~]$ 🟢 2、参数修改----主节点pg-node01与备机pd-node02都要修改
cat >>/opt/software/openGauss5.0/install/data/dn/postgresql.conf<<EOF
hot_standby_feedback = on
EOF🟢 3、修改完成后,检查参数,重启数据库服务
###🟢检查参数是否修改成功
[omm@pg-node01 ~]$ more /opt/software/openGauss5.0/install/data/dn/postgresql.conf | grep hot_standby
###🟢开启openGauss数据库服务
[omm@pg-node01 ~]$ gs_om -t start
###🟢openGauss数据库服务状态查看
[omm@pg-node01 ~]$ gs_om -t status --detail
- 🟢 参数修改结果
- 🟢 数据库重启结果
🔰 5.3 主备功能测试
###🟢 1、切换至omm用户
[root@pg-node01 ~]# su - omm
###🟢 2、登录数据库postgres,端口15600
[omm@pg-node01 ~]$ gsql -d postgres -p 15600
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:07:56 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.####🟢查看 opengauss 数据库版本
openGauss=# select version(); version
------------------------------------------------------------------------------------------------------------------------------------------------------(openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:07:56 commit 0 last mr on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)####🟢查看 opengauss 数据库的对应 pg 版本
openGauss=# show server_version;server_version
----------------9.2.4
(1 row)openGauss=# ###🟢 3、pg-node01主库创建数据测试主备同步功能####🟢创建t_user表,并插入9条人员数据
CREATE TABLE t_user(id int,name varchar,age int); INSERT INTO t_user(id, name, age) VALUES
(1001, 'Ross',17),
(1002, 'Julie',19),
(1003, 'Tom',20),
(1004, 'Joan',21),
(1005, 'Joes',18),
(1006, 'Lily',19),
(1007, 'Linda',17),
(1008, 'Kim',19),
(1009, 'Annie ',16);
###🟢 4、pg-node02 备库库查询检测
###🟢 1、切换至omm用户
[root@pg-node01 ~]# su - omm
###🟢 2、登录数据库postgres,端口15600
[omm@pg-node01 ~]$ gsql -d postgres -p 15600
###🟢 3、查询检测
openGauss=# select * from t_user;
--------------------------------✅至此openGauss一主一备搭建完成
🔻 六、openGauss简单使用
🔰 6.1 启停openGauss数据库服务
###🟢 停止openGauss数据库服务
[omm@pg-node01 ~]$ gs_om -t stop
###🟢 开启openGauss数据库服务
[omm@pg-node01 ~]$ gs_om -t start
###🟢 openGauss数据库服务状态查看
[omm@pg-node01 ~]$ gs_om -t status --detail
###🟢 重启openGauss数据库服务
[omm@pg-node01 ~]$ gs_om -t restart
🔰 6.2 安装生成的目录
安装后的目录及各目录下的文件。
🔻 总结—温故知新
❓ 该章详细介绍和实现了openGauss5.0企业版一主一备集群搭建部署。
❓ 远程访问等配置见上一篇《【通过Data Studio连接openGauss】---快速入门》
👈【上一篇】 | 💖The End💖 点点关注,收藏不迷路💖 | 【下一篇】👉 |
这篇关于实现【openGauss5.0企业版】一主一备集群搭建部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!