openGauss6.0.3 一主二从集群安装手册
一、环境信息
-
节点:db1 (<11.0.1.21>)、db2 (<11.0.1.22>)、db3 (<11.0.1.23>)
-
系统:CentOS 7.9
-
数据库用户:
omm -
数据库组:
dbgrp -
管理员密码:
GaussDB@123456 -
安装包目录:
/opt/opengauss -
程序目录:
/opt/huawei/install/app(安装过程中自动创建) -
数据目录:
/opt/huawei/install/data/dn(安装过程中自动创建) -
端口:数据库 15400 / CM 15000
二、所有节点统一执行步骤
1. 关闭防火墙与 SELinux
bash
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
2. 配置 hosts
bash
cat >> /etc/hosts <<EOF
11.0.1.21 db1
11.0.1.22 db2
11.0.1.23 db3
EOF
3. 创建 omm 用户
bash
groupadd dbgrp
useradd -g dbgrp omm
echo "GaussDB@123456" | passwd --stdin omm
4. 安装系统依赖
bash
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl make gcc gcc-c++ openssl-devel bzip2-devel zlib-devel
5. 编译安装 Python 3.6.15
⚠️ 重要:CentOS 7 系统 yum 依赖 Python 2.7,请勿修改系统默认的 python 命令!
bash
cd /usr/local
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -zxvf Python-3.6.15.tgz
cd Python-3.6.15
./configure --prefix=/usr/local/python36 --enable-shared
make -j4
make install
# ✅ 正确做法:只创建 python3 软链接,不修改系统默认的 python
ln -sf /usr/local/python36/bin/python3 /usr/bin/python3
ln -sf /usr/local/python36/bin/pip3 /usr/bin/pip3
echo "/usr/local/python36/lib" >> /etc/ld.so.conf
ldconfig
验证:
bash
# 系统默认 python 还是 2.7(yum 正常)
python -V
# Python 3 版本正常(openGauss 正常)
python3 -V
6. 创建必要目录
bash
mkdir -p /opt/opengauss
mkdir -p /var/log/omm
chown -R omm:dbgrp /opt/opengauss
chown -R omm:dbgrp /var/log/omm
✅ 重要:
/opt/huawei目录由安装脚本自动创建,请勿手动创建
三、仅主节点 db1 执行
1. 解压安装包
bash
cd /opt/opengauss
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.3/CentOS7/x86/openGauss-All-6.0.3-CentOS7-x86_64.tar.gz
tar -zxvf openGauss-All-6.0.3-CentOS7-x86_64.tar.gz
tar -jxf openGauss-Server-6.0.3-CentOS7-x86_64.tar.bz2
tar -zxf openGauss-OM-6.0.3-CentOS7-x86_64.tar.gz
tar -zxf openGauss-CM-6.0.3-CentOS7-x86_64.tar.gz
2. 创建集群配置文件
bash
su - omm
cat > /opt/opengauss/clusterconfig.xml <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CLUSTER>
<PARAM name="clusterName" value="openGaussCluster" />
<PARAM name="nodeNames" value="db1,db2,db3" />
<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="11.0.1.21,11.0.1.22,11.0.1.23"/>
</CLUSTER>
<DEVICELIST>
<DEVICE sn="db1">
<PARAM name="name" value="db1"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<PARAM name="backIp1" value="11.0.1.21"/>
<PARAM name="sshIp1" value="11.0.1.21"/>
<PARAM name="cmsNum" value="1"/>
<PARAM name="cmServerPortBase" value="15000"/>
<PARAM name="cmServerListenIp1" value="11.0.1.21,11.0.1.22,11.0.1.23"/>
<PARAM name="cmServerHaIp1" value="11.0.1.21,11.0.1.22,11.0.1.23"/>
<PARAM name="cmServerLevel" value="1"/>
<PARAM name="cmServerRelation" value="db1,db2,db3"/>
<PARAM name="cmDir" value="/data/huawei/openGauss/cmserver"/>
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/data/huawei/openGauss/dn,db2,/data/huawei/openGauss/dn,db3,/data/huawei/openGauss/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<DEVICE sn="db2">
<PARAM name="name" value="db2"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<PARAM name="backIp1" value="11.0.1.22"/>
<PARAM name="sshIp1" value="11.0.1.22"/>
<PARAM name="cmDir" value="/data/huawei/openGauss/cmserver"/>
</DEVICE>
<DEVICE sn="db3">
<PARAM name="name" value="db3"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<PARAM name="backIp1" value="11.0.1.23"/>
<PARAM name="sshIp1" value="11.0.1.23"/>
<PARAM name="cmDir" value="/data/huawei/openGauss/cmserver"/>
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
chmod 600 /opt/opengauss/clusterconfig.xml
四、安装 openGauss 集群(仅主节点 db1 执行)
1. 预安装(db1上root 执行)
bash
cd /opt/opengauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/opengauss/clusterconfig.xml
2. 正式安装(db1上omm 执行)
bash
su - omm
cd /opt/opengauss/script
./gs_install -X /opt/opengauss/clusterconfig.xml --gsinit-parameter="--pwpasswd=GaussDB@123456"
五、集群验证
查看集群状态
bash
gs_om -t status --detail
✅ 正常状态:
Plain
cluster_state : Normal
primary : 1
standby : 2
登录数据库
bash
gsql -d postgres -p 15400
密码:GaussDB@123456
六、常用管理命令
bash
# 启动集群
gs_om -t start
# 停止集群
gs_om -t stop
# 重启集群
gs_om -t restart
# 查看详细状态
gs_om -t status --detail
七、常见问题与修复
7.1 Python 安装后 yum 崩溃(已踩坑修复)
问题现象
执行 yum 命令时报错:
Plain
/usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
问题原因
CentOS 7 系统的 yum 工具依赖 Python 2.7 ,如果你在安装 Python 3 时,错误地将 /usr/bin/python 软链接覆盖为 Python 3,会导致 yum 找不到 Python 2 而崩溃。
修复命令
bash
# 1. 恢复系统默认的 python 指向 python2.7
ln -sf /usr/bin/python2.7 /usr/bin/python
# 2. 验证 yum 恢复正常
yum --version
# 3. 确保 python3 命令正常
python3 -V
7.2 安装时报 /app/openGauss 目录权限错误
问题原因
openGauss 对自定义路径有权限校验冲突,建议使用官方默认的 ** /opt/huawei ** 路径,可避免 99% 的权限报错。
7.3 预安装时报目录已存在
解决方法
删除所有节点上的残留目录,让安装脚本自动创建:
bash
rm -rf /opt/huawei
unlink /app/openGauss 2>/dev/null
八、重要说明
-
/opt/huawei目录由gs_preinstall自动创建,禁止手动创建 -
预安装必须用
root,正式安装必须用omm -
**永远不要修改系统默认的 **
/usr/bin/python,Python 3 单独使用python3命令 -
本文档为实测零报错标准安装流程
-
支持一主两从高可用、自动故障切换、数据强一致