深入解析:openGauss 快速上手:CentOS 环境下单机部署完整指南

目录

openGauss 快速上手:CentOS 环境下单机部署完整指南

摘要

openGauss

开源许可

系统架构

核心特性

核心特性详解

环境配置

操作系统

配置yum源

安装基础依赖

安全设置

安装部署

下载openGauss安装包

xml配置文件

添加lib库

初始化

安装

测试使用

基础 SQL 测试

查看系统信息

创建测试表

插入测试数据

查询测试

更新和删除

事务测试

性能测试语句

批量插入测试

查询性能测试

结尾


摘要

本文《openGauss 快速上手:CentOS 环境下单机部署完整指南》详细介绍了在 CentOS 7.6 系统上部署开源企业级关系型数据库 openGauss 的全过程。文章首先概述了 openGauss 的核心优势,包括高性能、高可用、高安全、易运维和全开放五大特性,并说明其采用木兰宽松许可证 v2,适合商业与开源场景。随后,文章逐步引导读者完成环境准备(如配置 yum 源、安装依赖、关闭 SELinux 和防火墙)、创建专用用户、下载安装包、编写 XML 配置文件、执行预安装与正式安装等关键步骤。最后,通过一系列 SQL 测试用例(如基础操作、事务控制、性能测试、JSONB 支持、全文检索及系统监控),验证数据库功能完整性与稳定性,帮助用户快速掌握 openGauss 的基本使用与验证方法。

openGauss

openGauss 是一款源自华为、专为企业级应用场景打造的高性能开源关系型数据库管理系统(Relational Database Management System, RDBMS)。该项目于 2020 年 6 月 30 日正式对外开源,致力于构建一个开放、协作、创新的数据库生态。

开源许可

openGauss 采用 木兰宽松许可证 v2(Mulan Permissive Software License, Version 2)。该许可证是开源软件许可协议,具有高度的兼容性和宽松性,允许用户自由地使用、修改、分发源代码,甚至可将其用于商业用途,而无需强制开源衍生作品。这一特性极大降低了企业采纳和二次开发的法律与合规门槛。

系统架构

openGauss 采用经典的 客户端/服务器(Client/Server)架构,并基于 单进程多线程(Multi-threaded)模型进行设计,有效提升了并发处理能力和资源利用效率。
在部署模式上,openGauss 支持:

  • 单机部署:适用于开发测试或轻量级生产环境;
  • 一主多备(主备高可用)架构:通过同步/异步复制机制,保障数据的高可用性与灾难恢复能力,满足企业对业务连续性的严苛要求。

名称

描述

OM

运维管理模块(Operation Manager)。提供数据库日常运维、配置管理的管理接口、工具。

CM

数据库管理模块(Cluster Manager)。管理和监控数据库系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。

客户端驱动

客户端驱动(Client Driver)。负责接收来自应用的访问请求,并向应用返回执行结果。客户端驱动负责与openGauss实例通信,发送应用的SQL命令,接收openGauss实例的执行结果。

openGauss(主备)

openGauss主备(Datanode)。负责存储业务数据、执行数据查询任务以及向客户端返回执行结果。

openGauss实例包含主、备两种类型,支持一主多备。建议将主、备openGauss实例分散部署在不同的物理节点中。

Storage

服务器的本地存储资源,持久化存储数据。

核心特性

openGauss 围绕企业级需求,聚焦五大核心能力:

特性维度

描述

高性能

通过多核并行计算、智能优化器、向量化执行引擎等技术,显著提升查询与事务处理性能,适用于高并发、大吞吐的 OLTP 场景。

高可用

支持主备切换、逻辑/物理复制、数据页修复等机制,RTO(恢复时间目标)可控制在秒级,保障业务不中断。

高安全

内置全栈安全体系,包括访问控制、数据加密(传输与存储)、审计日志、行级安全(RLS)、国密算法支持等,满足等保和金融级安全合规要求。

易运维

提供图形化管理工具、智能诊断、自动参数调优、慢SQL分析等功能,降低数据库运维复杂度,提升 DBA 效率。

全开放

源代码完全开放,支持标准 SQL,兼容主流生态工具,并鼓励社区参与共建。同时提供丰富的扩展接口(如扩展函数、插件机制),便于定制化开发。

