openGauss安装部署详细教程

openGauss 作为一款企业级开源数据库,凭借卓越的性能、安全性与可扩展能力,成为企业数据库系统建设的重要选择。本文将系统讲解openGauss安装部署的完整流程,从环境规划、依赖安装、配置文件编写到数据库初始化,帮助你高效完成openGauss安装部署,掌握在openEuler等主流操作系统上进行openGauss安装部署的标准方法,并具备独立搭建生产级数据库环境的能力。

一、安装规划与环境要求

谋定而后动,周密的规划是成功安装的前提。

规划项 建议值/说明
操作系统 openEuler 22.03 LTS (x86_64)
安装用户 omm (运行用户), root (安装准备)
用户组 dbgrp
安装包路径 /opt/software/openGauss (用于存放安装包和解压文件)
程序安装路径 /opt/gauss/app (数据库程序二进制文件)
数据文件路径 /opt/gauss/data (数据库数据、日志等)

二、系统环境深度配置 (root 用户)

在正式安装 openGauss 之前,一个干净、规范的系统环境是成功的关键。以下所有操作均需使用 root 用户执行。

1. 系统参数与工具检查

首先,确保系统基础工具已安装。

bash 复制代码
# 安装 lsb_release 以便后续检查
yum install -y openeuler-lsb
# 检查操作系统版本,确保是 openEuler 22.03
lsb_release -a


接下来,关闭防火墙和 SELinux,避免安装过程中的网络和权限问题。

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 临时禁用SELinux,使其立即生效
setenforce 0

2. 配置网络与主机名

确保服务器的 /etc/hosts 文件包含了本机的 IP 地址和主机名映射。这对于集群通信至关重要。

bash 复制代码
echo "192.168.121.183 ivan" >> /etc/hosts

3. 安装核心依赖包

openGauss 依赖一些关键的系统库来保证其正常运行。

bash 复制代码
yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch python3

4. 创建用户与目录

为了安全起见,我们不应使用 root 用户直接安装和运行数据库。

bash 复制代码
# 创建用户组
groupadd dbgrp
# 创建用户并加入用户组,-d 指定家目录
useradd -g dbgrp -d /home/omm -m omm
# 为新用户设置一个强密码
passwd omm


接下来,创建我们规划好的安装和数据目录。

bash 复制代码
mkdir -p /opt/software/openGauss
chmod -R 755 /opt/software/

上图仅创建了软件包目录,我们需要创建所有规划的目录并赋予正确的所有者。

bash 复制代码
# 创建程序和数据目录
mkdir -p /opt/gauss/app /opt/gauss/data
# 将所有相关目录的所有权交给 omm 用户
chown -R omm:dbgrp /opt/software/openGauss /opt/gauss

三、准备安装包 (root 用户)

环境准备就绪后,我们前往 openGauss 官方网站下载安装包。

如上图所示,在 openGauss 官方下载页面,我们需要根据我们的服务器环境进行选择:

1.Architecture (架构) : 根据你的 CPU 架构选择,常见的服务器是 x86_64

  1. OS (操作系统) : 选择与你服务器操作系统匹配的版本,我们这里选择 openEuler 22.03 LTS

  2. Download (下载) : 点击 Enterprise (企业版) 下方的 Download 按钮。

下载完成后,将安装包(例如 openGauss-6.0.0-openEuler-64bit-all.tar.gz)上传到我们之前创建的 /opt/software/openGauss 目录下,并确保其属主为 omm

bash 复制代码
# 如果是用 root 上传的,需要修改所有者
chown omm:dbgrp /opt/software/openGauss/openGauss-*.tar.gz

四、解压与配置 (omm 用户)

从现在开始,我们将切换到 omm 用户完成后续的所有安装步骤。

bash 复制代码
# 切换到 omm 用户
su - omm
# 进入软件包所在目录
cd /opt/software/openGauss
# 解压安装包
tar -zxvf openGauss-*.tar.gz
tar -zxvf openGauss-OM-6.0.2-openEuler22.03-x86_64.tar.gz
# 进入解压后的 script 目录
cd script

配置核心 XML 文件

安装的所有配置信息都集中在 cluster_config.xml 文件中。我们直接用 cat <<'XML' 一次性写入最终配置(保持你的风格与路径)。

