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

news2024/12/23 14:24:47

【实现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/enabled
  		 
echo '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@klgdj ~]# chmod +x /etc/rc.d/rc.local
[root@klgdj ~]# /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_64bit
              
    A2. [ 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 Null
        Warning 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@klgdj ~]$ gs_om -t stop
###🟢 openGauss数据库服务状态再次检查
[omm@klgdj ~]$ 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@klgdj ~]$ gs_om -t stop
###🟢 开启openGauss数据库服务
[omm@klgdj ~]$ gs_om -t start
###🟢 openGauss数据库服务状态查看
[omm@klgdj ~]$ gs_om -t status --detail
###🟢 重启openGauss数据库服务
[omm@klgdj ~]$ gs_om -t restart

🔰 6.2 安装生成的目录

安装后的目录及各目录下的文件。

在这里插入图片描述

🔻 总结—温故知新

❓ 该章详细介绍和实现了openGauss5.0企业版一主一备搭建部署。
❓ 远程访问等配置见上一篇《【通过Data Studio连接openGauss】---快速入门》

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【react】创建启动react项目和跨域代理:

文章目录 1、创建启动react项目&#xff1a;2、跨域代理&#xff1a;【1】文档&#xff1a;[https://create-react-app.dev/docs/proxying-api-requests-in-development/](https://create-react-app.dev/docs/proxying-api-requests-in-development/)【2】src/setupProxy.js: 1…

阿姆斯特丹大学Max Welling教授-深度学习和自然科学

目录 简介 AI4Science & Science4AI 深度学习简介 AI4Science Science4AI 总结/结束语 参考 简介 人工智能一直与自然科学有着深厚的联系。 人工神经网络最初被认为是生物神经网络的抽象&#xff0c;许多后续算法&#xff08;例如强化学习&#xff09;也是如此。 神经…

springcloud actuator暴露端点漏洞修复

前段时间网络安全的同事突然通知系统漏洞&#xff0c;swagger漏洞和暴露多余端点等&#xff0c;可能会泄露信息。刚开始只是修改了相关配置。如下&#xff1a; 更改config配置 management:security:enabled: true security:user:name: xxxpassword: xxxbasic:enabled: trueen…

配置tensorflow1.15版本遇到的问题:conda环境管理/tensorflow历史版本下载/pycharm中如何使用conda中的虚拟环境

0、前言&#xff1a; 我之前在做配置环境&#xff0c;或者不懂的操作时&#xff0c;总是遇到问题在csdn或者网上搜就行了&#xff0c;然后解决问题之后&#xff0c;也不知道期间搜了哪些知识。也记不住一些修改的地方&#xff0c;这就导致&#xff0c;我十分担心好不容易搭好的…

spring系列-SpringCloud

SpringCloud概述 微服务概述 什么是微服务 目前的微服务并没有一个统一的标准&#xff0c;一般是以业务来划分 将传统的一站式应用&#xff0c;拆分成一个个的服务&#xff0c;彻底去耦合&#xff0c;一个微服务就是单功能业务&#xff0c;只做一件事。 与微服务相对的叫巨石 …

“提高个人生产力:思维导图在时间管理和计划中的应用“

在高效成为当今时代职场人高频谈论的一个词后&#xff0c;时间管理和计划的重要性也日渐显现。一个好的时间管理和计划可以在不知不觉中有效帮助我们更加合理的安排时间&#xff0c;保证工作的有序进行和按时完成。通过合理的协调工作与休息之间的关系&#xff0c;避免我们浪费…

15、服务端实战:数据库工具封装

在了解完 NestJS 的基础配置之后&#xff0c;服务端的内容将引来一个比较重要的环节&#xff1a;数据库。 因为数据库的内容比较多&#xff0c;所以相关内容将分为两个章节来展开讨论&#xff1a; 数据库工具封装 - 将封装统一的数据库操作工具类&#xff0c;方便后期开发于集…

识别肿瘤内微生物的生物信息学工具—MEGA

谷禾健康 已有研究证明宿主微生物在癌症预防和治疗反应中的关键作用&#xff0c;了解宿主微生物和癌症之间的相互作用&#xff0c;可以推动癌症诊断和微生物治疗(即用微生物作为药物)。 然而肿瘤内微生物组数据通常是复杂的&#xff0c;想要厘清相互关系也是极为困难的&#xf…

