夜雨聆风学习资料网

ARTICLE · 1310615

openGauss 数据库多系统安装部署教程(CentOS / Ubuntu / Windows / Docker 四平台)

openGauss 数据库多系统安装部署教程(CentOS / Ubuntu / Windows / Docker 四平台)

信创浪潮下,openGauss 已成为国产数据库里绕不开的名字——它源自华为,基于 PostgreSQL 内核深度重构,加入了鲲鹏指令优化、MOT 内存引擎、AI 自动调优(X-Tuner),性能和国产化适配都做了重投入。很多 DBA 习惯了 Oracle/PG 的一键安装,面对 openGauss 的 gs_preinstall、omm 用户、cluster_config.xml 会一头雾水。这篇教程把 openGauss 在 CentOS、Ubuntu、Windows、Docker 四种环境的安装全流程拆开讲透。


一句话总结

openGauss 安装的核心 = 选型(社区版快速上手 / 企业版生产)+ 环境准备(关防火墙、调参数、建 omm 用户)+ 安装(sh 包 gs_install 或 Docker)+ 配置(XML 集群描述 + gaussdb 参数)+ 验证(gsql 连接)。记住它和 PG 的三个关键差异:用 omm 用户不是 postgres、用 gs_om/gs_install 工具不是 systemctl 裸管、生产装集群要写 cluster_config.xml——理清这三点,安装就不会乱。


一、先认识 openGauss

1.1 它是什么

openGauss 是华为开源的关系型数据库(2020 年开源,由 openGauss 开源社区运营),内核源自 PostgreSQL 9.2 并深度重构。它定位国产企业级数据库,主打:

  • 鲲鹏/国产芯片优化:对 ARM64(鲲鹏、飞腾)有专门指令加速
  • MOT 引擎:内存优化引擎,适合高并发内存场景
  • AI 调优:X-Tuner 自动参数调优、慢 SQL 智能诊断
  • 国产化生态:适配麒麟、统信等国产操作系统

1.2 与 PostgreSQL / Oracle 的关系

对比项openGaussPostgreSQLOracle
内核来源PG 9.2 深度重构原生开源商业自研
授权MulanPSL-2.0(国产开源协议)PostgreSQL License商业授权
国产适配✅ 原生(信创首选)⚠️ 需自行适配❌
安装工具gs_install / gs_ominitdb / systemctlOUI 图形 / DBCA
默认用户ommpostgresoracle
默认端口5432 / 1540054321521
SQL 兼容兼容 PG + 部分 Oracle 语法标准标准

对 Oracle DBA 最友好的一点:openGauss 的部分 Oracle 兼容语法(如 NVL、DECODE、SEQUENCE.NEXTVAL、ROWNUM),迁移 Oracle 时能少踩不少坑。


二、版本选择与环境要求

2.1 版本形态

形态说明适合
社区版完全开源,Docker 可一键跑学习、测试、开发
企业版有商业支持,需下载授权包生产环境
第三方发行版云厂商托管(如各云 GaussDB)免运维

版本节奏:社区版大致每年一个大版本,偶数版(6.0、8.0)为 LTS。截至本文,推荐生产用 6.0 LTS,尝新用最新社区版。

2.2 硬件与环境要求

项目最低生产建议
CPU2 核8 核+(ARM64 优先鲲鹏/飞腾)
内存4 GB32 GB+
磁盘20 GB数据盘独立,容量≥数据量 2 倍
操作系统CentOS 7.6+ / 麒麟 V10 / Ubuntu 20.04+ / Windows 10+与信创清单一致
端口5432主备集群需放通多端口
用户omm(自动创建)勿用 root 跑库

2.3 装前必做的环境准备(所有 Linux 通用)

bash
# 1. 关闭防火墙(生产按需放行端口而非全关)
systemctl stop firewalld && systemctl disable firewalld

# 2. 关闭 SELinux(或改为 permissive)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

# 3. 关闭 swap(避免性能抖动)
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

# 4. 调整文件句柄与进程数
cat >> /etc/security/limits.conf <<'EOF'
omm  soft  nofile  1000000
omm  hard  nofile  1000000
omm  soft  nproc   unlimited
omm  hard  nproc   unlimited
EOF

# 5. 调整内核参数(共享内存等)
cat >> /etc/sysctl.conf <<'EOF'
kernel.sem = 250 32000 100 1000
kernel.shmmax = 8589934592
vm.dirty_background_ratio = 5
EOF
sysctl -p

# 6. 设置主机名解析(多机集群必须)
echo"192.168.1.10 og-primary" >> /etc/hosts

⚠️ openGauss 对环境比 PG 更"讲究":不关 SELinux、不调 limits,gs_install 大概率直接报错。装前先做完上面这套,比装完再排错快得多。


