全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SQL及关系型数据库数据分析
60 0
2025-11-20

openGauss部署指南

一、部署前的准备工作

在开始部署openGauss之前,确保以下步骤已完成:

  • 用户组及普通用户的创建已完成。
  • 所有服务器的操作系统和网络环境均已正常运行。

服务安装包的准备

安装包可通过以下途径获取:

确保普通用户拥有对数据库包解压路径、安装路径的读、写和执行权限,同时安装路径必须为空。示例如下:

mkdir -p /opt/software/openGauss
chown -R openGauss:openGauss /opt/software/

此外,还需确保普通用户对下载的openGauss压缩包具有执行权限。

在安装前,请检查指定的openGauss端口(默认5432)是否已被其他程序占用。如果端口被占用,请考虑更改端口号或停止占用端口的服务。

# 若无任何输出,则表示端口未被占用
netstat -anpt | grep 5432

操作系统与硬件平台支持

openGauss支持的硬件平台包括但不限于:

  • ARM服务器
  • 基于x86_64架构的通用PC服务器

支持的存储类型包括SATA、SAS和SSD等本地存储方式,以及千兆和万兆以太网网络。

openGauss支持的操作系统如下:

ARM架构

  • openEuler 20.03 LTS(推荐)
  • openEuler 22.03 LTS
  • openEuler 24.03 LTS
  • 统信V20
  • 麒麟V10
  • Asianux 7.5

x86架构

  • openEuler 20.03 LTS
  • openEuler 22.03 LTS
  • openEuler 24.03 LTS
  • CentOS 7.6
  • Asianux 7.6
  • 麒麟V10

二、openGauss的部署

将下载的openGauss压缩包解压至安装目录(本例中为/opt/software/openGauss,根据实际情况进行调整):

tar -jxf openGauss-Server-6.0.2-openEuler20.03-x86_64.tar.bz2 -C /opt/software/openGauss

进入解压后的目录中的simpleInstall文件夹,并执行install.sh脚本来完成openGauss的安装:

cd /opt/software/openGauss/simpleInstall
sh install.sh -w "test_openGauss@123" -p 5432 && source ~/.bashrc

其中,-w参数用于指定数据库的初始密码,-p参数用于指定openGauss的端口号(默认为5432)。首次尝试执行时可能出现语法错误:

通过bash命令重新执行install.sh脚本以解决上述问题:

bash install.sh -w "test_openGauss@123" -p 5432 && source ~/.bashrc

尽管之前的错误不再出现,但可能会遇到新的问题:

检查系统中是否存在名为libreadline.so的文件:

ls /opt/software/openGauss/lib/* | grep libreadline.so*

发现系统中并未提供所需的libreadline.so.7库文件,但存在更高版本的libreadline.so.8.1:

由于系统自带的库文件版本高于openGauss所需版本,可以通过创建符号链接来解决问题:

cd /opt/software/openGauss/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libreadline.so.8.1 ./libreadline.so.7
source ~/.bashrc

再次执行install.sh脚本,这次安装过程顺利进行:

安装完成后,使用ps和gs_ctl命令检查openGauss服务是否已成功启动:

ps ux | grep gaussdb

服务已启动:

进一步验证服务状态:

gs_ctl query -D /opt/software/openGauss/data/single_node

三、常见问题及其解决方法

问题1:无法找到libreadline.so.7库文件

在Ubuntu 22.04中,默认提供的Readline库版本可能是8或更高,而openGauss的安装脚本依赖于较低版本的libreadline.so.7库文件,因此可能导致部署失败。

解决方案:

首先,在系统中查找是否有该库文件的存在(如果系统中不存在,则需要手动下载):

find /usr -name "libreadline.so.*" 2>/dev/null

如果系统中存在不同版本的libreadline.so文件,但与openGauss所需版本不符,可以通过创建符号链接的方式解决版本不匹配的问题。

将不匹配的版本软链接到服务库下的 libreadline.so.7 文件:

cd /opt/software/openGauss/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libreadline.so.8.1 ./libreadline.so.7
source ~/.bashrc

重新运行 install.sh 脚本来安装 openGauss,确保安装过程顺利。

报错 2:出现“Syntax error: ‘(’ unexpected”的错误信息。

错误原因分析:

错误的根本原因与操作系统环境(Ubuntu 22.04)及脚本解释器的选择相关。具体来说,问题出在脚本尝试使用 sh 命令执行时失败,而使用 bash 命令则能正常工作。

根源分析

关键问题是,在 Ubuntu 系统上,sh 和 bash 命令可能指向不同的 Shell 解释器。Ubuntu 自 6.10 版本起,默认将 /bin/sh 链接到 /bin/dash,而非 /bin/bash。Dash 是一种轻量级的 Shell,遵循 POSIX 标准,但不支持某些 bash 扩展语法。

Shebang 行的作用

脚本的第一行通常是 #!/bin/bash,称为 Shebang 行,指示该脚本应由 bash 解释器执行。当通过 bash install.sh 或赋予脚本执行权限后用 ./install.sh 运行时,系统会根据 Shebang 行使用 bash 解释器,因此脚本可以正常运行。

错误发生的场景

当使用 sh install.sh 命令时,实际上是强制使用 sh(即 dash)来运行脚本。此时,脚本中的 Shebang 行被当作普通注释忽略,整个脚本由 dash 尝试解析。

dash 在解析脚本第 11 行 function usage() 时出现问题。虽然 function 关键字在 bash 中用于定义函数,但在更严格的 POSIX Shell 标准(如 dash)中,仅支持省略 function 关键字的函数定义格式(即 usage())。因此,dash 不认识 function 关键字,导致遇到左括号 ( 时报错。

对比分析

特性 使用 sh install.sh(失败) 使用 bash install.sh(成功)
实际解释器 /bin/dash(Ubuntu 默认) /bin/bash
是否尊重 Shebang 否,强制使用 sh(dash) 是,使用 Shebang 指定的 bash
函数语法支持 仅支持 POSIX 标准(如 usage()) 支持 bash 扩展(如 function usage())
结果 遇到 function 关键字报错 正常解析和执行

解决方案

方法一:使用正确的命令执行脚本(推荐)

既然脚本已指定需要 bash,应始终使用 bash 命令来运行它:

bash install.sh -w "test_openGauss" -p 5432 && source ~/.bashrc

将脚本设为直接执行(更规范的做法):

  • 首先,给脚本添加执行权限,然后直接通过路径执行。系统会自动读取 Shebang 行来选择正确的解释器。
chmod +x install.sh
./install.sh -w "test_openGauss" -p 5432 && source ~/.bashrc

方法二:修改脚本代码以兼容 POSIX Shell(不推荐)

理论上,可以移除脚本中的所有 function 关键字,只保留函数名和括号,使其符合 POSIX 标准,从而可以用 sh 执行。

# 将
function usage()
# 改为
usage()

但请注意:如果脚本其他部分还使用了 bash 特有的其他语法(如数组 [[ ]] 条件判断等),修改起来会很复杂且有风险。对于已编写好的复杂脚本,此方法不推荐。

结语

凭借其高性能、高可用性、高安全性、高可靠性和卓越的可维护性,openGauss已成为企业在数字化转型过程中数据库选型的首选。通过采用多核并发控制、行列混合存储及向量化引擎等先进技术,openGauss实现了对百亿级数据的秒级响应,展现出卓越的性能。此外,通过主备多种部署模式、数据页CRC校验及备机并行恢复等机制,确保了金融级别的高可用性和可靠性,其RTO(恢复时间目标)控制在10秒之内。

在安全方面,openGauss提供了全面的密态计算、访问控制与审计功能,构建了从端到端的数据安全保护体系。同时,其特有的闪回与回收站机制,结合AI驱动的智能参数调优和运维诊断功能(AI4DB),显著降低了数据库的日常运维复杂度和潜在风险。这些特点使得openGauss在市场上获得了广泛认可。

截至2024年,openGauss在离线集中式关系型数据库新增市场份额达到了30.2%,其技术路线已经超越了传统的开源数据库,成为市场上的主流选择之一。openGauss已经在金融、电信、政务、能源等多个关键行业中,成功应对了海量数据和高并发业务的挑战。更重要的是,openGauss采用了开放的开源协议,为用户提供了自由定制和持续创新的基础平台。

对于希望选择一款既能支持关键业务稳定运行,又能促进未来创新探索的企业来说,openGauss不仅是一款强大的数据库产品,更是一条协同创新、持续发展的技术路径。我们强烈建议各行业用户深入评估并采用openGauss,让其成为您业务发展的坚实数据基础,共同迎接数智化时代的无限机遇。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群