bash 复制代码
# 覆盖写入 cluster_config.xml(仅 DataNode,单机)
cat >/opt/software/openGauss/script/cluster_config.xml <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- 整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="dbCluster" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="ivan" />
        <!-- 数据库安装目录 -->
        <PARAM name="gaussdbAppPath" value="/opt/gauss/app" />
        <!-- 日志目录 -->
        <PARAM name="gaussdbLogPath" value="/var/log/omm" />
        <!-- 临时文件目录 -->
        <PARAM name="tmpMppdbPath" value="/opt/gauss/tmp" />
        <!-- 工具目录 -->
        <PARAM name="gaussdbToolPath" value="/opt/gauss/om" />
        <!-- 核心文件转存目录 -->
        <PARAM name="corePath" value="/opt/gauss/corefile" />
        <!-- 节点IP,与nodeNames一一对应 -->
        <PARAM name="backIp1s" value="192.168.121.183"/>
    </CLUSTER>

    <!-- 主机配置 -->
    <DEVICELIST>
        <!-- 主机名称,必须与上面的nodeNames一致 -->
        <DEVICE sn="ivan">
            <!-- 显式声明设备名 -->
            <PARAM name="name" value="ivan"/>
            <!-- AZ表示可用区,单机保持默认1即可 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 业务IP,与backIp1s一致 -->
            <PARAM name="backIp1" value="192.168.121.183"/>
            <!-- ssh IP,通常也与业务IP一致 -->
            <PARAM name="sshIp1" value="192.168.121.183"/>

            <!-- 仅部署 DataNode(单实例) -->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="15400"/>
            <PARAM name="dataNode1" value="/opt/gauss/data/dn1" />
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>
XML

你需要重点关注并确保以上几个关键参数与主机实际一致(ivan 等于 hostname 输出,IP 与 /etc/hosts 映射一致)。

五、执行安装 (omm 用户)

万事俱备,只欠东风。我们分两步执行安装。

1. 预安装检查

用 root 创建基础目录并授予权限(并准备 OM 期望的路径映射):

bash 复制代码
exit

# 1) 创建 /opt/huawei 基础目录
mkdir -p /opt/huawei
chown -R omm:dbgrp /opt/huawei
chmod -R 750 /opt/huawei

# 2) 准备 OM 期望的脚本路径(将实际 script 目录做符号链接过去)
mkdir -p /opt/huawei/install/tool
ln -sfn /opt/software/openGauss/script /opt/huawei/install/tool/script
chown -h omm:dbgrp /opt/huawei/install/tool/script

# 回到 omm
su - omm

gs_preinstall 脚本会自动检查并配置系统环境(如修改内核参数、设置limit等),确保满足所有安装条件。

bash 复制代码
# (在 omm@ivan 终端中直接执行)
cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/script/cluster_config.xml --non-interactive

如果脚本执行成功,你将看到 Preinstallation succeeded. 的提示。


2. 正式安装

预安装通过后,执行 gs_install 脚本来完成数据库的初始化和启动。

bash 复制代码
# 交互式输入数据库口令(你的这版 gs_install 不支持 -w)
cd /opt/software/openGauss/script
./gs_install -X /opt/software/openGauss/script/cluster_config.xml

安装过程可能需要几分钟时间,请耐心等待。


六、验证与使用

安装完成后,我们需要验证数据库集群是否正常运行。

1. 设置环境变量 (重要)

为了方便使用 gsql, gs_om 等命令,强烈建议将数据库的环境变量加入到 omm 用户的配置文件中。

bash 复制代码
# 编辑 profile 文件
vim /etc/profile

# 在文件末尾添加以下内容
export GAUSS_HOME=/opt/gauss/app
export PATH=$GAUSS_HOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSS_HOME/lib:$LD_LIBRARY_PATH

# 使环境变量立即生效
source /etc/profile

2. 检查集群状态

现在,你可以在任何路径下执行 gs_om 命令。

bash 复制代码
gs_om -t status --all

如果所有组件的状态都显示为 NormalPrimary,则表示集群启动成功!

3. 登录数据库

最后,我们使用 gsql 客户端工具来连接并操作数据库。

bash 复制代码
# 登录数据库,-d 是默认数据库,-p 是端口号
gsql -d postgres -p 15400

成功进入 gsql 交互命令行后,你就可以执行 SQL 语句了。

sql 复制代码
-- 查看版本
SELECT version();
-- 查看所有数据库
\l
-- 退出
\q

日期:2025年10月27日

专栏:openGauss

相关推荐
IvorySQL16 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
深圳市恒星物联科技有限公司16 小时前
水质流量监测仪:复合指标监测的管网智能感知设备
大数据·网络·人工智能
·云扬·16 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
野生技术架构师16 小时前
SQL语句性能优化分析及解决方案
android·sql·性能优化
IT邦德16 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫17 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
是做服装的同学17 小时前
如何选择适合的服装企业ERP系统才能提升业务效率?
大数据·经验分享·其他
不爱缺氧i17 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.17 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql