写点什么

【我与 openGauss 的故事】openGauss 5.0 企业版主从部署,实战狂飙

作者:daydayup
  • 2023-07-20
    北京
  • 本文字数:7091 字

    阅读完需:约 23 分钟

【我与 openGauss 的故事】openGauss 5.0 企业版主从部署,实战狂飙

IT 邦德 2023-07-17 17:58 openGauss 公众号


前言


2023 年 4 月 1 日, openGauss 5.0 正式发布,本博客介绍了 openGauss 5.0 企业版主从部署的详细过程。


01 openGauss 5.0


2023 年 4 月 1 日,openGauss 5.0.0 是 openGauss 发布的第三个 LTS 版本,版本生命周期为 3 年。openGauss 5.0.0 版本与之前的版本功能特性保持兼容,在内核能力、工具链、兼容性方面全面增强。


官网下载地址:


https://opengauss.org/zh/download/


![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)


02 环境准备


操作系统


CentOS Linux release 7.9.2009 (Core)


主机 IP


主库:hostnamectl set-hostname opengauss5M


备库:hostnamectl set-hostname opengauss5B


内存


[root@Jeames ~]# free -m              total        used        free      shared  buff/cache   availableMem:           3020         281        2630           7         107        2684Swap:         10239           0       10239
复制代码


字符集确认


[root@opengauss5m ~]# localeLANG=en_US.UTF-8LC_CTYPE="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_PAPER="en_US.UTF-8"LC_NAME="en_US.UTF-8"LC_ADDRESS="en_US.UTF-8"LC_TELEPHONE="en_US.UTF-8"LC_MEASUREMENT="en_US.UTF-8"LC_IDENTIFICATION="en_US.UTF-8"
复制代码


可以在/etc/profile 文件中添加 export.UTF-8


软件依赖要求


下列依赖软件的默认安装包,若不存在下列软件,可参看软件对应的建议版本。


![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)


2.1 关闭 SeLinux


sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/configsetenforce 0
注:主库和备库同时修改,然后重启服务器[root@opengauss5m ~]# /usr/sbin/sestatusSELinux status: disabled
复制代码


2.2 关闭防火墙


注:主备库均做如下操作
1.检查防火墙是否关闭[root@opengauss5m ~]# systemctl status firewalld若防火墙状态显示为active (running),则表示防火墙未关闭若防火墙状态显示为inactive (dead),则无需再关闭防火墙
2.关闭防火墙并禁止开机重启systemctl disable firewalld.servicesystemctl stop firewalld.service
复制代码


2.3 关闭 RemoveIPC


1.修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”vi /etc/systemd/logind.confRemoveIPC=no
##重新加载配置参数systemctl daemon-reloadsystemctl restart systemd-logind
复制代码


2.4 设置 root 用户远程登录


vi /etc/ssh/sshd_config## 将“PermitRootLogin”改为“yes”PermitRootLogin yes
## 注释掉“Banner”所在的行#Banner none
## 重启生效systemctl restart sshd.service
复制代码


2.5 yum 安装依赖


注:两个节点均做如下操作
##创建挂载目录mkdir /cdrom
[root@opengauss5m ~]# ls -lrt /opt/CentOS-7-x86_64-DVD-2009.iso-rw-r--r-- 1 root root 4712300544 Apr 8 09:28 /opt/CentOS-7-x86_64-DVD-2009.iso
##挂载目录mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /cdrom
[root@opengauss5m ~]# df -THFilesystem Type Size Used Avail Use% Mounted ondevtmpfs devtmpfs 1.5G 0 1.5G 0% /devtmpfs tmpfs 1.5G 0 1.5G 0% /dev/shmtmpfs tmpfs 1.5G 11M 1.5G 1% /runtmpfs tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup/dev/mapper/centos-root xfs 96G 6.8G 89G 8% //dev/sda1 xfs 1.1G 158M 906M 15% /boottmpfs tmpfs 297M 0 297M 0% /run/user/0/dev/loop0 iso9660 4.8G 4.8G 0 100% /cdrom
##yum源配置文件[root@opengauss5m ~]# cd /etc/yum.repos.d/[root@opengauss5m yum.repos.d]# mkdir bak[root@opengauss5m yum.repos.d]# mv CentOS* bak
[root@opengauss5m yum.repos.d]# vi local.repo[base-local]name=CentOS7-localbaseurl=file:///cdromenabled=1gpgcheck=0
#清空并重载yumyum clean allyum makecache##测试yum安装yum -y install tree

