背景
最近项目在使用openGauss数据库,当初选择时综合考虑华为大厂背景、国产开源、免费使用,以及我也拥有openGauss的HCIA证书,对openGauss较为熟悉,所以选择openGauss。两年前初次部署选的是2.1.0版本,目前社区已经出了5.1.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年维护支持。
一、环境准备 1.华为云购买两台ECS 如图:一主一备部署需要准备两台服务器分别作为主机和备机,操作系统仍然用openEuler 20.03 LTS,CPU选择的制式是X86。说明:内存最少需要16G。
Tips:官网要求最小内存32G,考虑到卡里余额,我只买了4核16G的机器,也可以安装成功。
1.1查看openEuler版本,操作系统版本及CPU的制式是基础 [root@ecs-caa2 ~]# cat /etc/openEuler-release openEuler release 20.03(LTS)
1.2查看CPU模式 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit
注意:X86的CPU,下载安装包的时候记得要下载X86的。如果下了arm架构的会有其他莫名其妙的报错。相信不会有人犯这样的错误除了我。
1.3操作系统环境准备
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:wgethttps://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86_openEuler/openGauss-5.0.0-openEuler-64bit-all.tar.gz
解压安装包
tar-zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gztarzxvf 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.dNAME=”openEuler” 上传文件:openEulerOS.repo到该目录下。 执行命令:yum clean all 执行命令:yum makecache (执行命令的服务器需要有外网访问的权限)
1.Expect: yum install expect 2.其他 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
1)关共享内存 (主备机都要执行)
swapoff -a 2)关闭RemoveIPC(主备机都要执行),修改“RemoveIPC”值为“no”。
vi /etc/systemd/logind.conf
3)检查hostname与/etc/hostname是否一致(主备机都要执行)
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文件了(我实验的路径是按照默认,具体项目可根据实际情况调整文件路径)。
2.1集群参数配置:
2.2主机参数配置:
2.3备机参数配置: 配置完后的xml文件放在openGauss/xmlfile文件夹下面。
[root@bogon xmlfile]# ls /opt/software/openGauss/xmlfile/ cluster_config.xml 需要赋予xmlfile文件夹权限:
chmod 755 -R /opt/software/openGauss/xmlfile/NAME=”openEuler” 二、预安装
- 执行preinstall命令: ./script/gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/xmlfile/cluster_config.xml Preinstall过程中会需要几次提示和输入几次密码,按照提示输入响应密码并妥善记录。
-
提示输入omm用户的密码:
-
再次输入omm用户的密码:
Preinstall成功结束后会有如下提示:
4. 一些安装过程由于粗心遇到的小问题,根据提示修改后重新执行即可。 如果xml文件名或者文件夹错误,则会报错如下:
如果xml文件里面的hostname和实际的hostname不一致,则会报错如下:
三、安装
- 安装命令需要用omm用户执行,先切换至omm; su omm gs_install -X /opt/software/openGauss/xmlfile/cluster_config.xml 2. 如果没有赋予xmlfile文件夹的权限,则会报错: [GAUSS-50236]:the /opt/software/openGauss/xmlfile/cluster_config.xml does not exist
or the permission on the upper-layer directory is insufficient. 3. 赋予权限: chmod 755 -R /opt/software/openGauss/xmlfile/ chmod 755 -R /opt/software/openGauss/script 赋予权限时要用root用户,赋予后重新切换为omm用户进行安装。
- 安装过程需要输入数据库密码,输入并妥善记录。
5. 安装完成后会有如下提示:
四、启动和集群状态检查
- 启动:gs_om -t restart
2. 集群状态检查:gs_om -t status –detail
五、主备切换
- 登录备机,查看集群状态 gs_om -t status –deta服务器托管网il
- 备机升主,更新配置文件 gs_ctl switchover -D /opt/huawei/install/data/dn
- 重新查看集群状态,发现主备机已经互相切换。
六、一些其他操作 修改端口号:由于2.0默认端口号是26000,我安装完成后把端口号又改为了26000。修改postgresql.conf文件和pg_hba.conf文件的部分配置,以便可以远程连接数据库,注意修改完后需重启集群才生效。
七、本文作者 本文内容来自于数据库领域资深技术专家赵锋老师,OpenHarmony WEB3 TSG成员。
先后就职于大唐电信、华为和软通动力,拥有多年项目开发,设计和优化运维经验。在数据库领域摸爬滚打多年,经历过Oracle,DB2和SQL Server的时代,国产数据库崛起后,对华为GaussDB系列数据库进行了深入学习和研究,获得华为GaussDB HICA、GaussDB HCIP、GaussDB HICA SI以及openGauss HCIA证书。致力于国产开源数据库在业务项目中的实践和应用。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
在 Vue.js 的设置函数中访问 $vuetify 实例可以通过以下步骤来实现: 首先,在 Vue 组件的 created 钩子函数中访问 $vuetify 实例。created 钩子函数在 Vue 实例创建之后立即调用。 export default { …