适用:openEuler/ 银河麒麟 V10;不使用 OM 安装脚本、不执行 gs_preinstall/gs_install;systemd 配置开机自启; 架构:单机单实例,手动初始化数据库,gs_ctl 管理启停。

文档约定

  • 主机名:openGaussDB
  • 内网 IP:172.11.12.2
  • 数据库用户:omm,用户组:dbgrp
  • 程序目录 (gaussdbAppPath):/data/openGauss/openGauss-Server
  • 数据目录:/data/openGauss/data/dn
  • 日志目录 (gaussdbLogPath):/data/openGauss/data/dn/pg_log
  • TMP 目录 (tmpMppdbPath):/data/openGauss/tmp
  • Core 转储目录 (corePath):/data/openGauss/corefile
  • OM 占位目录 (gaussdbToolPath):/data/openGauss/om(手动部署不使用)
  • 端口:5432

一、前期环境准备(root 执行)

1.1 创建目录

mkdir -p /data/openGauss/openGauss-Server
mkdir -p /data/openGauss/data/dn
mkdir -p /data/openGauss/tmp
mkdir -p /data/openGauss/corefile
mkdir -p /data/openGauss/om

1.2 创建用户与用户组

groupadd dbgrp
useradd -g dbgrp omm
# 设置omm密码,自定义,记住密码
passwd omm

1.3 目录权限配置(关键,openGauss 强制权限)

chown -R omm:dbgrp /data/openGauss
chmod 700 /data/openGauss/data/dn
chmod 750 /data/openGauss/openGauss-Server

1.4 系统内核 & 资源参数(root)

# 打开limits配置
vi /etc/security/limits.conf

在文件末尾追加:

omm soft nofile 1048576
omm hard nofile 1048576
omm soft nproc unlimited
omm hard nproc unlimited

保存退出 Esc :wq

# 内核参数
vi /etc/sysctl.conf

追加下面内容

kernel.sem = 250 32000 100 99
kernel.shmmax = 17179869184
kernel.shmall = 4194304
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535

生效内核参数

sysctl -p

1.5 防火墙放行 5432 端口

# firewalld
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
# 查看放行端口
firewall-cmd --list-ports

1.6 SELinux(建议关闭,小白避坑)

#临时关闭
setenforce 0
#永久关闭
vi /etc/selinux/config

修改:SELINUX=disabled

重启服务器使 limits、selinux 生效(可选,后面解压完再 reboot 也行)


二、解压部署 openGauss 二进制包(root)

把 openGauss-6.0.6 二进制安装包上传服务器,示例包名:openGauss-All-6.0.6-openEuler20.03-aarch64.tar.gz 上传到 /data目录

2.1 解压

cd /tmp
tar -zxvf openGauss-All-6.0.6-openEuler20.03-aarch64.tar.gz

mkdir openGauss
mv openGauss-Server-6.0.6-openEuler20.03-aarch64.tar.bz2 ./openGauss-Server
cd openGauss
tar - zxvf openGauss-Server-6.0.6-openEuler20.03-aarch64.tar.bz2

解压后得到 openGauss-Server-6.0.6-openEuler20.03-aarch64.tar.bz2 文件

2.2 复制二进制程序到目标程序目录

