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

老老老JR老北
发布于 2023-9-4 11:53
浏览
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、硬件环境要求

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

2、软件环境要求

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

3、依赖包要求

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

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

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

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的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

继续解压安装包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

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

2、开始安装

  • 切换用户必须使用上面预安装指定的用户进行安装

su – omm
  • 开始安装使用XML配置文件

需要输入密码,密码要求:最少包含8个字符。不能和用户名、当前密码(ALTER)、或当前密码反序相同。至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。

gs_install -X /opt/software/og.xml

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

  • 验证

su - omm
gs_om -t status

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

五、卸载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

【我和openGauss的故事】基于openEuler 22.03LTS 安装 单机openGauss 5.0.0企业版数据库-鸿蒙开发者社区

  • 解决

 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

分类
标签
已于2023-9-4 11:53:00修改
收藏
回复
举报
回复
    相关推荐