GaussDB Inside 2.23.01.280 集中式一主一备安装

GaussDB Inside 2.23.01.280 集中式一主一备安装文档

一、环境规划

节点 主机名 IP 角色
节点 1 node1 10.10.9.211 主库
节点 2 node2 10.10.9.212 备库

以下"系统准备"步骤需在两台机器上执行,除非特别注明。


二、修改主机名和 hosts

node1 执行

bash 复制代码
hostnamectl set-hostname node1
exec bash

node2 执行

bash 复制代码
hostnamectl set-hostname node2
exec bash

两台机器均写入 /etc/hosts

bash 复制代码
cat >> /etc/hosts <<'EOF'
10.10.9.211 node1
10.10.9.212 node2
EOF

验证:

bash 复制代码
hostname
getent hosts node1
getent hosts node2
ping -c 1 node2

三、系统基础配置

1. SELinux

bash 复制代码
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
getenforce

getenforce 应返回:

text 复制代码
Disabled

修改 /etc/selinux/config 后,建议重启服务器使配置彻底生效。

2. 防火墙和 iptables

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld

iptables -F

3. 文件句柄、进程数和资源限制

不要覆盖 /etc/security/limits.conf,创建独立配置:

bash 复制代码
cat > /etc/security/limits.d/99-gaussdb-omm.conf <<'EOF'
omm soft nofile 1000000
omm hard nofile 1000000
omm soft nproc 1000000
omm hard nproc 1000000
omm soft stack 32768
omm hard stack 32768
omm soft memlock unlimited
omm hard memlock unlimited
omm soft core unlimited
omm hard core unlimited
EOF

配置系统参数:

bash 复制代码
cat > /etc/sysctl.d/99-gaussdb.conf <<'EOF'
kernel.core_pattern = /opt/gaussdb/corefile/core-%e-%p-%t
fs.file-max = 2097152
fs.nr_open = 1048576
kernel.pid_max = 4194304
EOF

sysctl --system

创建 core 文件目录:

bash 复制代码
mkdir -p /opt/gaussdb/corefile
chmod 750 /opt/gaussdb/corefile

设置当前及后续登录 shell 的 core 限制:

bash 复制代码
cat >> /etc/profile <<'EOF'

# GaussDB core dump
ulimit -c unlimited
EOF

source /etc/profile

验证:

bash 复制代码
sysctl fs.file-max fs.nr_open kernel.pid_max kernel.core_pattern

四、准备安装目录和安装介质

node1执行即可

bash 复制代码
mkdir -p /opt/software/Gaussdb
mkdir -p /opt/gaussdb

将安装总包上传到:

text 复制代码
/opt/software/Gaussdb/

例如:

text 复制代码
GaussDB_X86_Kylinv10_Centralized_2.23.01.280_20240826073625.tar.gz

解压总安装包:

bash 复制代码
cd /opt/software/Gaussdb

tar -xf GaussDB_X86_Kylinv10_Centralized_2.23.01.280_20240826073625.tar.gz

确认总包解压后包含 gauss 目录:

bash 复制代码
ls -l

进入 gauss 目录,并将 OM、Server 安装组件解压到当前安装介质根目录:

bash 复制代码
cd /opt/software/Gaussdb/gauss

tar -xf GaussDB-Kernel_503.1.0.SPC2700.B015_Om_X86_Centralized.tar.gz
tar -xf GaussDB-Kernel_503.1.0.SPC2700.B015_Server_X86_Centralized.tar.gz

确认脚本和依赖文件存在:

bash 复制代码
ls -l script/gs_preinstall
ls -l script/gs_install
ls -l dependency/lib/libstdc++.so.6

为避免路径混乱,统一将实际安装介质目录固定为:

text 复制代码
/opt/software/Gaussdb

如果解压后脚本位于 /opt/software/Gaussdb/gauss/om/script,则将 OM 内容同步至安装目录:

bash 复制代码
rsync -aH /opt/software/Gaussdb/gauss/om/ /opt/software/Gaussdb/

复制 Kylin Server 二进制安装包至安装目录根路径:

