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

openGauss数据库自动安装脚本

脚本仅仅适用于

# openGauss数据库自动安装脚本
# 适用于openEuler 22.03 ARM64系统
# 版本: openGauss 6.0.0

#!/bin/bash# openGauss数据库自动安装脚本
# 适用于openEuler 22.03 ARM64系统
# 版本: openGauss 6.0.0# 设置默认密码(可根据需要修改)
DEFAULT_PASSWORD="Admin@2025"
HOSTNAME=host01# 主机名验证函数
validate_hostname() {local hostname=$1if [[ $hostname =~ ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$ ]]; thenreturn 0elsereturn 1fi
}# 获取本机IP地址
get_local_ip() {local ip=$(ip route get 1 2>/dev/null | awk '{print $7}' | head -1)if [[ -z "$ip" || "$ip" == "1" ]]; thenip=$(hostname -I 2>/dev/null | awk '{print $1}')fiif [[ -z "$ip" ]]; thenip="127.0.0.1"fiecho $ip
}set -e  # 遇到错误立即退出echo "========================================="
echo "openGauss 6.0.0 自动安装脚本"
echo "适用系统: openEuler 22.03 ARM64"
echo "========================================="# 检查系统版本
echo "检查系统版本..."
cat /etc/hostname
cat /etc/os-release | grep -E "NAME|VERSION"# 智能主机名配置
echo "========================================="
echo "配置主机名..."
CURRENT_HOSTNAME=$(hostname)
echo "当前主机名: $CURRENT_HOSTNAME"# 验证目标主机名格式
if ! validate_hostname "$HOSTNAME"; thenecho "错误: 主机名格式不正确: $HOSTNAME"exit 1
fi# 检查是否需要更改主机名
if [[ "$CURRENT_HOSTNAME" != "$HOSTNAME" ]]; thenecho "需要将主机名从 '$CURRENT_HOSTNAME' 更改为 '$HOSTNAME'"# 更改主机名echo "正在更改主机名..."hostnamectl set-hostname ${HOSTNAME}echo ${HOSTNAME} > /etc/hostname# 验证更改结果NEW_HOSTNAME=$(hostname)if [[ "$NEW_HOSTNAME" == "$HOSTNAME" ]]; thenecho "✅ 主机名更改成功: $NEW_HOSTNAME"elseecho "❌ 主机名更改失败"exit 1fi
elseecho "✅ 主机名已经是 '$HOSTNAME',无需更改"
fi# 显示主机名状态
echo "主机名配置状态:"
hostnamectl status | grep -E "Static hostname|Icon name|Machine ID"# 获取网络配置
LOCAL_IP=$(get_local_ip)
echo "检测到本机IP地址: $LOCAL_IP"
echo "========================================="# 步骤1: 下载openGauss安装包
echo "步骤1: 下载openGauss 6.0.0安装包..."
cd ~
if [ ! -f "openGauss-All-6.0.0-openEuler22.03-aarch64.tar.gz" ]; thenecho "正在下载openGauss安装包..."wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/openEuler22.03/arm/openGauss-All-6.0.0-openEuler22.03-aarch64.tar.gzecho "下载完成"
elseecho "安装包已存在,跳过下载"
fi# 步骤2: 安装必要工具
echo "步骤2: 安装必要工具..."
yum install tar expect -y# 步骤3: 创建cluster_config.xml配置文件
echo "步骤4: 创建集群配置文件..."cat > cluster_config.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<ROOT><!-- openGauss整体信息 --><CLUSTER><PARAM name="clusterName" value="dbCluster" /><PARAM name="nodeNames" value="${HOSTNAME}" /><PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /><PARAM name="gaussdbLogPath" value="/var/log/omm" /><PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" /><PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /><PARAM name="corePath" value="/opt/huawei/corefile" /><PARAM name="backIp1s" value="${LOCAL_IP}"/></CLUSTER><!-- 每台服务器上的节点部署信息 --><DEVICELIST><!-- 节点1上的部署信息 --><DEVICE sn="${HOSTNAME}"><PARAM name="name" value="${HOSTNAME}"/><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 使用检测到的本机IP地址 --><PARAM name="backIp1" value="${LOCAL_IP}"/><PARAM name="sshIp1" value="${LOCAL_IP}"/><!--dbnode--><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE></DEVICELIST>
</ROOT>
EOFecho "✅ 集群配置文件创建完成"
echo "配置信息:"
echo "- 主机名: ${HOSTNAME}"
echo "- IP地址: ${LOCAL_IP}"
echo "- 数据库端口: 15400"echo "集群配置文件已创建: cluster_config.xml"# 步骤4: 创建安装目录
echo "步骤5: 创建安装目录..."
mkdir -p /opt/software/openGauss/script/# 步骤5: 切换到安装目录
echo "步骤6: 切换到安装目录..."
cd /opt/software/openGauss# 步骤6: 解压安装包
echo "步骤3: 解压openGauss安装包..."
tar -zxf ~/openGauss-All-6.0.0-openEuler22.03-aarch64.tar.gztar -zxf openGauss-OM-6.0.0-openEuler22.03-aarch64.tar.gz# 步骤7: 复制配置文件
echo "步骤8: 复制配置文件..."
cp ~/cluster_config.xml .# 步骤8: 设置目录权限
echo "步骤9: 设置目录权限..."
chmod 755 -R /opt/software# 步骤10: 执行预安装
echo "步骤10: 执行预安装..."
cd /opt/software/openGauss/script/echo "正在执行预安装,这可能需要几分钟时间..."
echo "将自动创建omm用户并设置密码为: ${DEFAULT_PASSWORD}"
echo ""# 使用expect自动化输入
expect << EOF
set timeout 300
log_user 1
spawn ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xmlexpect {-re "Are you sure you want to create the user.*\\(yes/no\\)\\?" {send "yes\r"exp_continue}-re "Please enter password for cluster user\\..*Password:" {send "${DEFAULT_PASSWORD}\r"exp_continue}-re "Please enter password for cluster user again\\..*Password:" {send "${DEFAULT_PASSWORD}\r"exp_continue}-re "Password:" {send "${DEFAULT_PASSWORD}\r"exp_continue}"Preinstallation succeeded" {puts "预安装成功完成"}timeout {puts "操作超时"exit 1}eof {puts "预安装进程结束"}
}
EOFecho "预安装完成!"
echo ""
echo "========================================="
echo "预安装已完成,omm用户已创建"
echo "用户名: omm"
echo "密码: ${DEFAULT_PASSWORD}"
echo ""
echo "开始执行数据库安装..."
echo "========================================="# 切换到omm用户并执行安装
echo "正在切换到omm用户并执行数据库安装..."
su - omm << 'OMMSUDO'
cd /opt/software/openGauss# 使用expect自动化数据库安装过程
expect << EOF
set timeout 600
log_user 1
spawn gs_install -X /opt/software/openGauss/cluster_config.xmlexpect {-re "Please enter password for database:.*" {send "Admin@2025\r"exp_continue}-re "Please repeat for database:.*" {send "Admin@2025\r"exp_continue}-re "Password:.*" {send "Admin@2025\r"exp_continue}"Installation succeeded" {puts "数据库安装成功完成"}"completed successfully" {puts "安装成功完成"}timeout {puts "安装超时"exit 1}eof {puts "安装进程结束"}
}# 检查数据库状态
puts "正在检查数据库状态..."
spawn gs_om -t statusexpect {"cluster_state" {puts "数据库状态检查完成"}timeout {puts "状态检查超时"}eof
}
EOFOMMSUDOecho ""
echo "========================================="
echo "openGauss数据库安装完成!"
echo ""
echo "数据库信息:"
echo "- 用户名: omm"
echo "- 用户密码: ${DEFAULT_PASSWORD}"
echo "- 数据库密码: ${DEFAULT_PASSWORD}"
echo "- 数据库端口: 15400"
echo ""
echo "常用命令:"
echo "1. 查看数据库状态: gs_om -t status"
echo "2. 连接数据库: gsql -d postgres -p 15400"
echo "3. 启动数据库: gs_om -t start"
echo "4. 停止数据库: gs_om -t stop"
echo "========================================="
echo ""
echo "注意事项:"
echo "- 请确保系统已关闭防火墙和SELinux"
echo "- 请确保系统时间同步"
echo "- 如果遇到权限问题,请检查用户和组是否正确创建"
echo "- 默认数据库端口为15400"
echo "- omm用户密码为: ${DEFAULT_PASSWORD}"
echo ""
echo "安装脚本执行完成!"