三、四种安装方式怎么选

平台方式难度生产可用说明
CentOS / 麒麟企业版 sh 包 gs_install★★★✅生产首选
Ubuntu社区版二进制 / Docker★★★⚠️官方主推 CentOS,Ubuntu 用社区版
Windowszip 解压运行 / Docker★★❌仅开发测试
任意(含 Mac)Docker(社区版)★⚠️最快上手,测试用

结论先行:生产 = CentOS/麒麟 + 企业版 sh 包;学习验证 = Docker 社区版秒起。


四、CentOS / 麒麟安装(企业版,生产标准流程)

以 openGauss 6.0、单节点为例。

4.1 获取安装包

到 openGauss 官网下载对应架构(x86_64 / aarch64)的企业版安装包,上传到服务器:

bash
mkdir -p /opt/software/openGauss && cd /opt/software/openGauss
tar -zxvf openGauss-6.0.0-CentOS-64bit.tar.gz
ls# 应看到 script/、simpleInstall/ 等目录

4.2 预安装(root 执行)

bash
cd /opt/software/openGauss/script

# 预安装:自动创建 omm 用户和 dbgrp 组、目录、环境变量
./gs_preinstall -U omm -G dbgrp -L /opt/software/openGauss
参数含义
-U omm数据库操作系统用户(不能是 root)
-G dbgrp用户组
-L安装目录

4.3 切换到 omm 用户执行安装

bash
su - omm

# 单机安装(-L 指定数据目录,--gs-initdb 初始化)
gs_install -L /var/lib/opengauss/data \
    --gs-initdb -X /opt/software/openGauss/cluster_config.xml \
    --dbpass 'OpenGauss@2026'

4.4 cluster_config.xml(集群描述文件)

生产/集群必须写 XML 描述。单机最简示例:

xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CLUSTER>
<PARAMname="clusterName"value="ogdb"/>
<PARAMname="nodeNum"value="1"/>
<PARAMname="backIp1s"value="192.168.1.10"/>
<PARAMname="sshIp1s"value="192.168.1.10"/>
<PARAMname="gaussdbAppPath"value="/opt/huawei/install/app"/>
<PARAMname="gaussdbLogPath"value="/var/log/opengauss"/>
<PARAMname="gaussdbToolPath"value="/opt/huawei/install/om"/>
<PARAMname="corePath"value="/opt/huawei/corefile"/>
</CLUSTER>
<DEVICELIST>
<DEVICEsn="192.168.1.10">
<PARAMname="name"value="192.168.1.10"/>
<PARAMname="backIp1"value="192.168.1.10"/>
<PARAMname="sshIp1"value="192.168.1.10"/>
<PARAMname="dataNum"value="1"/>
<PARAMname="dataPortBase"value="5432"/>
<PARAMname="dataNode1"value="/var/lib/opengauss/data"/>
</DEVICE>
</DEVICELIST>
</ROOT>

主备集群:nodeNum 改 2+,DEVICELIST 加备机 <DEVICE>,并配 dataNode1 的备库路径。

4.5 启动与验证

bash
# 状态与启动
gs_om -t status          # 查看集群状态
gs_om -t start           # 启动(未起时)
gs_om -t stop            # 停止

# 设置开机自启(omm 用户 crontab)
crontab -e
# 加一行:@reboot gs_om -t start

# 连接验证
gsql -d postgres -p 5432 -r
sql
-- 进入 gsql 后的体检
postgres=# SELECT version();
postgres=# SELECT*FROM dv_view;   -- openGauss 版本视图
postgres=# \l                        -- 列数据库

五、Ubuntu 安装(社区版 / Docker 变通)

openGauss 官方对 Ubuntu 的支持弱于 CentOS,生产建议用 Docker 或社区版二进制,流程如下。

5.1 方式一:Docker(最简单)

bash
# 拉取社区版镜像并启动(密码必须满足复杂度)
docker run -d --name og-ubuntu \
    -p 5432:5432 \
    -e GS_PASSWORD='OpenGauss@2026' \
    -e NODE_NAME=node1 \
    enmotech/opengauss:latest

# 进入容器连接
docker exec -it og-ubuntu gsql -d postgres -U gaussdb -W 'OpenGauss@2026' -p 5432

5.2 方式二:社区版二进制(无 root 依赖)

bash
# 下载 openGauss 社区版 Ubuntu 包(官网选 ubuntu 架构)
tar -zxvf openGauss-community-6.0.0-Ubuntu.tar.gz

# 社区版用 simpleInstall 快速装(自动建 omm 需有 sudo 权限)
cd simpleInstall
./install.sh -w 'OpenGauss@2026'

