欧拉 openEuler 2403 LTS 安装华为 openGauss 高斯数据库

目录

欧拉openEuler 2403 LTS 系统安装华为openGauss高斯企业版数据库笔记。

1.下载安装包到指定目录

https://opengauss.org/zh/download

以root或普通用户登录待安装openGauss的任意主机,并按规划创建存放安装包的目录

mkdir -p /opt/software/openGauss
cd /opt/software/openGauss
tar -zxvf openGauss-All-x.x.x-openEuler20.03-x86_64.tar.gz
tar -zxvf openGauss-OM-x.x.x-openEuler20.03-x86_64.tar.gz
chmod 755 -R /opt/software

不建议把安装包的存放目录规划到openGauss用户的根目录或其子目录下,可能导致权限问题
将安装包“openGauss-All-x.x.x-openEuler20.03-x86_64.tar.gz”和配置文件“cluster_config.xml”都上传至上一步所创建的目录中。
在第一步所创建的安装包的目录下,解压安装包openGauss-All-x.x.x-openEuler20.03-x86_64.tar.gz。安装包解压后,会有OM安装包和Server安装包。继续解压OM安装包,会在/opt/software/openGauss路径下自动生成script子目录,并且在script目录下生成gs_preinstall等各种OM工具脚本。

2.解压企业版安装包(版本: 7.0.0-RC2)

dnf install tar  
tar -zxvf openGauss-All-7.0.0-RC2-openEuler24.03-x86_64.tar.gz 

2687985737ae92f2a0253b154cb0fba7.png

tar -jxf openGauss-Server-7.0.0-RC2-openEuler24.03-x86_64.tar.bz2  
ls -lb  

604c7c5b6f0799a14ac1743cb8c16ee2.png

3.安装 Python3.11 环境

1)安装编译 Python 所需的依赖:

sudo dnf update -y
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y \
    wget openssl-devel bzip2-devel libffi-devel zlib-devel \
    xz-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel \
    uuid-devel

2)下载 Python 3.11 源码

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz
sudo tar -xzvf Python-3.11.0.tgz
cd Python-3.11.0

(版本号可以换成你想要的 3.11.x)

3)配置编译参数(含 –enable-shared)

sudo ./configure \
    --prefix=/usr/local/python3.11 \
    --enable-optimizations \
    --enable-shared \
    LDFLAGS="-Wl,-rpath /usr/local/python3.11/lib"

参数说明:
--prefix:指定安装路径(推荐不要覆盖系统自带 Python)。
--enable-optimizations:开启性能优化(编译会慢一些)。
--enable-shared:生成 libpython3.11.so 动态库。
LDFLAGS="-Wl,-rpath …":防止运行时找不到共享库。

4)编译并安装

sudo make -j$(nproc)
sudo make altinstall

(用 altinstall 而不是 install,避免覆盖系统默认的 python3)

5)配置环境变量

echo 'export PATH=/usr/local/python3.11/bin:$PATH' | sudo tee /etc/profile.d/python3.11.sh
source /etc/profile.d/python3.11.sh

6)验证安装,验证共享库

python3.11 -V
ls /usr/local/python3.11/lib | grep libpython

f32bb76c61a88045acc5e10991aa5a0c.png

7)建立系统链接 如果你想全局默认使用 Python3.11(可选,可能会破坏原来的python):

sudo ln -sf /usr/local/python3.11/bin/python3.11 /usr/bin/python3.11
sudo ln -sf /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3.11

4.安装软件依赖

dnf install libaio-devel readline-devel expect libedit-devel libxml2-devel lz4-devel numactl-devel unixODBC-devel java-1.8.0-openjdk-devel

关闭防火墙并禁止开机重启

systemctl disable firewalld.service
systemctl stop firewalld.service

5.关闭SELINUX

vim /etc/selinux/config
修改“SELINUX”的值“disabled”,执行:wq保存并退出修改
1114696506ebc5ee20536ae0c2b0c446.png
67a6fde3f53bbda028163f00d2bd9701.png
reboot

6.禁用 THP

编辑 /etc/default/grub 或 /boot/grub2/grub.cfg(openEuler 通常用 grub2):
vi /etc/default/grub
找到这一行:
GRUB_CMDLINE_LINUX="…"
在引号内追加:
transparent_hugepage=never
2271ee58475fb5316eb6d51d58ec2d13.png
然后更新 grub 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg (BIOS 启动的)
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg (UEFI启动的)
立即关闭当前会话中的 THP:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
然后验证:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
应返回:
always madvise [never]
always defer defer+madvise madvise [never]

验证禁用 THP 是否成功:
cat /sys/kernel/mm/transparent_hugepage/enabled
返回类似如下信息,即代表禁用 THP 是否成功:
always madvise [never]
其中 [never] 表示当前生效值为 “never”,即 THP 已关闭

