参考链接:
https://zhuanlan.zhihu.com/p/625663577
https://www.yii666.com/blog/527929.html
https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/InstallationGuide/InstallationGuide.html
背景:
有个小DEMO项目在用OpenGauss数据库,当初选型的时候综合考虑华为大厂背景,国产开源,免费使用,以及我自己也拥有OpenGauss的HCIA证书,对OpenGauss较为熟悉所以选的OpenGauss。
但两年前初次部署选的是2.1.0版本,目前社区已经出了5.0.0版本了,作为项目使用也得替换为LTS版本,所以进行此次5.0.0企业版的安装。且通过一主一备的部署方式增加数据的可靠性。
题外话:关于OpenGauss的版本号
openGauss版本号采用点分位命名规则(X.Y.Z)模式,其中X.0.0表示LTS版本,X.Y.0表示preview版本,Z表示补丁版本。
LTS版本发布间隔周期1年,社区提供3年维护支持。
preview版本发布间隔周期1年,社区提供0.5年维护支持。
环境准备:
华为云购买两台ECS
如图:
一主一备部署需要准备两台服务器分别作为主机和备机,操作系统仍然用
openEuler 20.03 LTS,CPU选择的制式是X86。
说明:内存最少需要16G,我2核4G安装的时候报错,内存不够。
官网要求的是最小内存32G,考虑到我卡里的余额,我还是只买了4核16G的机器,也可以安装成功。
- 查看openEuler版本,操作系统版本及CPU的制式是基础:
[root@ecs-caa2 ~]# cat /etc/openEuler-release
openEuler release 20.03 (LTS)
- 查看CPU模式
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
注意:X86的CPU,下载安装包的时候记得要下载X86的。如果下了arm架构的会有其他莫名其妙的报错。相信不会有人犯这样的错误除了我。
- 操作系统环境准备
vi /etc/profile export LANG=en_US.UTF-8 source /etc/profile
cd /usr/bin mv python python.bak ln -s python3 /usr/bin/python python -V
创建目录: mkdir /opc/software/openGauss/ 下载安装包: x86: 解压安装包: tar -zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gz tar zxvf openGauss-5.0.0-openEuler-64bit-om.tar.gz 修改目录权限: chmod 755 -R /opt/software chmod 755 -R /opt/software/openGauss/script/
cd /etc/yum.repos.d 上传文件:openEulerOS.repo到该目录下。 执行命令:yum clean all 执行命令:yum makecache (执行命令的服务器需要有外网访问的权限)
yum install expect
yum install -y bzip2 bzip2-devel curl libaio libaio-devel readline-devel yum install libaio* -y
vim /etc/selinux/config SELINUX=disabled 重启系统:reboot 检查:systemctl status firewalld 若仍然是active(running)状态,则执行下面两个命令: systemctl disable firewalld.service systemctl stop firewalld.service 再次检查:systemctl status firewalld
swapoff -a
vi /etc/systemd/logind.conf
Hostname cat /etc/hosts cat /etc/hostname 注意:hostname文件中不能有其他内容,我这边之前包含了注释的localhost导致报错如下: [FAILURE] bogon: [GAUSS-51248] : The hostname(bogon) may be not same with hostname(/etc/hostname) Command: "pssh -s -H bogon 'cat /etc/hostname'". Error: bogon #localhost.localdomain [FAILURE] bogon2: [GAUSS-51248] : The hostname(bogon) may be not same with hostname(/etc/hostname) Command: "pssh -s -H bogon 'cat /etc/hostname'". Error: Bogon 红框中的内容删除掉后执行预安装成功。 注意除了下载安装包以外,其余关于环境的准备,需要在主备两台机器都进行操作。 |
- 集群配置XML文件准备:
最主要的工作量就在准备XML文件了(我实验的路径是按照默认,具体项目可根据实际情况调整文件路径)。
- 集群参数配置:
<?xml version="1.0" encoding="utf-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="opengauss" /> <PARAM name="nodeNames" value="db1,db2"/> <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" /> <PARAM name="corePath" value="/opt/huawei/corefile"/> <PARAM name="backIp1s" value="192.168.197.18,192.168.197.19"/> </CLUSTER> |
- 主机参数配置:
<DEVICE sn="db1"> <PARAM name="name" value="db1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="192.168.197.18"/> <PARAM name="sshIp1" value="192.168.197.19"/> <!-- dn --> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="15400"/> <!--这个参数很关键,和单机版有明显区别,其中红色字体的为需要增加的内容,配置备机的数据目录--> <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,db2,/opt/huawei/install/data/dn"/> <PARAM name="dataNode1_syncNum" value="0"/> </DEVICE> |
- 备机参数配置:
<DEVICE sn="bogon2"> <PARAM name="name" value="db2"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="192.168.197.19"/> <PARAM name="sshIp1" value="192.168.197.19"/> <!-- dn --> </DEVICE> <!--和单机版相比,不用配置备机的dbnode信息,如果配置了,则安装完成后,备机也会处于主机状态--> |
配置完后的xml文件放在openGauss/xmlfile文件夹下面。
[root@bogon xmlfile]# ls /opt/software/openGauss/xmlfile/
cluster_config.xml
需要赋予xmlfile文件夹权限:
chmod 755 -R /opt/software/openGauss/xmlfile/
预安装:
执行preinstall命令:
./script/gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/xmlfile/cluster_config.xml
Preinstall过程中会需要几次提示和输入几次密码,按照提示输入响应密码并妥善记录。
提示输入omm用户的密码:
再次输入omm用户的密码:
Preinstall成功结束后会有如下提示。
一些安装过程由于粗心遇到的小问题,根据提示修改后重新执行即可:
如果xml文件名或者文件夹错误,则会报错如下:
如果xml文件里面的hostname和实际的hostname不一致,则会报错如下:
安装:
安装命令需要用omm用户执行,先切换至omm;
su omm
gs_install -X /opt/software/openGauss/xmlfile/cluster_config.xml
如果没有赋予xmlfile文件夹的权限,则会报错:
[GAUSS-50236] : The /opt/software/openGauss/xmlfile/cluster_config.xml does not exist or the permission on the upper-layer directory is insufficient.
赋予权限:
chmod 755 -R /opt/software/openGauss/xmlfile/
chmod 755 -R /opt/software/openGauss/script
赋予权限时要用root用户,赋予后重新切换为omm用户进行安装。
安装过程需要输入数据库密码,输入并妥善记录。
安装完成后会有如下提示:
启动和集群状态检查:
启动:gs_om -t restart
集群状态检查:gs_om -t status --detail
主备切换:
- 登录备机,查看集群状态
gs_om -t status --detail
- 备机升主,更新配置文件
gs_ctl switchover -D /opt/huawei/install/data/dn
- 重新查看集群状态,发现主备机已经互相切换。
一些其他额外操作:
修改端口号:
(由于2.0默认端口号是26000,我们代码里面写的都是26000,所以我安装完成后把端口号又改为了26000)。
修改postgresql.conf文件,修改完后需重启集群。
vi /opt/uawei/install/data/dn/postgresql.conf
修改可远程访问:
修改postgresql.conf文件和pg_hba.conf文件,修改完后需重启集群。
vi /opt/huawei/install/data/dn/postgresql.conf
vi /opt/huawei/install/data/dn/pg_hba.conf
或
gs_guc reload -N all -I all -h "host all all 0.0.0.0/0 sha256"




