1. 项目概述:为什么要在CentOS上部署OpenGauss?
最近在折腾国产数据库,OpenGauss这个名字出现的频率越来越高。作为一款源自PostgreSQL内核,由国内顶尖团队深度优化和增强的企业级开源关系型数据库,它主打高性能、高安全和高可用,尤其是在金融、政务这些对数据安全有严苛要求的场景里,呼声不小。我手头正好有几台闲置的CentOS 7.9服务器,寻思着不如自己动手部署一套,从零开始踩一遍坑,把过程记录下来,也给有同样想法的朋友一个参考。
这个项目标题“Centos服务器Open Gauss 部署”看似简单,背后其实涉及了从操作系统准备、依赖环境配置、数据库软件安装、初始化配置到基础运维的一整套流程。对于很多刚接触OpenGauss或者习惯了MySQL/Oracle的运维和开发来说,在Linux环境下部署一个“新”数据库,总会遇到一些预料之外的问题,比如依赖库冲突、权限配置、服务启动失败等等。我的目标就是通过这篇记录,把这些潜在的“坑”都提前标出来,让你能更平滑地完成部署,甚至能理解每一步操作背后的“为什么”,而不仅仅是照着命令敲。
适合谁来读这篇记录呢?如果你是一名系统运维工程师,需要为公司搭建测试或生产环境的数据库;或者你是一名后端开发者,想在自己的开发机上体验OpenGauss的特性;亦或是你正在学习数据库技术,想找一个有代表性的开源项目来练手,那么这篇从实战出发、包含大量细节和避坑指南的内容,应该能给你带来直接的帮助。整个过程我会基于最主流的CentOS 7.9来展开,但其中的思路和方法,对于其他Linux发行版也有很高的参考价值。
2. 部署前的核心准备与规划
部署任何一个服务,尤其是数据库这种有状态的核心服务,最忌讳的就是“拿到安装包就开干”。前期规划做得好,能避免后期至少80%的麻烦。对于OpenGauss在CentOS上的部署,我们需要从环境、资源和策略三个维度进行准备。
2.1 服务器环境与资源评估
首先,我们得明确服务器是否满足OpenGauss的基本要求。根据官方文档,OpenGauss对硬件和操作系统有一定的基础要求。
硬件资源考量:
- CPU与内存:这是性能的基石。对于学习和功能测试,2核4GB是起步配置。但如果打算进行压力测试或模拟小规模生产环境,建议至少4核8GB。OpenGauss在内存充足的情况下,能更好地利用其多核并发处理和列存储引擎的优势。我这次使用的是一台4核8GB的虚拟机,作为单机版部署足够。
- 磁盘空间与IO:数据库最吃IO。你需要规划好几块空间:
- 软件安装目录:存放OpenGauss二进制文件、配套工具等,约需要1-2GB。
- 数据目录:这是核心,存放所有的表数据、索引、日志(WAL)等。初始可能不大,但必须考虑增长。建议单独挂载一块高性能磁盘(如SSD)给数据目录,容量至少20GB起步。机械硬盘在IO密集型场景下会成为瓶颈。
- 归档与备份目录:如果开启WAL归档或计划做物理备份,需要额外空间。
- 网络:确保服务器IP固定,防火墙规则(如SELinux、firewalld)需要提前配置,以免安装后无法远程连接。
操作系统确认:我使用的是CentOS 7.9 Minimal安装,系统纯净,干扰少。务必通过cat /etc/redhat-release确认版本。虽然OpenGauss也支持CentOS 8等,但7.9是目前企业环境中存量最大、最稳定的版本之一,相关社区资料也最丰富。
注意:强烈建议在部署前对服务器做一个快照或备份。任何对系统级配置和服务的修改都有潜在风险,有回退方案会让你在操作时更加从容。
2.2 用户与权限规划
在Linux下,直接用root用户运行数据库服务是极不安全的做法。OpenGauss要求创建一个专用的操作系统用户来运行数据库实例,通常是omm(OpenGauss Manager的缩写)。
创建omm用户及用户组:
# 创建用户组dbgrp和用户omm groupadd dbgrp useradd -g dbgrp omm # 为omm用户设置密码 passwd omm关键目录权限设置:我们需要为omm用户准备两个核心目录:
- 软件安装目录:例如
/opt/opengauss。这个目录存放解压后的安装包,omm用户需要有读取和执行权限。 - 数据目录:例如
/opt/opengauss/data。这个目录是数据库实例的家,omm用户必须拥有完整的读写权限。
# 创建目录 mkdir -p /opt/opengauss mkdir -p /opt/opengauss/data # 更改属主为omm用户和dbgrp组 chown -R omm:dbgrp /opt/opengauss # 设置权限,确保omm用户有完全控制权 chmod -R 700 /opt/opengauss/data这里将数据目录权限设置为700,意味着只有omm用户自己可以读、写、执行,其他任何用户(包括同组用户)都无权访问,这是基于最小权限原则的安全加固。
2.3 系统参数与依赖库调优
数据库高效运行离不开操作系统内核参数的支持。OpenGauss像大多数高性能数据库一样,对共享内存、信号量、文件句柄、内存分配策略等有特定要求。直接使用系统默认参数,很可能在运行高并发负载时遇到“Cannot allocate memory”或“Too many open files”这类错误。
内核参数调整:编辑/etc/sysctl.conf文件,在末尾添加或修改以下参数。这些参数主要影响内存管理和进程间通信。
# 编辑sysctl配置 vim /etc/sysctl.conf # 添加或修改如下内容 # 共享内存段最大尺寸,建议大于数据库共享缓冲区大小 kernel.shmmax = 68719476736 # 所有共享内存段总大小 kernel.shmall = 4294967296 # 信号量相关参数,限制和集合数 kernel.sem = 250 32000 100 128 # 文件句柄系统级限制 fs.file-max = 6815744 # 异步IO请求数上限 fs.aio-max-nr = 1048576 # 每个进程可打开的文件句柄数(软限制) fs.nr_open = 1000000 # 内存过量使用策略,对于数据库服务器,建议设置为1(允许,但谨慎) vm.overcommit_memory = 1 # 减少交换倾向,让系统更倾向于使用物理内存 vm.swappiness = 0 # 控制脏页写回磁盘的策略,提升IO性能 vm.dirty_background_ratio = 5 vm.dirty_ratio = 10 # 网络相关,提高TCP连接性能 net.ipv4.ip_local_port_range = 26000 65535 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 4194304修改完成后,执行sysctl -p使配置立即生效。这些数值需要根据你的实际物理内存大小进行调整。例如,kernel.shmmax一般设置为物理内存的80%左右(以字节为单位)。
用户资源限制调整:编辑/etc/security/limits.conf,为omm用户设置资源软硬限制,防止单个数据库进程耗尽系统资源。
vim /etc/security/limits.conf # 在文件末尾添加 omm soft nofile 1000000 omm hard nofile 1000000 omm soft nproc unlimited omm hard nproc unlimited这里将omm用户可打开的文件数(nofile)设置为一个很大的值,因为数据库会同时打开很多数据文件、日志文件和连接。nproc(进程数)设置为unlimited,因为数据库服务可能会fork出多个子进程。
安装基础依赖库:CentOS Minimal安装缺少一些必要的开发库和工具,需要手动安装。
yum install -y bzip2 net-tools python3 python3-devel libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl其中libaio是异步IO库,对数据库性能至关重要;net-tools提供了ifconfig等网络诊断工具;python3是OpenGauss安装脚本和部分工具的运行环境。
3. OpenGauss安装包获取与解压
准备工作就绪后,我们就可以着手获取OpenGauss的安装软件了。这里有几个关键选择点。
3.1 版本与安装包选择
访问OpenGauss开源社区或官方网站,你可以找到多个版本的安装包。对于初学者和生产环境,我强烈推荐选择“极简版”安装包。
- 为什么是极简版?它包含了运行数据库实例最核心的二进制文件、基础工具和依赖库,体积小,部署快,依赖清晰,非常适合单机学习和测试。而“企业版”安装包通常包含了OM(运维管理)组件、CM(集群管理)组件等,用于复杂的集群部署,对于单机环境来说过于臃肿,且配置更复杂。
- 版本选择:选择稳定的、文档丰富的主版本。例如,3.0.x或3.1.x都是不错的选择。注意匹配你的操作系统架构(x86_64或aarch64)。
我以openGauss-3.1.0-CentOS-64bit.tar.bz2这个极简版包为例。你可以通过wget直接下载到服务器上。
# 切换到omm用户,并在其家目录或/tmp下操作 su - omm cd /tmp # 使用wget下载,请替换为实际的下载链接 wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/x86/openGauss-3.1.0-CentOS-64bit.tar.bz23.2 解压与目录结构解析
下载完成后,将其解压到我们之前规划好的软件安装目录。
# 解压到/opt/opengauss tar -xjf openGauss-3.1.0-CentOS-64bit.tar.bz2 -C /opt/opengauss # 进入解压后的目录 cd /opt/opengauss ls -la解压后,你会看到一个以数据库版本命名的目录,例如openGauss-3.1.0-CentOS-64bit。进入这个目录,其典型结构如下:
bin/: 核心二进制文件所在,如gs_initdb(初始化数据库簇)、gs_ctl(数据库服务控制)、gsql(命令行客户端)等。lib/: 数据库运行所需的动态链接库。share/: 时区信息、编码映射文件等共享数据。simpleInstall/:这是单机极简安装的脚本目录,是我们本次部署的重点。script/: 包含一些辅助脚本,如创建用户的gs_preinstall等(在极简版中可能不包含OM组件相关的复杂脚本)。
simpleInstall目录下的install.sh脚本,封装了初始化数据目录、启动数据库等一系列操作,极大地简化了单机部署流程。在部署前,花几分钟看看这个脚本的头部注释或使用./install.sh --help,能让你对安装参数有个大致了解。
4. 使用极简安装脚本一键部署
这是整个部署过程的核心环节。极简安装脚本install.sh将多个步骤合并,但理解其背后的每一步,对于排查问题和后续手动运维至关重要。
4.1 安装脚本执行与参数解读
首先,切换到simpleInstall目录,并以omm用户身份执行安装脚本。最关键的是指定数据目录(-D)和设置数据库初始密码(-w)。
cd /opt/opengauss/openGauss-3.1.0-CentOS-64bit/simpleInstall ./install.sh -D /opt/opengauss/data -w "YourStrongPassword123"参数详解:
-D /opt/opengauss/data: 指定数据库簇(即数据目录)的路径。这就是我们之前创建并授权给omm的目录。所有数据库文件都将存储于此。-w "YourStrongPassword123": 设置数据库超级用户(gsql初始连接时默认使用的用户,在OpenGauss中通常是初始化时指定的用户名,脚本里可能固定或提示)的密码。请务必替换为一个高强度的复杂密码,这是安全的第一道防线。
执行这个命令后,脚本会依次做以下几件事:
- 检查环境:验证当前用户(必须是
omm)、目录权限、依赖库等。 - 初始化数据库簇:调用
gs_initdb,在指定的-D目录下创建数据库的文件结构和基础配置文件(postgresql.conf,pg_hba.conf等)。这是数据库的“骨架”。 - 修改基础配置:脚本会自动调整
postgresql.conf中的一些关键参数,如监听地址(listen_addresses)、端口(port,默认为5432)等,使其能够接受本地连接。 - 启动数据库服务:使用
gs_ctl start命令以后台进程方式启动数据库实例。 - 创建默认数据库:创建一个名为
postgres的默认数据库。 - 输出连接信息:脚本执行成功后,会在终端打印出如何连接数据库的提示。
整个过程如果顺利,一两分钟就能完成。你会看到“[complete successfully]”之类的成功提示。
4.2 安装过程深度监控与日志分析
安装过程并非总是绿灯。如果脚本执行失败或卡住,学会查看日志是定位问题的关键。安装脚本和数据库本身都会产生日志。
1. 实时跟踪脚本输出:脚本执行时,除了标准输出,它可能将详细日志重定向到文件。仔细阅读终端输出的每一行错误信息,通常能直接指出问题,如“Permission denied”(权限不足)或“could not load library”(依赖库缺失)。
2. 查看数据库日志:数据库运行日志位于数据目录下的pg_log子目录中(例如/opt/opengauss/data/pg_log)。如果数据库启动失败,这里是寻找根源的第一现场。
# 切换到omm用户查看最新日志 su - omm tail -f /opt/opengauss/data/pg_log/postgresql-*.log使用tail -f可以实时监控日志输出,对于诊断启动过程中的问题非常有用。常见的启动错误包括:端口被占用、共享内存分配失败、配置文件语法错误等。
3. 验证数据库进程:安装脚本声称成功后,最好手动验证一下数据库进程是否真的在运行。
ps -ef | grep gaussdb你应该能看到一个以omm用户运行的gaussdb进程,其启动参数中包含了你的数据目录路径-D /opt/opengauss/data。如果看不到这个进程,说明数据库没有正常启动,需要回头检查日志。
5. 安装后配置与基础连接测试
安装脚本成功运行,只代表数据库实例跑起来了。要让它能被安全、稳定地使用,还需要进行一些关键的初始配置。
5.1 核心配置文件详解与调优
数据库的行为主要由两个文件控制,它们都位于数据目录下。
1.postgresql.conf: 主配置文件,控制数据库实例的运行参数。安装后,我们需要编辑它,至少确保以下两点:
- 允许远程连接:默认可能只监听本地回环地址(
localhost)。找到listen_addresses参数。# 使用vim编辑,注意保持omm用户权限 vim /opt/opengauss/data/postgresql.conf # 找到并修改 listen_addresses = '*' # 监听所有IP地址,生产环境建议指定具体IP # port = 5432 # 默认端口,如无冲突可不改 - 调整内存参数(根据服务器资源):找到
shared_buffers(共享缓冲区)和work_mem(工作内存)等参数。对于我们的4核8GB测试机,可以初步设置为:
修改任何参数后,都需要重启数据库服务或发送重载信号才能生效。shared_buffers = 2GB # 通常设为物理内存的1/4 work_mem = 16MB # 每个排序/哈希操作可用内存,适中即可 max_connections = 100 # 最大连接数,根据需求调整
2.pg_hba.conf: 客户端认证配置文件,控制谁、用什么方式、从哪里可以连接数据库。这是安全配置的重中之重。初始配置可能只允许本地trust(无条件信任)连接。我们需要添加规则以允许远程密码连接。
vim /opt/opengauss/data/pg_hba.conf # 在文件末尾添加一行,允许所有IP通过MD5密码认证连接所有数据库的所有用户(请根据实际安全需求收紧规则) host all all 0.0.0.0/0 md5 # 解释:连接类型 数据库名 用户名 客户端IP地址/掩码 认证方法这条规则表示:允许任何IP地址(0.0.0.0/0)的主机,使用MD5密码认证方式,连接所有数据库(all)的所有用户(all)。在生产环境中,你应该将0.0.0.0/0替换为具体的应用服务器IP段,并限制可连接的数据库和用户。
修改pg_hba.conf后,无需重启数据库,只需让数据库重新加载配置即可:
# 使用gs_ctl reload,需要指定数据目录 -D /opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_ctl reload -D /opt/opengauss/data5.2 防火墙放行与首次连接验证
CentOS 7默认使用firewalld作为防火墙。我们需要放行OpenGauss的默认端口(5432)。
# 如果firewalld正在运行 sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload # 检查端口是否开放 sudo firewall-cmd --list-ports | grep 5432现在,可以进行首次连接测试了。我们从服务器本地和远程分别测试。
1. 本地连接测试(使用gsql命令行客户端):
# 切换到omm用户,使用gsql连接本地的postgres数据库 su - omm cd /opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin ./gsql -d postgres -p 5432 # 或者直接指定主机和用户(初始超级用户名通常是安装时指定的或默认为初始化用户) ./gsql -h 127.0.0.1 -p 5432 -d postgres -U omm -W输入安装时设置的密码。如果成功,你会看到postgres=#的提示符。执行\l可以列出所有数据库,\q退出。
2. 远程连接测试(使用通用PostgreSQL客户端,如pgAdmin或DBeaver):在另一台机器上,使用图形化工具或psql命令行,填写以下信息:
- 主机/IP地址: 你的CentOS服务器IP。
- 端口: 5432。
- 数据库: postgres。
- 用户名: omm (或其他你在初始化时指定的超级用户)。
- 密码: 安装时设置的密码。
- 驱动/类型: PostgreSQL (OpenGauss兼容PostgreSQL协议)。
如果连接成功,恭喜你,OpenGauss数据库服务已经部署完成并可以对外提供服务了。
6. 基础运维操作与常见问题排错
数据库部署上线只是第一步,日常的启停、状态监控和问题排查是运维的基本功。
6.1 服务的启动、停止与状态检查
虽然安装脚本简化了初次启动,但我们必须掌握手动管理服务的方法。主要使用gs_ctl命令,它位于安装目录的bin/下。
启动数据库:
su - omm /opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_ctl start -D /opt/opengauss/data -l /opt/opengauss/data/start.log-D: 指定数据目录路径,必须。-l: 可选,将启动日志输出到指定文件,便于排查启动问题。
停止数据库:有几种停止模式,推荐使用smart或fast模式,允许活动事务完成。
/opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_ctl stop -D /opt/opengauss/data -m fast-m: 停止模式。smart: 等待所有活动事务结束和客户端断开后关闭(优雅)。fast: 回滚所有活动事务,然后强制断开客户端并关闭(常用)。immediate: 立即终止,类似kill -9,可能导致数据损坏,仅用于紧急情况。
重启数据库:
/opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_ctl restart -D /opt/opengauss/data -m fast查看数据库状态:
/opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_ctl status -D /opt/opengauss/data这个命令会清晰地告诉你数据库实例是否正在运行,以及它的主进程PID和数据目录位置。
6.2 常见部署故障与解决方案实录
在实际操作中,你可能会遇到以下典型问题。这里记录了我的排查思路和解决方法。
问题1: 执行安装脚本时,报错“Failed to initialize the database: could not load library”
- 现象: 初始化数据库簇阶段失败,提示缺少某个
.so库文件。 - 排查: 错误信息通常会给出具体的库名,如
libreadline.so.7。 - 解决:
- 使用
yum provides */libreadline.so.7查找哪个软件包提供这个库。 - 安装对应的软件包,例如
yum install -y readline-devel。 - 有时是库文件符号链接问题。可以手动创建软链接,例如:
ln -s /usr/lib64/libreadline.so.8 /usr/lib64/libreadline.so.7(注意版本号)。但更推荐安装正确版本的开发包。
- 使用
问题2: 数据库启动失败,日志显示“could not create shared memory segment: Cannot allocate memory”
- 现象: 数据库进程无法启动,共享内存分配失败。
- 排查: 检查
/etc/sysctl.conf中kernel.shmmax和kernel.shmall的值是否设置过小,或者是否没有执行sysctl -p生效。 - 解决:
- 确保
sysctl -p已执行。 - 检查当前值:
sysctl -a | grep shm。 - 如果物理内存很大,但值设置太小,按前面章节的建议调大并重新生效。
- 也可能是其他进程占用了大量共享内存。用
ipcs -m查看,如果确实有大量残留,且确认无用,可以用ipcrm命令清理(需谨慎)。
- 确保
问题3: 远程客户端无法连接,提示“no pg_hba.conf entry for host”
- 现象: 本地可以连,远程连不上。
- 排查: 这是
pg_hba.conf配置问题。错误信息很明确,没有为你的客户端IP配置访问规则。 - 解决:
- 检查
pg_hba.conf文件,确保添加了对应客户端IP段的host规则,并且认证方法是md5或sha256(而不是trust,除非在绝对安全的内部网络)。 - 检查
postgresql.conf中的listen_addresses是否包含服务器IP或设置为‘*’。 - 检查服务器防火墙是否放行了5432端口。
- 修改
pg_hba.conf后,务必执行gs_ctl reload -D /your/data/dir使配置生效。
- 检查
问题4: 连接数据库时,密码明明正确却一直认证失败
- 现象: 在
gsql或客户端工具中反复输入密码,均提示错误。 - 排查:
- 首先确认密码没有输错,注意大小写。
- 检查
pg_hba.conf中对应连接规则的认证方法。如果是md5,则密码是以MD5哈希形式传输和比对的。 - 一个常见坑: OpenGauss的某些版本或安装方式,初始超级用户的密码可能被存储在数据目录下的一个临时文件中,或者脚本设置了默认密码。查看安装脚本的输出日志,看是否有提示初始密码是什么。有时密码就是
-w参数指定的那个。
- 解决: 如果忘记密码,可以在本地以
trust认证方式连接后,修改用户密码。- 临时修改
pg_hba.conf,将本地连接方法改为trust。 - 重载配置
gs_ctl reload。 - 本地无密码连接:
gsql -d postgres -U omm -h 127.0.0.1。 - 执行SQL修改密码:
ALTER USER omm IDENTIFIED BY ‘NewStrongPassword123’ REPLACE ‘OldPassword’;(如果不知道旧密码,可能需要超级用户权限的特殊语法,或参考手册)。 - 将
pg_hba.conf改回md5并重载。
- 临时修改
问题5: 数据库服务意外停止,如何查看原因?
- 现象:
gs_ctl status显示服务未运行,但之前是好的。 - 排查:
- 首要检查日志:立刻查看数据目录下的
pg_log,按时间排序找到最新的日志文件,搜索FATAL,ERROR,PANIC等关键词。 - 检查磁盘空间:运行
df -h和du -sh /opt/opengauss/data,看是否是数据盘或日志盘满了。数据库在磁盘满时可能会停止。 - 检查内存:运行
free -h,看是否因为内存耗尽被操作系统OOM Killer杀掉了进程。可以查看系统日志/var/log/messages寻找线索。 - 检查是否有残留锁文件:数据目录下可能存在
postmaster.pid文件,如果数据库非正常退出,这个文件可能残留,导致下次启动失败。在确认没有数据库实例运行后,可以手动删除它:rm -f /opt/opengauss/data/postmaster.pid。
- 首要检查日志:立刻查看数据目录下的
- 解决: 根据日志和系统状态提示的具体错误进行修复。如果是空间满,清理日志或扩容;如果是配置错误,修正配置后重启。
7. 性能初探与基础安全加固建议
部署完成并能稳定运行后,我们可以进行一些简单的性能观察和安全加固,让这个数据库环境更接近于可用的状态。
7.1 关键性能指标观察
不需要复杂的监控工具,利用数据库自带的视图和系统命令,就能获得很多信息。
1. 连接与会话信息:在gsql中,执行SELECT * FROM pg_stat_activity;可以查看当前所有数据库连接/会话的详细信息,包括它们正在执行的SQL、连接时间、客户端地址等。这对于发现异常长事务或空闲连接很有用。
2. 数据库与表空间大小:执行\l+可以查看各个数据库的大小。执行SELECT spcname, pg_tablespace_size(oid) FROM pg_tablespace;可以查看表空间使用情况。
3. 系统负载与磁盘IO:在操作系统层面,使用top或htop查看gaussdb进程的CPU和内存占用。使用iostat -x 2查看磁盘的IOPS和吞吐量,判断磁盘是否成为瓶颈。
4. 检查点与缓冲区:在gsql中,执行SELECT * FROM pg_stat_bgwriter;可以查看后台写进程的统计信息,如检查点数量、缓冲区写入情况等,这些与磁盘IO性能紧密相关。
7.2 基础安全加固 checklist
安全无小事,尤其是数据库。在开放给应用使用前,请至少完成以下加固步骤:
- 修改默认用户密码: 安装脚本设置的密码可能已泄露。立即用
ALTER USER语句为所有初始用户(特别是超级用户)修改为强密码。 - 遵循最小权限原则:
- 为你的应用程序创建专用的数据库用户,而不是直接使用超级用户
omm。 - 为新用户授予其业务所需的最小权限。例如,只授予对特定数据库的
CONNECT权限,和对特定表的SELECT, INSERT, UPDATE, DELETE权限。
-- 示例:创建应用用户并授权 CREATE USER app_user WITH PASSWORD ‘YourAppPassword’; GRANT CONNECT ON DATABASE your_db TO app_user; \c your_db GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; - 为你的应用程序创建专用的数据库用户,而不是直接使用超级用户
- 收紧
pg_hba.conf: 将允许0.0.0.0/0的规则,改为具体的、已知的应用服务器IP段。例如:host all all 192.168.1.0/24 md5。 - 考虑修改默认端口: 将端口从默认的5432改为其他不常用的端口,可以避免一些简单的端口扫描攻击。在
postgresql.conf中修改port参数,并同步调整防火墙规则。 - 定期备份: 制定备份策略。OpenGauss支持逻辑备份(
gs_dump)和物理备份(基于PITR)。即使是测试环境,养成备份习惯也至关重要。# 逻辑备份单个数据库示例 /opt/opengauss/openGauss-3.1.0-CentOS-64bit/bin/gs_dump -h 127.0.0.1 -p 5432 -U omm -W -F c -f /backup/your_db.dump your_db - 操作系统层面: 确保
omm用户的密码强度,定期更新系统补丁,使用非root用户进行日常运维。
部署只是一个开始。接下来,你可以在这个基础上创建业务数据库、导入数据、进行性能测试,或者探索OpenGauss的特色功能,如MOT内存表、AI能力等。记住,所有对生产环境有影响的操作,一定要先在测试环境充分验证。