openGauss 数据库:入门与安装实践
适用读者:DBA、数据库初学者、应用开发与运维工程师 目标:完成 openGauss 单机/最小集群快速安装,掌握基础运维、备份恢复与常见问题处理。
1. openGauss 概述
- 类型:企业级开源关系型数据库,PostgreSQL 衍生,SQL 兼容度高
- 典型场景:政企核心系统、金融、运营商、制造业
- 主要特性:多核并行、向量化执行、内存表、安全审计、物化视图、兼容 Oracle/PostgreSQL 语法
- 生态:openGauss、openEuler、FusionInsight、GaussDB(商用)
2. 快速体验(Docker 单机)
依赖:Docker 20+,内存 ≥ 4GB,磁盘 ≥ 20GB
# 拉取镜像并启动(默认数据库 og,端口 5432)
docker run -d --name opengauss \
-e GS_PASSWORD='Gauss@123' \
-p 5432:5432 \
enmotech/opengauss:5.0.0
# 使用 psql/gsql 连接
psql -h 127.0.0.1 -p 5432 -U gaussdb -d postgres # 默认用户 gaussdb
# 密码:Gauss@123
3. 生产化安装(Linux 单机最小化)
推荐系统:openEuler 22.03/RedHat 8+/CentOS Stream 8,内存 ≥ 16GB,磁盘 ≥ 200GB
3.1 系统准备
# 1) 系统参数(只示例关键项)
cat >> /etc/sysctl.conf <<'EOF'
vm.swappiness=0
kernel.shmmax=68719476736
kernel.shmall=4294967296
fs.file-max=1000000
EOF
sysctl -p
cat >> /etc/security/limits.conf <<'EOF'
* soft nofile 1000000
* hard nofile 1000000
* soft nproc 131072
* hard nproc 131072
EOF
# 2) 创建运行用户
useradd -m -s /bin/bash omm
passwd omm
mkdir -p /opt/og
chown -R omm:omm /opt/og
3.2 安装包与目录
# 以 5.x 为例,将安装介质上传至 /opt/og
su - omm
mkdir ~/pkg && cd ~/pkg
# 将 openGauss-5.x.x-...tar.gz 与脚本包解压到 ~/pkg
3.3 单机部署(OM 工具)
# 生成单机配置(cluster_config.xml)
cat > ~/cluster_config.xml <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CLUSTER>
<PARAM name="cluster_name" value="og_one"/>
<PARAM name="node_names" value="`hostname`"/>
<PARAM name="back_ip1s" value="127.0.0.1"/>
<PARAM name="gaussdb_app_path" value="/opt/og/app"/>
<PARAM name="gaussdb_log_path" value="/opt/og/log"/>
<PARAM name="tmp_mppdb_path" value="/opt/og/tmp"/>
<PARAM name="gaussdb_tool_path" value="/opt/og/om"/>
<PARAM name="cluster_type" value="single-inst"/>
</CLUSTER>
<DEVICELIST>
<DEVICE sn="1">
<PARAM name="name" value="`hostname`"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<PARAM name="backIp1" value="127.0.0.1"/>
<PARAM name="sshIp1" value="127.0.0.1"/>
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="5432"/>
<PARAM name="dataNode1" value="/opt/og/data"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
XML
# 预安装、安装
source ~/pkg/om/gs_profile
gs_preinstall -U omm -G dbgrp -X ~/cluster_config.xml --skip-hostname-set -M fast
gs_install -X ~/cluster_config.xml --gsinit-parameter="--locale=en_US.UTF-8"
# 启停与状态
gs_om -t start
gs_om -t status
4. 基础使用
# 切换到数据库用户
su - omm
source /opt/og/app/bin/gs_profile
gsql -d postgres -p 5432 -r <<'SQL'
CREATE DATABASE demo;
\c demo
CREATE TABLE t1(id int primary key, name text);
INSERT INTO t1 VALUES (1,'hello'),(2,'openGauss');
SELECT * FROM t1;
SQL
5. 备份与恢复
# 逻辑备份
gs_dump -p 5432 -U omm -f /backup/demo.sql demo
# 逻辑恢复
gsql -d demo -p 5432 -f /backup/demo.sql
# 物理备份(示意:结合快照/LVM/文件系统快照)
# 停库 -> 快照 -> 启库,或使用增量备份工具链(企业版)
6. 安全与审计
- 口令策略:长度 ≥ 12、复杂度、90 天过期
- 最小权限:按角色授予,避免直接使用超级用户
- 审计:记录登录/DDL/安全变更,日志保留 ≥ 7 年
- 传输安全:配置 SSL/TLS,限制来源 IP
7. 常见问题
- 端口占用:确保 5432 未被占用(ss -lntp | grep 5432)
- “permission denied”:检查数据目录属主、权限(700)
- 编码/排序规则:安装时统一设置为 UTF-8,避免中文乱码
- 性能低:检查 shared_buffers、work_mem、并发、IO 子系统
8. 最佳实践
1) 生产与测试环境隔离;2) 参数走配置与变更审批;3) 备份 3-2-1 策略;4) 统一监控+告警;5) 基线性能测试与容量规划;6) 定期 VACUUM/ANALYZE;7) 合规与审计
参考: - openGauss 官方文档 https://docs.opengauss.org/ - 社区镜像 https://hub.docker.com/r/enmotech/opengauss