直接结果输出:

[root@localhost ~]# ./install_opengauss.sh
=========================================
openGauss 6.0.0 自动安装脚本
适用系统: openEuler 22.03 ARM64
=========================================
检查系统版本...
host01
NAME="openEuler"
VERSION="22.03 (LTS-SP4)"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP4)"
=========================================
配置主机名...
当前主机名: host01
✅ 主机名已经是 'host01',无需更改
主机名配置状态:Static hostname: host01Icon name: computer-serverMachine ID: 60ff7b0de9544cbeb4740c2661edc8b6
检测到本机IP地址: 192.168.10.192
=========================================
步骤1: 下载openGauss 6.0.0安装包...
安装包已存在,跳过下载
步骤2: 安装必要工具...
Last metadata expiration check: 0:00:45 ago on 2025年09月28日 星期日 18时40分16秒.
Package tar-2:1.34-5.oe2203sp4.aarch64 is already installed.
Package expect-1:5.45.4-8.oe2203sp4.aarch64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
步骤4: 创建集群配置文件...
✅ 集群配置文件创建完成
配置信息:
- 主机名: host01
- IP地址: 192.168.10.192
- 数据库端口: 15400
集群配置文件已创建: cluster_config.xml
步骤5: 创建安装目录...
步骤6: 切换到安装目录...
步骤3: 解压openGauss安装包...
步骤8: 复制配置文件...
步骤9: 设置目录权限...
步骤10: 执行预安装...
正在执行预安装,这可能需要几分钟时间...
将自动创建omm用户并设置密码为: Admin@2025spawn ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting host ip env
Successfully set host ip env.
Are you sure you want to create the user[omm] (yes/no)? yes
Please enter password for cluster user.
Password:
Please enter password for cluster user again.
Password:
Generate cluster user password files successfully.
Successfully created [omm] user on all nodes.
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check OS software.
Checking OS version.
Successfully checked OS version.
Checking cpu instructions.
Successfully checked cpu instructions.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/openGauss/script/gs_checkos -i A -h host01 -X /opt/software/openGauss/cluster_config.xml --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
Successfully set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.
预安装成功完成
预安装完成!=========================================
预安装已完成,omm用户已创建
用户名: omm
密码: Admin@2025开始执行数据库安装...
=========================================
正在切换到omm用户并执行数据库安装...
上一次登录: 日 9月 28 18:42:22 CST 2025
spawn gs_install -X /opt/software/openGauss/cluster_config.xml
Parsing the configuration file.
Successfully checked gs_uninstall on every node.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Successfully created the backup directory.
begin deploy..
Installing the cluster.
begin prepare Install Cluster..
Checking the installation environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt cipher and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /opt/huawei/install/app/share/sslcert/om
NO cm_server instance, no need to create CA for CM.
Non-dss_ssl_enable, no need to create CA for DSS
Cluster installation is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on database nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
The cluster status is Normal.
Successfully started cluster.
Successfully installed application.
end deploy..
安装进程结束
正在检查数据库状态...
spawn gs_om -t status
-----------------------------------------------------------------------cluster_name    : dbCluster
cluster_state   : Normal
redistributing  : No-----------------------------------------------------------------------
数据库状态检查完成=========================================
openGauss数据库安装完成!数据库信息:
- 用户名: omm
- 用户密码: Admin@2025
- 数据库密码: Admin@2025
- 数据库端口: 15400常用命令:
1. 查看数据库状态: gs_om -t status
2. 连接数据库: gsql -d postgres -p 15400
3. 启动数据库: gs_om -t start
4. 停止数据库: gs_om -t stop
=========================================注意事项:
- 请确保系统已关闭防火墙和SELinux
- 请确保系统时间同步
- 如果遇到权限问题,请检查用户和组是否正确创建
- 默认数据库端口为15400
- omm用户密码为: Admin@2025安装脚本执行完成!

