实现【openGauss5.0企业版】一主一备集群搭建部署

2023-10-13 10:10

本文主要是介绍实现【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、复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU1、功能调试最小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企业版】一主一备集群搭建部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202490

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time