【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库

2023/07/21 18:00
阅读数 1.3K
AI总结

前言

一、下载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

12、关闭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

13、设置root用户远程登录

修改PermitRootLogin配置,允许用户远程登录。

a. 打开sshd_config文件。

vim /etc/ssh/sshd_config

b. 修改权限配置,可以使用以下两种方式实现:
注释掉“PermitRootLogin no”。

#PermitRootLogin no

将“PermitRootLogin”改为“yes”。

PermitRootLogin yes

14、配置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

15、创建用户和用户组

为了实现安装过程中安装帐户权限最小化,及安装后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

16、创建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>

17、解压安装包

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

18、设置/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(openGauss)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
AI总结
返回顶部
顶部