##安装依赖包yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl -yyum install net-tools -y
复制代码


2.6 host 设置


注:主备2个节点均做如下设置
##主库[root@opengauss5m ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.10 opengauss5m
##备库[root@opengauss5b ~]# more /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.11 opengauss5b
复制代码


2.7 Python 安装


CentOS:支持Python 3.6.X,python需要通过--enable-shared方式编译1.依赖包安装[root@opengauss5m ~]# yum install -y zlib*[root@opengauss5m ~]# rpm -qa | grep zlibzlib-1.2.7-18.el7.x86_64zlib-devel-1.2.7-18.el7.x86_64
2.安装包下载python官网 https://www.python.org/downloads/release/python-3615/下载安装包即可安装包为:Python-3.6.15.tgz
3.解压并编译cd /opttar -zxvf Python-3.6.15.tgzcd Python-3.6.15/./configure --prefix=/usr/local/python3 --enable-shared
makemake install注意:make编译时间比较长,耐心等待
4.OS上设置python的软连接ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
5.环境校验[root@opengauss5m ~]# python -Vpython: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
出现以上报错处理方法,libpython3.6m.so.1.0复制到/usr/lib64/目录下即可
[root@opengauss5m ~]# find / -name libpython3.6m.so.1.0/usr/local/python3/lib/libpython3.6m.so.1.0/opt/Python-3.6.15/libpython3.6m.so.1.0
[root@opengauss5m ~]# cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64
[root@opengauss5m ~]# python3 -VPython 3.6.15
[root@opengauss5m ~]# pythonPython 3.6.15 (default, Apr 8 2023, 11:45:45)[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
复制代码


![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)


03 目录创建


##创建存放安装包的目录mkdir -p /opt/software/openGausschmod 755 -R /opt/software
##创建数据库软件相关目录mkdir -p /opt/openGausschmod -R 755 /opt/openGauss
复制代码


04 安装包解压


安装包下载地址: https://opengauss.org/zh/download/注:从以上网站下载企业版即可
上传到主库所在的目录:/opt/software/openGauss
##解压安装包cd /opt/software/openGausstar -zxvf openGauss-5.0.0-CentOS-64bit-all.tar.gztar -zxvf openGauss-5.0.0-CentOS-64bit-om.tar.gz
复制代码


05 XML 配置文件


安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。
本次部署以一主一备的方式创建XML配置文件
## 配置数据库名称及各项目录[root@opengauss5m ~]# find / -name cluster_config_template.xml/opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml说明:获取XML文件模板,按照实际环境配置
编辑配置XML文件:vi /opt/software/openGauss/cluster_config.xml
<?xml version="1.0" encoding="UTF-8"?><ROOT> <!-- openGauss整体信息 --> <CLUSTER> <!-- 数据库名称 --> <PARAM name="clusterName" value="opengauss" /> <!-- 数据库节点名称(hostname) --> <PARAM name="nodeNames" value="opengauss5m,opengauss5b" /> <!-- 数据库安装目录--> <PARAM name="gaussdbAppPath" value="/opt/openGauss/app" /> <!-- 日志目录--> <PARAM name="gaussdbLogPath" value="/opt/openGauss/log/omm" /> <!-- 临时文件目录--> <PARAM name="tmpMppdbPath" value="/opt/openGauss/tmp"/> <!-- 数据库工具目录--> <PARAM name="gaussdbToolPath" value="/opt/openGauss/om" /> <!-- 数据库core文件目录--> <PARAM name="corePath" value="/opt/openGauss/corefile"/> <!-- 节点IP,与数据库节点名称列表一一对应 --> <PARAM name="backIp1s" value="192.168.6.10,192.168.6.11"/> </CLUSTER> <!-- 每台服务器上的节点部署信息 --> <DEVICELIST> <!-- 节点1上的部署信息 --> <DEVICE sn="opengauss5m"> <!-- 节点1的主机名称 --> <PARAM name="name" value="opengauss5m"/> <!-- 节点1所在的AZ及AZ优先级 --> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> <PARAM name="backIp1" value="192.168.6.10"/> <PARAM name="sshIp1" value="192.168.6.10"/> <!--dn--> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="15400"/> <PARAM name="dataNode1" value="/opt/openGauss/data/dn,opengauss5b,/opt/openGauss/data/dn"/> <PARAM name="dataNode1_syncNum" value="0"/> </DEVICE>
<!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 --> <DEVICE sn="opengauss5b"> <!-- 节点2的主机名称 --> <PARAM name="name" value="opengauss5b"/> <!-- 节点2所在的AZ及AZ优先级 --> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> <PARAM name="backIp1" value="192.168.6.11"/> <PARAM name="sshIp1" value="192.168.6.11"/> </DEVICE> </DEVICELIST></ROOT>
复制代码