# 安装完成后默认数据目录、端口 5432,omm 用户可直接 gsql
su - omm
gsql -d postgres -p 5432

Ubuntu 的坑:官方脚本默认按 CentOS 的路径和 systemd 假设来,install.sh 装完不一定自动注册 systemd 服务,需要手动把 gs_om -t start 加进开机项。生产上,Ubuntu 跑 openGauss 请先跑通完整故障切换测试再上。


六、Windows 安装(仅开发测试)

openGauss 对 Windows 的支持是"能跑"级别,不建议生产用。

6.1 zip 解压方式

  1. 官网下载 openGauss Windows zip 包(x86_64)
  2. 解压到如 C:\openGauss
  3. 以管理员身份打开 CMD,进入解压目录:
bat
cd C:\openGauss
:: 初始化(指定数据目录)
bin\initdb.exe -D C:\openGauss\data -U omm -W
:: 启动
bin\gaussdb.exe -D C:\openGauss\data
  1. 连接(另开一个窗口):
bat
bin\gsql.exe -d postgres -p 5432 -U omm

6.2 Windows 上的限制

限制说明
不支持部分高可用特性流复制、MOT 等在 Windows 上受限
性能远低于 Linux仅适合开发联调、学习语法
路径/权限坑多中文路径、空格路径易出错

想"在 Windows 上用 openGauss",更推荐 WSL2 + Docker 跑社区版,既省事又接近生产行为。


七、Docker 部署(跨平台最快上手,含 compose)

7.1 单容器

bash
docker run -d --name opengauss \
    -p 5432:5432 \
    -e GS_PASSWORD='OpenGauss@2026' \
    -v ogdata:/var/lib/opengauss \
    enmotech/opengauss:latest
环境变量说明
GS_PASSWORD初始密码(必须含大小写+数字+特殊字符,否则启动失败)
NODE_NAME节点名
REPLCONNINFO配置流复制时使用

7.2 docker-compose 规范版

yaml
services:
opengauss:
image:enmotech/opengauss:latest
container_name:og-prod
restart:always
environment:
GS_PASSWORD:"${OG_PASSWORD}"
TZ:Asia/Shanghai
ports:
-"5432:5432"
volumes:
-ogdata:/var/lib/opengauss
healthcheck:
test: ["CMD-SHELL", "gsql -d postgres -U gaussdb -W ${OG_PASSWORD} -c 'SELECT 1' || exit 1"]
interval:10s
timeout:5s
retries:5

volumes:
ogdata:

7.3 主备复制(Docker 快速验证)

bash
# 备库启动并指向主库(示意,简化版)
docker run -d --name og-standby \
    -p 5433:5432 \
    -e GS_PASSWORD='OpenGauss@2026' \
    -e REPLCONNINFO="localhost=og-primary localport=5432 ..." \
    enmotech/opengauss:latest

Docker 主备仅适合演示流复制原理,生产主备请用裸机企业版 + cluster_config.xml 描述双节点。


八、装完必调的核心参数

openGauss 的参数体系源自 PG,但有自己的默认值和推荐值。编辑数据目录下 postgresql.conf(openGauss 沿用此文件名)。

参数默认建议说明
listen_addresseslocalhost* 或内网 IP放开远程连接
port54325432一般不改
max_connections200按业务,100~500连接数上限
shared_buffers32MB内存 1/4缓冲池,必调
effective_cache_size-内存 3/4优化器估算用
work_mem64KB4~64MB排序/哈希内存
enable_motoffon(需 MOT 许可)内存优化引擎
password_encryption_type11(scram)密码加密方式
log_min_duration_statement-11000慢 SQL 阈值(毫秒)
timezone-PRC 或 Asia/Shanghai业务时区
bash
# omm 用户下修改并重启
vi /var/lib/opengauss/data/postgresql.conf
gs_om -t stop && gs_om -t start

MOT 内存引擎是 openGauss 相对 PG 的差异化能力:适合内存能放下、高并发的场景(如会话、热点表),但要开启 enable_mot=on 并建 USING mot 的表。


九、访问控制与远程连接

9.1 pg_hba.conf(同 PG 思路)

bash
vi /var/lib/opengauss/data/pg_hba.conf
conf
# 本机
host   all   all   127.0.0.1/32      scram-sha-256
# 内网网段
host   all   all   192.168.1.0/24    scram-sha-256

改完用 gs_om -t reload 或重启生效。

9.2 建业务用户(别用 omm 连业务)

sql
-- 建用户(openGauss 语法)
CREATEUSER appuser IDENTIFIED BY'AppPass@2026';
CREATE DATABASE mydb OWNER appuser;
GRANTALL PRIVILEGES ON DATABASE mydb TO appuser;

