欧拉 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

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

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

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保存并退出修改

reboot
6.禁用 THP
编辑 /etc/default/grub 或 /boot/grub2/grub.cfg(openEuler 通常用 grub2):
vi /etc/default/grub
找到这一行:
GRUB_CMDLINE_LINUX="…"
在引号内追加:
transparent_hugepage=never
然后更新 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 会输出具体不合格项。
所有检查项目的状态应该都为“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 等)、目录、依赖。
这里使用的密码是Admin@123
检查下omm用户的环境变量:
su - omm
echo \$PGHOST
echo \$GAUSS_HOME
echo \$PATH | grep gauss
echo \$GAUSSHOME
echo \$GPHOME
echo \$LD_LIBRARY_PATH

正常应该都能返回正确的路径信息才对
查看或编辑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
安装成功后,验证一下:
gs_om -t status
或gs_om -t status --detail
10.连接数据库测试
gsql -d postgres -p 15400 -r
出现 postgres=# 提示符就代表连接成功
输入 \l 可以查看数据库列表,\d 查看表结构

如果安装中因人为原因异常中断了,可执行如下命令删除,再重新安装
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方式编译。