低代码平台——少量编码即可快速生成应用程序

低代码平台&#xff0c;即无需编码或通过少量代码就可以快速生成应用程序的开发平台。 低代码平台面向的是IT或者平民程序员&#xff0c;解决传统软件开发模式带来的周期长、成本高等问题&#xff0c;客户群体主要为软件开发公司或者拥有IT的中大型企业。而零代码&#xff08;N…

API接口测试工具的几个特色

API接口测试工具在软件开发过程中起着举足轻重的作用。它们帮助测试人员快速发现和解决API接口的问题&#xff0c;并确保系统的稳定性和性能。本文将介绍API接口测试工具的几个特色&#xff0c;以及为什么它们对测试人员来说非常重要。 首先&#xff0c;API接口测试工具的一个特…

【uniapp】学习之【生命周期】

uniapp生命周期 uni-app框架的生命周期分为两种 &#xff1a; 应用中的生命周期 和 页面内的生命周期 uni-app 应用生命周期 uni-app 页面生命周期

微信公众号本地开发调试 - 无公网IP —— 内网穿透

文章目录 前言1. 配置本地服务器2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道 3. 测试公网访问4. 固定域名4.1 保留一个二级子域名4.2 配置二级子域名 5. 使用固定二级子域名进行微信开发 前言 在微信公众号开发中&#xff0c;微信要求开发者需要拥有自己的服务器资源来…

软考:中级软件设计师:进程死锁,死锁的预防和避免,银行算法家,

软考&#xff1a;中级软件设计师:进程死锁 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &…

STM32:使用RS485和多摩川编码器通信

本文主要讲使用STM32F767和绝对式多摩川TS5700N8501编码器通信的流程和注意事项。 首先使用STM32CubeMX生成RS485驱动部分功能代码&#xff0c;注意该款编码器的波特率是2.5Mbps。 注意使能的GPIO可以使用其他管脚&#xff0c;我们的主控板使用的是PA8。前期可以这么配置。 配…

zabbix的安装

前提 作为一个运维&#xff0c;需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等&#xff0c;利用监控系统的数据去了解网站上线发布的结果和健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器…

Linux—实操篇:用户管理

1、基本介绍 Linux系统是一个多用户多任务的操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个 账号&#xff0c;然后以这个账号的身份进入系统。 2、添加用户 基本语法&#xff1a; useradd 用户名 细节说明&#xff1a; 1、…

【Kafka】Kafka基础操作笔记

【Kafka】Kafka基础操作笔记 文章目录 【Kafka】Kafka基础操作笔记1. 两种模式1.1 点对点模式1.2 发布/订阅模式 2. 基础架构3. Topic命令行操作3.1 查看 Topic 操作3.2 创建 Topic3.3 查看所有 Topic3.4 查看 Topic 的详情3.5 修改分区数3.6 删除 Topic 1. 两种模式 Kafka作为…

Linux设备驱动基础04:Linux设备驱动中的互斥与同步(部分)

1 并发与竞态 1.1 竞态概念 1. 并发&#xff08;Concurrency&#xff09;是指多个执行单元在同一时间段内执行&#xff08;但并不一定在同一时刻&#xff09;&#xff0c;而并发的执行单元对共享资源&#xff08;包括硬件资源和软件资源&#xff09;的访问就会导致竞态&#…

期货程序化交易软件文华财经和无限易那个成交速度快?自编软件能不能接CTP通道?

期货程序化交易软件是指可以根据预设的策略和条件&#xff0c;自动执行买卖指令的软件。期货程序化交易软件有很多种&#xff0c;不同的软件有不同的特点和优劣&#xff0c;选择哪一种要根据自己的需求和偏好。 期货程序化交易是指将交易思路用编程语言编写成计算机可以执行的指…

Zabbix 6.0 介绍及部署

目录 一、Zabbix 6.0 介绍1. 简介2. **利用一个优秀的监控软件带来的好处**3. **zabbix 6.0 的功能组件**4.zabbix 监控原理 二、Zabbix 6.0 部署 一、Zabbix 6.0 介绍 1. 简介 Zabbix 是由 Alexei Vladishev 创建&#xff0c;目前是由 Zabbix SIA 在持续开发和提供支持。zab…