安装数据库前,执行如下一整行代码来检查环境是否符合要求:

/opt/software/openGauss/script/gs_checkos -i A -h localhost.localdomain -X /opt/software/openGauss/cluster_config.xml --skip-item-num=A11 --detail

命令解释:
-i A 表示检查所有系统项;
--skip-item-num=A11 是跳过交换区检查;
--detail 会输出具体不合格项。
5e8d0696839f1222a8e59373d43f43ed.png
所有检查项目的状态应该都为“Normal”。上图的 “ A5. [ Swap memory status ] : Warning ” 状态为“Warning”,可以忽略,只要 swap 不是 0 即可(OpenGauss 推荐 swap >= 1.5 × 内存,但非强制)

7.单节点配置文件示例

/opt/software/openGauss/cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="dbCluster" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="node1_hostname" />
        <!-- 数据库安装目录-->
        <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,与数据库节点名称列表一一对应 -->
        <!-- 如果用ipv6 替换ipv4地址即可 如:<PARAM name="backIp1s" value="2407:xxxx:xxxx:xxxx:xxxx:xxxx:caa:2335"/> -->
        <PARAM name="backIp1s" value="192.168.0.1"/> 
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="node1_hostname">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="node1_hostname"/>
            <!-- 节点1所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <!-- 用ipv6安装部署时 换上ipv6地址即可,后面xml文件示例也是同样操作 -->
            <PARAM name="backIp1" value="192.168.0.1"/>
            <PARAM name="sshIp1" value="192.168.0.1"/>
               
        <!--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>

其中主机名和IP必须与实际环境相对应,例如: /opt/software/openGauss/cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="dbCluster" />
        <PARAM name="nodeNames" value="localhost.localdomain" />
        <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.0.210" />
    </CLUSTER>
    <DEVICELIST>
        <DEVICE sn="node1_hostname">
            <PARAM name="name" value="localhost.localdomain" />
            <PARAM name="azName" value="AZ1" />
            <PARAM name="azPriority" value="1" />
            <PARAM name="backIp1" value="192.168.0.210" />
            <PARAM name="sshIp1" value="192.168.0.210" />
            <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>

8.初始化安装环境(gs_preinstall)

执行(交互模式,创建用户/互信):

cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
chown -R omm:dbgrp /opt/software

提示输入 root/omm 密码,建立互信;自动创建用户组 dbgrp、用户 omm,设置内核参数(shmall/shmmax 等)、目录、依赖。
5076e7dc89077a3e4edf68101d8dbac9.png
这里使用的密码是Admin@123
检查下omm用户的环境变量:

su - omm  
echo \$PGHOST  
echo \$GAUSS_HOME  
echo \$PATH | grep gauss  
echo \$GAUSSHOME  
echo \$GPHOME  
echo \$LD_LIBRARY_PATH

3614a6d013436c95892065b613698fdb.png
正常应该都能返回正确的路径信息才对

查看或编辑omm用户的环境变量配置文件
vi /home/omm/.bashrc
如果缺少omm用户环境变量,则要手动添加,比如添加这一行:
export GAUSS_HOME=/opt/huawei/install/app
修改后重新加载环境:
source /home/omm/.bashrc

9.执行安装(gs_install)

su - omm
cd /opt/software/openGauss/script/
gs_install -X /opt/software/openGauss/cluster_config.xml

3fbc9a1be93b7af1defeee84f88f3ea6.png 安装成功后,验证一下: gs_om -t status

gs_om -t status --detail
cb37e7785e2c56e6510c6df7ea3169f1.png

10.连接数据库测试

gsql -d postgres -p 15400 -r
出现 postgres=# 提示符就代表连接成功 输入 \l 可以查看数据库列表,\d 查看表结构 6bb334844f42e6b25f22bcb9d8c65818.png

如果安装中因人为原因异常中断了,可执行如下命令删除,再重新安装

gs_uninstall --delete-data -L  
unset GAUSSHOME 

或以 root 执行:

su - root
rm -rf /opt/huawei/install
rm -rf /opt/huawei/tmp
rm -rf /var/log/omm
rm -rf /home/omm/gauss_om
rm -rf /home/omm/.gspylib*
rm -rf /home/omm/.gs*
unset GAUSSHOME

参考官方文档
https://docs.opengauss.org/zh/

初始化安装环境
https://docs.opengauss.org/zh/docs/7.0.0-RC2/docs/InstallationGuide/初始化安装环境.html

企业版本准备软硬件安装环境
https://docs.opengauss.org/zh/docs/7.0.0-RC2/docs/InstallationGuide/准备软硬件安装环境_企业版.html
其中 openEuler 2403 LTS 支持python3.11 ,python需要通过–enable-shared方式编译。