06 初始化安装


采用交互模式执行前置,并在执行过程中自动创建操作系统root用户互信和omm用户互信#主库执行即可[root@opengauss5m ~]# cd /opt/software/openGauss/script[root@opengauss5m script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml[GAUSS-51405] : You need to install software:expect#解决办法是安装如下依赖包yum install expect
输入集群密码:omm123
[FAILURE] opengauss5m:[GAUSS-50202] : The /opt/openGauss must be empty. Or user [omm] has write permission to directory /opt/openGauss. Because it will create symbolic link [/opt/openGauss/app] to install path [/opt/openGauss/app_a07d57c3] in gs_install process with this user.[FAILURE] opengauss5b:[GAUSS-50202] : The /opt/openGauss must be empty. Or user [omm] has write permission to directory /opt/openGauss. Because it will create symbolic link [/opt/openGauss/app] to install path [/opt/openGauss/app_a07d57c3] in gs_install process with this user.
#以上报错处理方法,然后再重新执行[root@opengauss5m script]# rm -rf /opt/openGauss[root@opengauss5m script]# chmod 775 /opt -R[root@opengauss5m script]# chown omm:dbgrp /opt -R
复制代码


![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)


07 执行安装


/opt/openGauss/app
#主库执行即可,在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码
设置的密码要符合复杂度要求:最少包含8个字符,最多包含16个字符。不能和用户名、当前密码(ALTER)、或当前密码反序相同。至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。
复制代码



08 安装验证


1.集群状态检查## 通过openGauss提供的gs_om工具可以完成数据库状态检查
以omm用户身份登录服务器。执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用
[root@opengauss5m ~]# su - ommLast login: Sat Apr 8 12:56:31 CST 2023 on pts/0[omm@opengauss5m ~]$ gs_om -t status-----------------------------------------------------------------------
cluster_name : opengausscluster_state : Normalredistributing : No
-----------------------------------------------------------------------[omm@opengauss5m ~]$ gs_om -t status --detail[ Cluster State ]
cluster_state : Normalredistributing : Nocurrent_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state---------------------------------------------------------------------------------------------1 opengauss5m 192.168.6.10 15400 6001 /opt/openGauss/data/dn P Primary Normal2 opengauss5b 192.168.6.11 15400 6002 /opt/openGauss/data/dn S Standby Normal
3.gs_om -t stop[omm@opengauss5m ~]$ gs_om -t stop
4.启动集群[omm@opengauss5m ~]$ gs_om -t start
5.登录数据库[omm@opengauss5m ~]$ gsql -d postgres -p 15400gsql ((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=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges-----------+-------+-----------+---------+-------+------------------- postgres | omm | SQL_ASCII | C | C | template0 | omm | SQL_ASCII | C | C | =c/omm + | | | | | omm=CTc/omm template1 | omm | SQL_ASCII | C | C | =c/omm + | | | | | omm=CTc/omm(3 rows)
复制代码


用户头像

daydayup

关注

还未添加个人签名 2023-07-18 加入

还未添加个人简介

评论

发布
暂无评论
【我与openGauss的故事】openGauss 5.0企业版主从部署,实战狂飙_opengauss_daydayup_InfoQ写作社区