当前位置: 首页 > news >正文

【数据库】openGauss 6.0 单机自动化安装最佳实践

openGauss 6.0 单机自动化安装最佳实践

一、 环境与文件准备

在开始之前,请确保满足以下条件:

  1. 操作系统: openEuler 22.03 LTS (或其他兼容的 Linux 发行版)
  2. 用户权限: 拥有 root 用户权限。
  3. 所需文件:
    • openGauss 安装包: openGauss-All-6.0.2-openEuler22.03-x86_64.tar.gz(https://opengauss.org/zh/download/)
    • 配置文件: clusterconfig.xml (下文提供模板)
    • 安装脚本: install.sh (下文提供脚本)

请将这三个文件全部放置在 root 用户的主目录 (/root)下。

二、 核心文件详解

1. 配置文件: clusterconfig.xml

该文件是 openGauss 安装的核心,定义了数据库的安装路径、日志路径、节点信息等。脚本会自动读取该文件进行部署。

注意:在运行脚本前,你唯一需要手动修改的是 password 参数,为数据库 omm 用户设置一个安全的密码。

<?xml version="1.0" encoding="UTF-8"?>
<ROOT><CLUSTER><PARAM name="clusterName" value="dbCluster" /><PARAM name="nodeNames" value="hostName" /><PARAM name="gaussdbAppPath" value="/opt/gauss/app" /><PARAM name="gaussdbLogPath" value="/opt/gauss/log" /><PARAM name="tmpMppdbPath" value="/opt/gauss/tmp" /><PARAM name="gaussdbToolPath" value="/opt/gauss/om" /><PARAM name="corePath" value="/opt/gauss/corefile" /><PARAM name="backIp1s" value="192.168.0.1"/><PARAM name="clusterType" value="single-inst"/><PARAM name="password" value="Your_DB_Password@123"/></CLUSTER><DEVICELIST><DEVICE sn="hostName"> <PARAM name="name" value="hostName"/> <PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><PARAM name="backIp1" value="192.168.0.1"/> <PARAM name="sshIp1" value="192.168.0.1"/> <PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/opt/gauss/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE></DEVICELIST>
</ROOT>

2. 自动化安装脚本: install.sh

该脚本是整个自动化流程的核心,它会执行以下所有操作:

  • 安装系统依赖。
  • 执行双重解压,正确释放出安装文件。
  • 自动获取本机 IP 和主机名,并更新 clusterconfig.xml
  • 执行预安装 (gs_preinstall),创建用户和配置内核参数。
  • 执行正式安装 (gs_install)。
  • 检查安装后的数据库状态。
#!/bin/bash# =================================================================
# openGauss 6.0 自动化安装脚本 (V3 - 最终修正版)
# - 采用正确的双重解压逻辑
# =================================================================# --- 变量定义 ---
ALL_PACKAGE_NAME="openGauss-All-6.0.2-openEuler22.03-x86_64.tar.gz"
OM_PACKAGE_NAME="openGauss-OM-6.0.2-openEuler22.03-x86_64.tar.gz"
INSTALL_BASE_DIR="/opt/software/openGauss"
CONFIG_FILE="clusterconfig.xml"echo "### 1. 开始环境准备 ###"# 设置系统语言环境
cat >>/etc/profile<<EOF
export LANG=en_US.UTF-8
EOF
source /etc/profile
echo "设置 LANG=en_US.UTF-8"# 建立 python3 到 python 的软链接
if [ ! -f /usr/bin/python.bak ]; thenmv /usr/bin/python /usr/bin/python.bak
fi
ln -s /usr/bin/python3 /usr/bin/python
echo "Python 链接已设置:"
python -V# 安装依赖包
yum install -y libaio* tar bzip2
echo "依赖包 libaio, tar, bzip2 已安装"echo ""
echo "### 2. 准备安装文件和解压 ###"# 创建安装目录
mkdir -p ${INSTALL_BASE_DIR}# 检查并拷贝文件
if [ -f ~/${ALL_PACKAGE_NAME} ]; thencp ~/${ALL_PACKAGE_NAME} ${INSTALL_BASE_DIR}/
elseecho "错误: 在主目录 ~/ 未找到安装包 ${ALL_PACKAGE_NAME}"exit 1
fiif [ -f ~/${CONFIG_FILE} ]; thencp ~/${CONFIG_FILE} ${INSTALL_BASE_DIR}/
elseecho "错误: 在主目录 ~/ 未找到配置文件 ${CONFIG_FILE}"exit 1
ficd ${INSTALL_BASE_DIR}
echo "文件已拷贝到 ${INSTALL_BASE_DIR}"# 第一步: 解压母包,释放出组件包
echo "正在解压母包 ${ALL_PACKAGE_NAME}..."
tar -zxf ${ALL_PACKAGE_NAME}# 第二步: 解压OM运维工具包,这才会生成 script 目录
echo "正在解压OM工具包 ${OM_PACKAGE_NAME}..."
tar -zxf ${OM_PACKAGE_NAME}
echo "解压完成,script 目录已生成"echo ""
echo "### 3. 动态修改配置文件 ###"# 获取本机IP地址和主机名
HOST_IP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}' | head -1)
HOST_NAME=$(hostname)if [ -z "$HOST_IP" ]; thenecho "错误: 无法获取本机IP地址"exit 1
fiecho "本机IP: ${HOST_IP}"
echo "本机主机名: ${HOST_NAME}"# 使用 sed 命令替换配置文件中的占位符
sed -i "s/192.168.0.1/${HOST_IP}/g" ${INSTALL_BASE_DIR}/${CONFIG_FILE}
sed -i "s/hostName/${HOST_NAME}/g" ${INSTALL_BASE_DIR}/${CONFIG_FILE}
echo "配置文件 ${CONFIG_FILE} 已更新"echo ""
echo "### 4. 执行预安装 ###"# 进入现在应该已经存在的 script 目录
cd "${INSTALL_BASE_DIR}/script"# 执行预安装,它会自动创建 omm 用户和 dbgrp 组
./gs_preinstall -U omm -G dbgrp -X ${INSTALL_BASE_DIR}/${CONFIG_FILE}# 检查预安装是否成功
if [ $? -ne 0 ]; thenecho "错误: gs_preinstall 执行失败,请检查日志"exit 1
fi# 将整个安装目录的所有权赋予 omm 用户
chown -R omm:dbgrp /opt/software/
# 根据XML中的配置,创建并授权数据和日志目录
chown -R omm:dbgrp /opt/gauss
echo "目录权限已设置"echo ""
echo "### 5. 执行正式安装 ###"# 切换到 omm 用户执行安装,并检查安装后的状态
su - omm -c "gs_install -X ${INSTALL_BASE_DIR}/${CONFIG_FILE} && echo '安装成功,正在检查状态...' && gs_om -t status --detail"if [ $? -eq 0 ]; thenecho ""echo "=========================================="echo " openGauss 安装成功!"echo "=========================================="
elseecho ""echo "=========================================="echo " openGauss 安装失败,请检查日志"echo "=========================================="
fi