openGauss 密码默认强制复杂度策略(大小写+数字+特殊字符,长度≥8),弱密码会被拒,这是比 PG 多出来的一道关。


十、gsql 常用命令与安装体检

bash
# 连接
gsql -d postgres -p 5432 -U omm -W
命令作用
\l列数据库
\dt列表
\du列用户/角色
\dn列 schema
\di列索引
\q退出
\?帮助

一套"装完必跑"体检 SQL:

sql
SELECT version();                          -- 版本
SELECT current_database(), current_user;   -- 当前库与用户
SHOW listen_addresses;                     -- 监听配置
SHOW shared_buffers;                       -- 缓冲池
SELECT*FROM pg_stat_activity;            -- 当前会话
SELECT*FROM dv_view;                     -- openGauss 版本信息

十一、常见问题排查表

症状根因解决
gs_install 报权限/用户错误用了 root 跑安装切到 omm 用户;检查 gs_preinstall 是否执行过
启动失败:端口被占5432 已被别的库占换端口或停占用进程:netstat -tnlp | grep 5432
密码不符合策略被拒弱密码用含大小写+数字+特殊字符、长度≥8 的密码
远程连不上listen_addresses/pg_hba.conf 未配放开监听 + 加网段行 + 放行防火墙
Docker 容器起不来GS_PASSWORD 不满足复杂度改复杂密码后重建容器
Ubuntu install.sh 装完没服务无 systemd 注册手动加开机启动或用 Docker
报 libnuma / 依赖缺失缺依赖包yum install numactl / apt install libnuma1
gs_om -t status 连不上环境变量未生效source ~/.bashrc 或 su - omm 重登
磁盘瞬间满WAL/日志增长配置归档清理、检查 log 目录
bash
# 万能排查起手式
gs_om -t status                          # 集群状态
su - omm -c "gsql -d postgres -c 'SELECT 1'"# 本地连通性
tail -f /var/log/opengauss/omm/ogdb/*.log# 看日志

十二、与 PostgreSQL / Oracle 迁移对照

习惯PostgreSQLopenGaussOracle
初始化initdbgs_install --gs-initdbDBCA
服务管理systemctlgs_om -t start/stopdbstart/dbshut
超级用户postgresomm / gaussdbsys/system
客户端psqlgsqlsqlplus
分页LIMIT n OFFSET mLIMIT / ROWNUMROWNUM
字符串拼接||||||
NVLCOALESCENVL(Oracle 兼容)NVL
sql
-- Oracle 习惯在 openGauss 里大多能用
SELECT NVL(comm, 0) FROM emp;              -- NVL
SELECT seq_emp.NEXTVAL FROM dual;          -- 序列 + dual
SELECT*FROM emp WHERE ROWNUM <=10;      -- ROWNUM

openGauss 的 Oracle 兼容语法是迁移加分项:很多 Oracle 的 NVL/DECODE/ROWNUM/dual 直接可用,配合 dolphin 插件(兼容 MySQL 语法)还能覆盖更多源库类型。


十三、上线安全清单

markdown
□ 1. 修改默认密码,业务账号与管理员账号分离
□ 2. 业务程序使用独立用户,禁用 omm 直连
□ 3. pg_hba.conf 最小化放行(仅业务网段,scram-sha-256)
□ 4. 关闭 SELinux 后,防火墙只放行 5432(或多端口集群)
□ 5. 开启慢 SQL 日志(log_
min_duration_statement)
□ 6. 配置归档与定期备份(gs_basebackup / gs_probackup)
□ 7. 主备集群写清 cluster_config.xml,做真实故障切换演练
□ 8. 时间同步:所有节点 NTP 一致
□ 9. 第一次连接成功 → 立即做一次全量备份留基线
□ 10. 接入监控:复制延迟、连接数、磁盘水位进告警平台
bash
# 最简单的每日备份脚本(omm 用户 crontab)
0 2 * * * gs_basebackup -D /backup/og_$(date +%F) -p 5432

DBA 夜话:装 openGauss 这件事,技术上没有比装 Oracle 难,但心智模型要切换——你不再是"装一个数据库",而是在信创语境下"接一套国产体系":omm 用户、gs_om 工具、cluster_config.xml、鲲鹏适配、国产操作系统兼容,每一样都在提醒你,国产数据库不是把 PG 换个壳,而是整套运维习惯的重建。所以给第一次装 openGauss 的同学三条忠告:装前把环境准备做到位(比装完排错省事十倍)、生产用企业版并写清 XML、装完立刻做备份和故障演练。愿你接手的每个国产库,都从第一天就留好了退路。夜话至此,5432 与 15400 都稳。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料