http://www.dtcms.com/a/420177.html

相关文章:

  • GSM8K:评估大模型数学推理能力的关键数据集
  • 网站建立公司百度站长平台h5网站
  • P1989 三元环计数
  • asp 公司网站建设网站培训班
  • 郴州网站制作公司电话网站下拉广告
  • 营销型网站建设的概念WordPress网站封装app教程
  • 天津建设厅网站导航网站怎么赚钱
  • 做带支付功能的网站网站和软件建站
  • 广西桂林建设局网站手游排行榜
  • 【QT第二章】信号与槽
  • 网站建设站点做网站通过什么赚钱
  • 济宁网站建设是什么意思wordpress头像上传插件
  • 做影视网站什么cms好用吗网站配置域名这样做
  • 【Spring】Spring Boot 自动配置
  • 青浦网站优化前程无忧做网站多少钱
  • 常熟港口建设费申报网站怎么网站建设
  • 文件的读写 二进制形式打开文件
  • 吴忠住房和城乡建设网站成都官网seo技术
  • 惠州建网站服务天津专业网站制作流程优势
  • 北京联通网站备案php 网站模板
  • 清河做网站哪里好齐河网站建设
  • CodeBuddy CLI工具深度测评:从零到一实现鸿蒙游戏开发实践
  • 网站前后台模板服务专业的网站建设服务
  • 资讯网站策划怎么写龙岗公司网站
  • fr后缀网站在线做logo
  • 茶楼 网站免费网站建设域名
  • NeRF+3DGS——提升渲染质量与压缩模型参数
  • Appcelerator打包ipa有哪些优势
  • 五华建设银行网站宁波seo网络推广优化价格
  • 网站目录结构说明上海网络建站模板