bash 复制代码
cp -a \
/opt/software/Gaussdb/gauss/server/kylin/GaussDB-Kernel_503.1.0.SPC2700_Kylin_64bit.bin \
/opt/software/Gaussdb/

最终确认:

bash 复制代码
ls -lh /opt/software/Gaussdb/GaussDB-Kernel_503.1.0.SPC2700_Kylin_64bit.bin
ls -lh /opt/software/Gaussdb/dependency/lib/libstdc++.so.6
ls -lh /opt/software/Gaussdb/script/gs_preinstall

五、创建 XML 配置文件

在 node1 创建:

bash 复制代码
cd /opt/software/Gaussdb/script

cat > cluster_config.xml <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="dbCluster" />

        <PARAM name="nodeNames" value="node1,node2" />

        <PARAM name="gaussdbAppPath" value="/opt/gaussdb/install/app" />
        <PARAM name="gaussdbLogPath" value="/opt/gaussdb/log/omm" />
        <PARAM name="tmpMppdbPath" value="/opt/gaussdb/tmp" />
        <PARAM name="gaussdbToolPath" value="/opt/gaussdb/tool" />
        <PARAM name="corePath" value="/opt/gaussdb/corefile" />

        <PARAM name="backIp1s" value="10.10.9.211,10.10.9.212" />

        <PARAM name="clusterType" value="single-inst" />
    </CLUSTER>

    <DEVICELIST>
        <DEVICE sn="node1">
            <PARAM name="name" value="node1" />
            <PARAM name="azName" value="AZ1" />
            <PARAM name="azPriority" value="1" />
            <PARAM name="backIp1" value="10.10.9.211" />
            <PARAM name="sshIp1" value="10.10.9.211" />

            <PARAM name="cmDir" value="/opt/gaussdb/install/cm" />
            <PARAM name="cmsNum" value="1" />
            <PARAM name="cmServerPortBase" value="5000" />
            <PARAM name="cmServerlevel" value="1" />
            <PARAM name="cmServerListenIp1" value="10.10.9.211,10.10.9.212" />
            <PARAM name="cmServerRelation" value="node1,node2" />
            <PARAM name="cmAgentConnectIp" value="10.10.9.211" />

            <PARAM name="etcdNum" value="1" />
            <PARAM name="etcdListenPort" value="2379" />
            <PARAM name="etcdHaPort" value="2380" />
            <PARAM name="etcdDir1" value="/opt/gaussdb/install/etcd" />
            <PARAM name="etcdListenIp1" value="10.10.9.211" />
            <PARAM name="etcdHaIp1" value="10.10.9.211" />

            <PARAM name="dataNum" value="1" />
            <PARAM name="dataPortBase" value="15400" />
            <PARAM name="dataListenIp" value="(10.10.9.211),(10.10.9.212)" />
            <PARAM name="dataNode1" value="/opt/gaussdb/install/data/dn,node2,/opt/gaussdb/install/data/dn" />
            <PARAM name="dataNode1_syncNum" value="1" />
        </DEVICE>

        <DEVICE sn="node2">
            <PARAM name="name" value="node2" />
            <PARAM name="azName" value="AZ1" />
            <PARAM name="azPriority" value="1" />
            <PARAM name="backIp1" value="10.10.9.212" />
            <PARAM name="sshIp1" value="10.10.9.212" />

            <PARAM name="cmDir" value="/opt/gaussdb/install/cm" />

            <PARAM name="etcdNum" value="1" />
            <PARAM name="etcdListenPort" value="2379" />
            <PARAM name="etcdHaPort" value="2380" />
            <PARAM name="etcdDir1" value="/opt/gaussdb/install/etcd" />
            <PARAM name="etcdListenIp1" value="10.10.9.212" />
            <PARAM name="etcdHaIp1" value="10.10.9.212" />
        </DEVICE>
    </DEVICELIST>
</ROOT>
EOF

六、预安装

在 node1 的 root 用户下执行:

bash 复制代码
cd /opt/software/Gaussdb/script

./gs_preinstall \
  -U omm \
  -G dbgrp \
  -X /opt/software/Gaussdb/script/cluster_config.xml \
  --alarm-type=5