凭借其强大的技术底座与开放的社区生态,openGauss 正逐步成为数据库领域的重要力量,广泛应用于金融、电信、政务、能源等多个关键行业。

核心特性详解

  • 高性能:openGauss针对多核CPU和NUMA架构进行了深度优化,并融合了鲲鹏硬件优化,在两路鲲鹏下TPCC Benchmark性能可达150万tpmc。它还提供了智能的SQL-bypass快速引擎和融合引擎技术,并支持行存储、列存储以及内存存储引擎,以应对不同的业务场景。
  • 高可用:它支持主备同步、异步和级联备机等多种部署模式,最多可支持一主八备。通过备机并行恢复技术,能在10秒内完成故障切换,提升为主机提供服务。数据页CRC校验以及损坏数据页通过备机自动修复的机制,进一步保障了数据可靠性。
  • 高安全:openGauss提供全链路的安全防护,包括全密态计算、访问控制、加密认证、数据库审计和动态数据脱敏等安全特性,提供全方位端到端的数据安全保护。
  • 易运维:内置的AI能力是其一大亮点,支持基于AI的智能参数调优和索引推荐。同时,它提供慢SQL诊断和多维性能自监控视图,帮助管理员实时掌控系统性能。
  • 全开放:采用开放的开源协议,数据库内核能力全开放,并致力于构建活跃的开发者社区和合作伙伴生态。

环境配置

操作系统

这里我使用腾讯云服务器lighthous安装的CentOS7.6系统进行部署操作:

查看当前的版本

cat /etc/redhat-release

配置yum源

删除系统自带 yum 源,下载阿里云 yum 源,并且更新缓存

rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

安装基础依赖

yum install ‐y libaio‐devel flex bison ncurses‐devel glibc.devel patch lsb_release
yum install ‐y openssl* python3

安全设置

关闭 SELINUX 和 Firewall

setenforce 0
systemctl disable firewalld.service
systemctl stop firewalld.service
swapoff -a

修改主机名

echo "node1" > /etc/hostname
echo "124.222.230.153 node1" >>/etc/hosts

安装部署

下载openGauss安装包

下载 openGauss 安装包及创建用户组和目录

groupadd dbgrp
useradd -g dbgrp -d /home/omm  -m -s /bin/bash omm
echo "omm" | passwd  -‐stdin omm
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
chown -R omm:dbgrp  /opt/software/openGauss

安装并解压openGauss

cd /opt/software/openGauss/
wget https://openGauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/x86/openGauss-2.0.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-2.0.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-2.0.0-CentOS-64bit-om.tar.gz

xml配置文件

配置xml配置文件

vim cluster_config_template.xml

修改配置文件具体如下,配置文件中要注意配置一下几个参数:nodeNAMES、backips



  
  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  
  
  
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    
  

添加lib库

vim .bashrc在这个文件中加入下方的lib库

export GPHOME=/opt/huawei/install/om
export PATH=$GPHOME/script/gspylib/pssh/bin:$GPHOME/script:$PATH
export LD_LIBRARY_PATH=$GPHOME/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$GPHOME/lib
export GAUSSHOME=/opt/huawei/install/app
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export S3_CLIENT_CRT_FILE=$GAUSSHOME/lib/client.crt
export GAUSS_VERSION=2.0.0
export PGHOST=/opt/huawei/tmp
export GAUSSLOG=/opt/huawei/log/omm
umask 077
export GAUSS_ENV=2
export GS_CLUSTER_NAME=singlenode

初始化

使用Python进行预安装

cd /opt/software/openGauss/script
python3 gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config_template.xml

安装

在进入 script 目录后,进行正式安装的命令

# 查看当前权限
ls -l /opt/software/openGauss/script/gs_install
# 添加执行权限(所有用户)
chmod +x /opt/software/openGauss/script/gs_install
# 验证
ls -l /opt/software/openGauss/script/gs_install
# 应该显示:-rwxr-xr-x 1 root root ... gs_install
# 设置目录权限(确保 omm 可读可执行)
chmod -R 755 /opt/software/openGauss/script/
chown -R omm:dbgrp /opt/software/openGauss/script/
su omm
cd /opt/software/openGauss/script/
/opt/software/openGauss/script/gs_install -X /opt/software/openGauss/cluster_config_template.xml