三、 执行安装

  1. 修改密码:打开 clusterconfig.xml 文件,修改 <PARAM name="password" ...> 字段为你自己的安全密码。

  2. 授予权限:为 install.sh 脚本添加可执行权限。

    chmod +x install.sh
    
  3. 运行脚本:以 root 用户身份执行脚本。

    ./install.sh
    

    脚本将自动完成所有安装步骤。请耐心等待,直到看到 “openGauss 安装成功!” 的提示。

四、 安装后验证与使用

安装成功后,你可以通过以下方式验证和使用数据库。

  1. 切换用户:切换到 openGauss 的运行用户 omm

    su - omm
    
  2. 检查状态:执行 gs_om 命令查看集群状态。

    gs_om -t status --detail
    

    如果看到 cluster_stateNormal,则代表数据库运行正常。

  3. 配置环境变量 (推荐):为了方便在 omm 用户下直接使用 gsql 等命令,建议将环境变量加入到 ~/.bashrc

    echo "export GAUSSHOME=/opt/gauss/app" >> ~/.bashrc
    echo "export PATH=\$GAUSSHOME/bin:\$PATH" >> ~/.bashrc
    echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
    source ~/.bashrc
    
  4. 连接数据库:使用 gsql 工具连接数据库(端口号在 xml 文件中已配置为 15400)。

    gsql -d postgres -p 15400
    

    成功连接后,你将看到 gsql 的命令提示符,可以开始执行 SQL 操作。输入 \q 退出。

http://www.xdnf.cn/news/1419265.html

相关文章:

  • ‌NAT穿透技术原理:P2P通信中的打洞机制解析‌
  • Python核心技术开发指南(033)——函数的嵌套
  • 【LeetCode 热题 100】5. 最长回文子串——中心扩散法
  • 数组基础及原理
  • NoteGen – 跨平台 AI 笔记应用,支持截图、插图和文本输入记录方式
  • 从零开始学习n8n-定时器+HTTP+飞书多维表格(下)
  • 在 Halo 中导入 Markdown 和 Word 文档
  • Go语言入门学习笔记
  • React前端开发笔记合集
  • Go 语言 sync 包解析
  • 三消消乐益智小游戏抖音快手微信小程序看广告流量主开源
  • 前端安全防护深度实践:从XSS到CSRF的完整安全解决方案
  • 大模型落地:从微调到部署的全景式实战指南
  • DAY02:【DL 第一弹】pytorch
  • 宋红康 JVM 笔记 Day09|方法区
  • 【阿里云实战】基于MQTT的Java SDK收发消息-终端和终端消息收发
  • 汽车曲柄连杆机构cad+ea113+设计说明书
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第八章知识点问答(18题)
  • 从理论到RTL,实战实现高可靠ECC校验(附完整开源代码/脚本)(3) RTL实现实战
  • DBeaver社区版AI助手(AI Assistant)设置
  • 基于Hadoop与层次聚类技术的电子游戏销售分析系统的设计与实现
  • 机器翻译:python库PyGTranslator的详细使用
  • (论文速读)3DTopia-XL:高质量3D资产生成技术
  • FOUPK3云服务平台旗下产品
  • ARM-进阶汇编指令
  • linux安装gitlab详细教程,本地管理源代码
  • 存储掉电强制拉库引起ORA-01555和ORA-01189/ORA-01190故障处理---惜分飞
  • 英伟达Newton与OpenTwins如何重构具身智能“伴随式数采”范式
  • 【ElasticSearch实用篇-04】Boost权重底层原理和基本使用
  • Ruoyi项目MyBatis升级MyBatis-Plus指南