执行期间会询问:

  • 是否创建 root 用户 SSH 互信;
  • 是否创建 omm 用户和 SSH 互信。

均输入:

text 复制代码
yes

预安装成功标志:

text 复制代码
Preinstallation succeeded.

预安装完成后,检查 OS 告警:

bash 复制代码
/opt/software/Gaussdb/script/gs_checkos -i A -h node1,node2

After the pre-installation is completed, execute the following commands on both machines:

bash 复制代码
chown -R omm:dbgrp /opt/software/Gaussdb
chown -R omm:dbgrp /opt/gaussdb

确认:

bash 复制代码
ls -ld /opt/software/Gaussdb /opt/gaussdb

七、授权安装目录

预安装完成后,两台机器均执行:

bash 复制代码
chown -R omm:dbgrp /opt/software/Gaussdb
chown -R omm:dbgrp /opt/gaussdb

确认:

bash 复制代码
ls -ld /opt/software/Gaussdb /opt/gaussdb

八、正式安装

仅在 node1 执行:

bash 复制代码
su - omm

使用环境变量中的 gs_install

bash 复制代码
which gs_install

执行安装:

bash 复制代码
gs_install -X /opt/software/Gaussdb/script/cluster_config.xml

不要使用:

bash 复制代码
./gs_install -U omm -G dbgrp ...

因为正式安装阶段的 gs_install 不接受 -U-G--alarm-type 参数。

安装成功时应看到类似:

text 复制代码
Successfully started cluster.
cluster_state      : Normal
Datanode State
    primary        : 1
    standby        : 1
Successfully installed application.

九、连接数据库

在 node1,以 omm 用户执行:

bash 复制代码
gsql -h 127.0.0.1 -p 15400 -d postgres

也可以指定主库 IP:

bash 复制代码
gsql -h 10.10.9.211 -p 15400 -d postgres

默认 gsql -d postgres 会连接默认 socket 和 5432 端口,不适用于本配置。

首次登录后修改密码:

sql 复制代码
ALTER ROLE "omm" PASSWORD '请替换为强密码';

查看内核版本:

sql 复制代码
select version();

确认当前实例是否为主库:

sql 复制代码
select pg_is_in_recovery();

返回:

text 复制代码
f

表示当前实例为主库,可读写。

返回:

text 复制代码
t

表示当前实例为备库,通常只读。

退出数据库:

sql 复制代码
\q

十、查看集群状态

omm 用户执行:

bash 复制代码
gs_om -t status --detail

简要状态:

bash 复制代码
gs_om -t status

正常状态应包含:

text 复制代码
cluster_state      : Normal
Datanode State
    primary        : 1
    standby        : 1

十一、常用端口

服务 端口
GaussDB 主库连接端口 15400
CM Server 5000
etcd Client 2379
etcd Peer 2380

检查端口:

bash 复制代码
netstat -lntp | egrep '15400|5000|2379|2380'
相关推荐
吴声子夜歌4 小时前
MongoDB 4.2——应用程序设计
数据库·mongodb
数字新视界4 小时前
动环监控可视化在数据中心管理中的应用与实践解析
数据库·物联网·解决方案·动环监控·大榕树
极地野狼 音乐哔哔4 小时前
数据库备份恢复的原理实践
数据库
互联网中的一颗神经元5 小时前
小白python入门 - 25. SQL 与表设计入门
数据库·python·sql
ttwuai5 小时前
AI 生成后台改数据后,操作日志别只记按钮:Go + MySQL 怎么验
数据库·人工智能·mysql·golang
KaMeidebaby5 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
ClouGence6 小时前
除了 DBeaver,2026 年还有哪些好用的开源数据库管理工具?
数据库·开源
景芯SoC芯片实战6 小时前
12nm工艺下,6T-Turbo Cell的Filler到底该怎么插?
数据库·数字ic·dft·soc后端
韩楚风6 小时前
【参天引擎】一次宕机后的数据恢复,让我把 Cantian 持久化与恢复的六大机制全搞明白了
服务器·网络·数据库·分布式·mysql·架构·cantian
寒月小酒7 小时前
第五章 生成集成 和第六章 RAG评估(all-in-rag学习)
数据库·学习