【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库
前言
一、下载openEuler 22.03LTS
openEuler 22.03LTS下载地址:https://www.openeuler.org/zh/download/
二、下载openGauss 5.0.0
openGauss 5.0.0企业版数据库下载地址:https://opengauss.org/zh/download/
三、环境准备
1、硬件环境要求
2、软件环境要求
3、依赖包要求
dnf -y install libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl python3 redhat-lsb-core
这有个坑:redhat-lsb-core这个包
直接使用openEuler的源安装redhat-lsb-core
[root@client1 yum.repos.d]# dnf -y install redhat-lsb-core
Last metadata expiration check: 0:16:30 ago on Wed 12 Jul 2023 11:26:06 AM CST.
No match for argument: redhat-lsb-core
Error: Unable to find a match: redhat-lsb-core
没有这个包。
我配置了一个网易的yum源进行安装,然后报下面这个错。
Error: Transaction test error:
file /usr/bin/last from install of sysvinit-tools-2.88-14.dsf.el7.x86_64 conflicts with file from package util-linux-2.37.2-13.oe2203sp1.x86_64
file /usr/bin/mesg from install of sysvinit-tools-2.88-14.dsf.el7.x86_64 conflicts with file from package util-linux-2.37.2-13.oe2203sp1.x86_64
file /usr/bin/wall from install of sysvinit-tools-2.88-14.dsf.el7.x86_64 conflicts with file from package util-linux-2.37.2-13.oe2203sp1.x86_64
file /lib/lsb/init-functions from install of redhat-lsb-core-4.1-27.el7.centos.1.x86_64 conflicts with file from package openeuler-lsb-5.0-1.oe2203sp1.x86_64
file /usr/bin/lsb_release from install of redhat-lsb-core-4.1-27.el7.centos.1.x86_64 conflicts with file from package openeuler-lsb-5.0-1.oe2203sp1.x86_64
从报错中可以看出,redhat-lsb-core包和openeuler-lsb冲突了。所以这个包不用安装了。
4、关闭防火墙
目前仅支持在防火墙关闭的状态下进行安装。安装好后,可以把防火墙打开
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld
5、设置SELINUX
vim /etc/selinux/config
SELINUX=disabled
6、设置操作系统字符集编码
LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG
7、设置时区和时间
- 查询时区和修改
timedatectl
timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai
- 修改时区和时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -s "2021-04-29 15:51:50"
8、关闭swap交换内存(可选)
关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。
- 关闭
swapoff -a
- 开启
swapon -a
9、关闭virbr0网卡
ifconfig virbr0 down
systemctl disable libvirtd.service
10、关闭RemoveIPC
在各数据库节点上,关闭RemoveIPC.
- 删除
sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
- 传入参数
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service
- 使参数生效
systemctl daemon-reload
systemctl restart systemd-logind
- 验证参数的值
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
默认安装的操作系统,2个参数都是RemoveIPC=no,所以这2个参数不用修改,不过需要先查看下参数值,如果不是no,那就手动改下。
11、设置网卡MTU值
将各数据库节点的网卡MTU值设置为相同大小。
操作步骤
执行如下命令查询服务器的网卡名称。
ifconfig
使用如下命令将各数据库节点的网卡MTU值设置为相同大小。MTU值推荐8192,要求不小于1500。
ifconfig ens33 mtu 8192
12、关闭virbr0网卡
ifconfig virbr0 down
systemctl disable libvirtd.service
13、关闭HISTORY记录
为避免指令历史记录安全隐患,需关闭各主机的history指令。
步骤 1 修改根目录下/etc/profile文件。
vim /etc/profile
步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。
HISTSIZE=0
步骤 3 保存/etc/profile。
wq
步骤 4 设置/etc/profile生效。
source /etc/profile
14、设置root用户远程登录
修改PermitRootLogin配置,允许用户远程登录。
a. 打开sshd_config文件。
vim /etc/ssh/sshd_config
b. 修改权限配置,可以使用以下两种方式实现:注释掉“PermitRootLogin no”。
#PermitRootLogin no
将“PermitRootLogin”改为“yes”。
PermitRootLogin yes
15、配置Banner
修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。
a. 编辑sshd_config文件。
vim /etc/ssh/sshd_config
b. 修改Banner配置,注释掉“Banner”所在的行。
#Banner XXXX
c. 执行:wq保存并退出编辑页面。使用如下命令使设置生效。
systemctl restart sshd.service
以root用户身份重新登录。
ssh xxx.xxx.xxx.xxx
16、创建用户和用户组
为了实现安装过程中安装帐户权限最小化,及安装后openGauss的系统运行安全性,安装脚本在安装过程中会自动按照用户指定内容创建安装用户,并将此用户作为后续运行和维护openGauss的管理员帐户。
1、用户组:dbgrp
初始化安装环境时,由-G参数所指定的安装用户所属的用户组。该用户组如果不存在,则会自动创建,也可提前创建好用户组。在执行gs_preinstall脚本时会检查权限。gs_preinstall脚本会自动赋予此组中的用户对安装目录、数据目录的访问和执行权限。
2、用户:omm
初始化安装环境时,由-U参数所指定和自动创建的操作系统用户。此用户具备数据库的最高操作权限,此用户初始密码由用户指定。从安全性考虑,用户所属组是dbgrp操作:
groupadd dbgrp
useradd -g dbgrp omm
echo 'omm@123' | passwd --stdin omm
17、创建xml文件
单节点配置文件vi /opt/software/og.xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="master01" />
<!-- 数据库安装目录-->
<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.10.10"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1_hostname">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="master01"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.10.10"/>
<PARAM name="sshIp1" value="192.168.10.10"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
18、解压安装包
cd /opt/software
tar -zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gz
继续解压安装包openGauss-5.0.0-CentOS-64bit-om.tar.gz
tar -zxvf openGauss-5.0.0-CentOS-64bit-om.tar.gz
解压出来的内容比较多
chmod -R 777 /opt/software
19、设置/etc/hosts
配置了几个ip都要对应到hosts中
[root@client1 software]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.152 client1
四、开始安装
1、执行预安装脚本
- 进入命令目录
[root@client1 software]# cd /opt/software/script/
执行命令
./gs_preinstall -U omm -G dbgrp -X /opt/software/og.xml
2、开始安装
- 切换用户必须使用上面预安装指定的用户进行安装
su – omm
- 开始安装使用XML配置文件
需要输入密码,密码要求:最少包含8个字符。不能和用户名、当前密码(ALTER)、或当前密码反序相同。至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
gs_install -X /opt/software/og.xml
- 验证
su - omm
gs_om -t status
五、卸载openGauss
卸载openGauss的过程包含卸载openGauss和对openGauss服务器的环境做清理。
执行卸载
openGauss提供了卸载脚本帮助用户完整地卸载openGauss。
操作步骤
以操作系统用户omm登录数据库主节点。使用gs_uninstall卸载openGauss。
1、卸载openGauss
集群卸载
su - omm
gs_uninstall --delete-data
本地卸载
gs_uninstall --delete-data -L
2、清理环境
一键式环境清理
在openGauss卸载完成后,如果不需要在环境上重新部署openGauss,可以运行脚本gs_postuninstall对openGauss服务器上环境信息做清理。openGauss环境清理是对环境准备脚本gs_preinstall所做设置的清理。
前提条件
openGauss卸载执行成功。root用户互信可用。
只能使用root用户执行gs_postuninstall命令。
操作步骤
以root用户登录openGauss服务器。查看root用户互信是否建立,如果root用户没有建立互信,需要手工建立root用户互信。root用户
cd /opt/software/script
./gs_postuninstall -U omm -X /opt/software/og.xml --delete-user --delete-group
问题解决
1、报错1
Traceback (most recent call last):
File "/root/software/opengauss/opengauss/script/gspylib/common/Common.py", line 64, in <module>
import psutil
File "/root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/__init__.py", line 102, in <module>
from . import _pslinux as _psplatform
File "/root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/_pslinux.py", line 26, in <module>
from . import _psutil_linux as cext
ImportError: /root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/_psutil_linux.so: cannot open shared object file: No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/software/opengauss/opengauss/script/gs_preinstall", line 47, in <module>
from gspylib.common.Common import DefaultValue
File "/root/software/opengauss/opengauss/script/gspylib/common/Common.py", line 98, in <module>
import psutil
File "/root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/__init__.py", line 102, in <module>
from . import _pslinux as _psplatform
File "/root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/_pslinux.py", line 26, in <module>
from . import _psutil_linux as cext
ImportError: /root/software/opengauss/opengauss/script/gspylib/common/../../../lib/psutil/_psutil_linux.so: cannot open shared object file: No such file or directory
- 解决
pip-3 install psutil netifaces cffi pycparser cryptography pynacl bcrypt paramiko -i https://pypi.tuna.tsinghua.edu.cn/simple
重新执行
./gs_preinstall -U omm -G dbgrp -X /opt/software/og.xml --unused-third-party
文章转载自公众号:openGauss