cp -r /tmp/openGauss/* /data/openGauss/openGauss-Server/

2.3 修改程序目录归属

chown -R omm:dbgrp /data/openGauss/openGauss-Server

2.4 验证程序文件

ls -l /data/openGauss/openGauss-Server/bin/gs_ctl
ls -l /data/openGauss/openGauss-Server/bin/gaussdb

能看到两个可执行文件,代表复制成功


三、配置 omm 用户环境变量(omm 用户执行)

切换 omm 用户

su - omm
vi ~/.bashrc

写入下面全部内容

export GAUSSHOME=/data/openGauss/openGauss-Server
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PG_DATA=/data/openGauss/data/dn

保存退出,生效环境变量

source ~/.bashrc
#校验
echo $GAUSSHOME
gs_ctl --version

✅ 输出版本号代表环境变量正常


四、初始化数据库实例(omm 用户执行)

数据库管理员密码自定义,后面登录要用,示例Admin@123

gs_initdb -D /data/openGauss/data/dn --single_node -w Admin@123 -E UTF8 --locale=en_US.UTF-8

参数说明

  • -D:数据目录
  • --single_node:单机模式
  • -w:数据库超级用户 omm 密码
  • -E UTF8 字符集

执行成功提示 Success. You can now start the database server

4.1 修改数据库监听配置(允许外部访问)

vi /data/openGauss/data/dn/postgresql.conf

找到 listen_addresses

listen_addresses = '*'
port = 5432
vi /data/openGauss/data/dn/pg_hba.conf

文件末尾添加(允许所有 IP 访问,生产环境按需限制网段)

host    all             all             0.0.0.0/0            sha256

五、启停数据库(omm 日常维护命令)

#启动
gs_ctl start -D /data/openGauss/data/dn -Z single_node

#停止
gs_ctl stop -D /data/openGauss/data/dn -Z single_node

#查看状态
gs_ctl status -D /data/openGauss/data/dn

#登录数据库
gsql -d postgres -U omm -p 5432

登录成功后可执行 \q 退出 gsql


六、配置 systemd 开机自启(root 执行,解决重启不自动拉起问题)

重点:service 内部自带 LD_LIBRARY_PATH,不依赖 omm 的 bashrc,解决 status=127 报错

cat > /etc/systemd/system/openGauss.service <<EOF
[Unit]
Description=openGauss Single Node Manual Deploy Service
After=network.target local-fs.target
Requires=network.target

[Service]
User=omm
Group=dbgrp
Type=forking
Environment="GAUSSHOME=/data/openGauss/openGauss-Server"
Environment="LD_LIBRARY_PATH=/data/openGauss/openGauss-Server/lib"

ExecStart=/data/openGauss/openGauss-Server/bin/gs_ctl start -D /data/openGauss/data/dn -Z single_node
ExecStop=/data/openGauss/openGauss-Server/bin/gs_ctl stop -D /data/openGauss/data/dn -Z single_node
ExecReload=/data/openGauss/openGauss-Server/bin/gs_ctl reload -D /data/openGauss/data/dn

TimeoutStartSec=300
TimeoutStopSec=300
Restart=no

[Install]
WantedBy=multi-user.target
EOF

加载 systemd 配置

systemctl daemon-reload
#设置开机自启
systemctl enable openGauss

6.1 测试 systemd 启停

#停止库
su - omm
gs_ctl stop -D /data/openGauss/data/dn -Z single_node
exit

#root执行
systemctl start openGauss
systemctl status openGauss

看到 active (running) 代表自启服务配置正常。

6.2 重启服务器验证开机自动启动

reboot

重启登录后执行:

systemctl status openGauss
gs_ctl status -D /data/openGauss/data/dn

systemd 排错命令

#查看本次开机日志
journalctl -u openGauss -b
#实时跟踪日志
journalctl -u openGauss -f

七、常用维护命令汇总

omm 用户下执行

#登录数据库
gsql -d postgres -U omm -p 5432

#查看数据库版本
gsql --version

#查看数据库日志
tail -f /data/openGauss/data/dn/pg_log/postgres-*.log

八、常见故障排查

  1. systemd 启动报错 code=exited, status=127
    • 原因:service 缺少LD_LIBRARY_PATH环境变量,找不到动态库
    • 解决:使用手册第 6 节完整 service 文件,不要省略 Environment 两行
  2. gs_initdb 初始化报错 permission denied
    • 原因:目录归属不是 omm:dbgrp,或者权限不是 700
    • 修复:chown -R omm:dbgrp /data/openGauss
  3. 外部无法连接数据库
    • 检查防火墙 5432 放行、postgresql.conf listen_addresses='*'、pg_hba.conf 配置访问网段
  4. 服务器重启后数据库不启动
    • 优先执行 journalctl -u openGauss -b 查看 systemd 日志定位报错

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