【数据库】openGauss 6.0 单机自动化安装最佳实践
openGauss 6.0单机自动化安装指南:需准备openEuler 22.03系统环境,将安装包、配置文件和脚本放在/root目录下。核心配置文件clusterconfig.xml需修改omm用户密码。install.sh脚本自动完成依赖安装、文件解压、配置更新及数据库部署。执行前确保主机IP和名称正确,完成后使用gs_om检查状态。该方案简化了安装流程,适合快速部署单机环境。
openGauss 6.0 单机自动化安装最佳实践
一、 环境与文件准备
在开始之前,请确保满足以下条件:
- 操作系统: openEuler 22.03 LTS (或其他兼容的 Linux 发行版)
- 用户权限: 拥有
root用户权限。 - 所需文件:
- openGauss 安装包:
openGauss-All-6.0.2-openEuler22.03-x86_64.tar.gz(https://opengauss.org/zh/download/) - 配置文件:
clusterconfig.xml(下文提供模板) - 安装脚本:
install.sh(下文提供脚本)
- openGauss 安装包:
请将这三个文件全部放置在 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 ]; then
mv /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} ]; then
cp ~/${ALL_PACKAGE_NAME} ${INSTALL_BASE_DIR}/
else
echo "错误: 在主目录 ~/ 未找到安装包 ${ALL_PACKAGE_NAME}"
exit 1
fi
if [ -f ~/${CONFIG_FILE} ]; then
cp ~/${CONFIG_FILE} ${INSTALL_BASE_DIR}/
else
echo "错误: 在主目录 ~/ 未找到配置文件 ${CONFIG_FILE}"
exit 1
fi
cd ${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" ]; then
echo "错误: 无法获取本机IP地址"
exit 1
fi
echo "本机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 ]; then
echo "错误: 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 ]; then
echo ""
echo "=========================================="
echo " openGauss 安装成功!"
echo "=========================================="
else
echo ""
echo "=========================================="
echo " openGauss 安装失败,请检查日志"
echo "=========================================="
fi
三、 执行安装
-
修改密码:打开
clusterconfig.xml文件,修改<PARAM name="password" ...>字段为你自己的安全密码。 -
授予权限:为
install.sh脚本添加可执行权限。chmod +x install.sh -
运行脚本:以
root用户身份执行脚本。./install.sh脚本将自动完成所有安装步骤。请耐心等待,直到看到 “openGauss 安装成功!” 的提示。
四、 安装后验证与使用
安装成功后,你可以通过以下方式验证和使用数据库。
-
切换用户:切换到 openGauss 的运行用户
omm。su - omm -
检查状态:执行
gs_om命令查看集群状态。gs_om -t status --detail如果看到
cluster_state为Normal,则代表数据库运行正常。 -
配置环境变量 (推荐):为了方便在
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 -
连接数据库:使用
gsql工具连接数据库(端口号在xml文件中已配置为15400)。gsql -d postgres -p 15400成功连接后,你将看到
gsql的命令提示符,可以开始执行 SQL 操作。输入\q退出。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)