要验证 openGauss 数据库是否安装成功,首先需要确认数据库服务已经正常启动。在此基础上,可以通过本地连接命令 gsql -d postgres -p 26000 进行测试,其中 -d postgres 表示连接默认的初始数据库 postgres,而 -p 参数用于指定数据库监听的端口号。该端口号并非固定值,而是来源于安装时所用的集群配置文件(例如 cluster_config_template.xml)中 <PARAM name="dataPortBase" value="26000" /> 所定义的 dataPortBase 值;在单节点部署场景下,通常直接使用该基础端口进行连接。若执行该命令后成功进入 gsql 交互式命令行界面(提示符如 postgres=#),说明客户端能够正常与数据库实例通信,数据库进程运行稳定,权限、环境变量(如 PGHOST)及网络(或 Unix 域套接字)配置均正确无误,至此可判定数据库安装与初始化已顺利完成,系统具备基本可用性。

# 作为 omm 用户
su - omm
# 检查环境变量
echo $PATH
echo $GAUSSHOME
# 检查 gsql 是否可用
which gsql
gsql --version
# 连接数据库
gsql -d postgres -p 26000

测试使用

基础 SQL 测试

查看系统信息
-- 查看数据库版本
SELECT version();
-- 查看当前用户
SELECT current_user;
-- 查看数据库列表
\l
-- 查看表空间
SELECT * FROM pg_tablespace;

创建测试表
-- 创建测试表
CREATE TABLE test_users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT true
);
-- 创建索引
CREATE INDEX idx_test_users_name ON test_users(name);

插入测试数据
-- 插入单条数据
INSERT INTO test_users (name, email) VALUES ('张三', 'zhangsan@example.com');
-- 插入多条数据
INSERT INTO test_users (name, email, is_active) VALUES
('李四', 'lisi@example.com', true),
('王五', 'wangwu@example.com', false),
('赵六', 'zhaoliu@example.com', true);

查询测试
-- 基本查询
SELECT * FROM test_users;
-- 条件查询
SELECT * FROM test_users WHERE is_active = true;
-- 聚合查询
SELECT COUNT(*) as total_users,
       COUNT(CASE WHEN is_active = true THEN 1 END) as active_users
FROM test_users;
-- 分组查询
SELECT is_active, COUNT(*) as count
FROM test_users
GROUP BY is_active;

更新和删除
-- 更新数据
UPDATE test_users SET email = 'zhangsan_new@example.com' WHERE name = '张三';
-- 删除数据
DELETE FROM test_users WHERE name = '王五';

事务测试
-- 开启事务
BEGIN;
-- 插入测试数据
INSERT INTO test_users (name, email) VALUES ('测试用户', 'test@example.com');
-- 回滚事务
ROLLBACK;
-- 验证回滚
SELECT * FROM test_users WHERE name = '测试用户';

性能测试语句

批量插入测试
-- 创建大表测试
CREATE TABLE test_large_data (
    id BIGSERIAL PRIMARY KEY,
    random_value FLOAT,
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 批量插入 10000 条数据
INSERT INTO test_large_data (random_value)
SELECT random() FROM generate_series(1, 10000);

查询性能测试
-- 简单查询性能
EXPLAIN ANALYZE SELECT * FROM test_large_data WHERE random_value > 0.5 LIMIT 100;
-- 聚合查询性能
EXPLAIN ANALYZE SELECT COUNT(*), AVG(random_value) FROM test_large_data;

结尾

通过本指南,读者不仅能够顺利完成 openGauss 在 CentOS 环境下的单机部署,还能通过系统化的功能与性能测试,全面验证数据库的可用性与健壮性。openGauss 凭借其企业级特性、开放的生态软硬件的良好适配,正成为金融、政务、电信等关键行业数据库选型的重要选项。希望本文能为初次接触 openGauss 的开发者和 DBA 提供清晰、实用的入门路径,为进一步深入使用和二次开发奠定坚实基础。随着社区生态的持续壮大,openGauss 有望在未来的数据库技术格局中扮演更加重要的角色。

posted on 2026-01-02 18:31  ljbguanli  阅读(0)  评论(0)    收藏  举报