6.0.0企业版单机部署 如何部署备机

已部署了单机的opengauss 6.0 LTS 企业版,现在想要再做个备机, 没找到相关操作文档。

1 系统版本 centos7.9

2 数据库版本 6.0 LTS

请问有具体的操作文档或者步骤吗?

答案内容由AI生成,仅供参考:

:white_check_mark: 六、总结

任务 说明
:white_check_mark: 当前状态 已部署 openGauss 6.0 LTS 单机版(CentOS 7.9)
:cross_mark: 直接加备机 不支持
:white_check_mark: 推荐方案 备份 → 重新部署主备集群 → 恢复数据
:white_check_mark: 支持版本 openGauss 6.0 LTS 支持主备部署
:books: 参考依据 上下文中提到的 openGauss 6.0 LTS High Availability Primary-Backup Deployment on openEuler 是同类部署模式,逻辑一致,仅操作系统为 openEuler;本文适配至 CentOS 7.9 环境
点击此处查看详细分析解答

openGauss 6.0 LTS 企业版单机部署后添加备机指南

您已在 CentOS 7.9 系统上部署了 openGauss 6.0 LTS 企业版 的单机实例,现希望在此基础上扩展为高可用的主备架构。根据您的需求,以下是基于现有上下文信息整理的详细指导。


:magnifying_glass_tilted_left: 一、核心概念与可行性分析

:white_check_mark: 支持情况

  • openGauss 支持 一主多备(Primary-Backup) 高可用部署模式。
  • 您当前的版本 openGauss 6.0 LTS 完全支持将单机系统升级为一主一备或一主多备集群
  • 实现方式:通过工具 gs_preinstallgs_install 配置集群部署或使用批量部署工具(如 PTK),支持从单节点扩展为多节点。

:warning: 注意事项

  • 目前 openGauss 不支持对已运行的单机实例直接“在线转集群”或“动态添加备机”,必须通过重新部署或迁移方式实现。
  • 因此,建议操作流程包括:
    1. 备份原单机数据;
    2. 卸载单机实例(可选);
    3. 按照主备架构重新部署集群;
    4. 恢复数据。

:clipboard: 二、硬件与环境要求

组件 要求
操作系统 CentOS 7.6 或 CentOS 7.9(您已满足)
数据库版本 openGauss 6.0 LTS
软件包 openGauss 企业版安装包(需包含 OM 和 CM 模块)
CPU架构 x86_64 或 ARM64
节点数量 至少 2 台服务器或虚拟机(1主 + 1备)
网络配置 主备节点间可通信,关闭防火墙和 SELinux
时间同步 所有节点时间需同步(建议使用 NTP)

:puzzle_piece: 三、主备集群部署步骤(在现有单机基础上)

由于无法直接在运行中的单机上添加备机,推荐以下迁移式部署流程。

步骤 1:备份现有单机数据库

# 切换到 omm 用户
su - omm

# 使用 gs_dump 导出数据
gs_dump postgres -f /data/backup/opengauss_backup.sql -p 5432

:white_check_mark: 建议同时备份配置文件(如 postgresql.conf, pg_hba.conf

cp $GAUSSHOME/data/single_node/*.conf /data/backup/conf_bak/

步骤 2:准备新主备环境

1. 获取正确版本的安装包

确保下载的是支持 主备部署 的 openGauss 企业版安装包,例如:

openGauss-x.x.x-RHEL-x86_64.tar.gz

版本需为 6.0 LTS,支持 CentOS 7.9。可从 openGauss 官网 下载。

2. 准备两台机器

  • 主节点(原单机机器):保留数据,作为新的 Primary
  • 备节点(新增机器):全新安装系统、创建 omm 用户、配置 SSH 互信

3. 设置主机名和 hosts 文件

# 主节点
hostnamectl set-hostname primary-node
echo "192.168.x.x primary-node" >> /etc/hosts
echo "192.168.x.y standby-node" >> /etc/hosts

# 备节点
hostnamectl set-hostname standby-node
echo "..." >> /etc/hosts

4. 关闭安全限制

systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

步骤 3:配置主备集群 XML 文件

创建 cluster_config.xml 文件(关键步骤):

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="dbCluster"/>
        <PARAM name="nodeNames" value="primary-node,standby-node"/>
        <PARAM name="gaussdbAppPath" value="/opt/openGauss/app"/>
        <PARAM name="gaussdbLogPath" value="/var/log/omm"/>
        <PARAM name="tmpMppdbPath" value="/tmp"/>
        <PARAM name="gaussdbToolPath" value="/opt/openGauss/om"/>
        <PARAM name="corePath" value="/opt/openGauss/corefile"/>
        <PARAM name="backIp1s" value="192.168.x.x,192.168.x.y"/>
    </CLUSTER>

    <DEVICELIST>
        <!-- 主节点 -->
        <DEVICE sn="primary-node">
            <PARAM name="name" value="primary-node"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <PARAM name="backIp1" value="192.168.x.x"/>
            <PARAM name="sshIp1" value="192.168.x.x"/>
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="15400"/>
            <PARAM name="dataNode1" value="/opt/openGauss/data/dn"/>
        </DEVICE>

        <!-- 备节点 -->
        <DEVICE sn="standby-node">
            <PARAM name="name" value="standby-node"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <PARAM name="backIp1" value="192.168.x.y"/>
            <PARAM name="sshIp1" value="192.168.x.y"/>
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="15400"/>
            <PARAM name="dataNode1" value="/opt/openGauss/data/dn"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

:wrench: 修改所有 IP 和路径以匹配您的实际环境。


步骤 4:预安装与初始化集群

以 root 身份执行预安装:

./gs_preinstall -U omm -G dbgrp -X /path/to/cluster_config.xml

以 omm 用户执行安装:

gs_install -X /path/to/cluster_config.xml

步骤 5:恢复原数据

安装完成后,恢复之前导出的数据:

gs_restore -d postgres /data/backup/opengauss_backup.sql

或使用 gsql 执行 SQL 导入:

gsql -d postgres -p 15400 -f /data/backup/opengauss_backup.sql

步骤 6:验证主备状态

gs_om -t status --detail

正常输出应显示:

[   Cluster State   ]
cluster_state : Normal

[  Datanode State  ]
node   node_ip         instance              state
--------------------------------------------------
1  primary-node  15400  Primary Normal
2  standby-node  15400  Standby Normal

:blue_book: 四、参考资料与文档链接


:red_question_mark: 五、常见问题解答

Q1:是否可以不停机添加备机?

:cross_mark: 不支持。openGauss 目前无法在单机运行时动态加入备节点。必须通过重新部署实现。

Q2:如何确认版本是否支持主备?

查看是否包含 CM(Cluster Manager)和 OM 模块:

ls $GAUSSHOME/bin | grep cm_ctl
ls $GAUSSHOME/bin | grep gs_om

如有,则支持主备。

Q3:CentOS 7.9 是否兼容?

:white_check_mark: 是。官方支持 CentOS 7.6+,openGauss 6.0 LTS 支持 6.0.2LTS-centos7.9(见文档 chunk #2 和 KG 数据)。


:white_check_mark: 六、总结

任务 说明
:white_check_mark: 当前状态 已部署 openGauss 6.0 LTS 单机版(CentOS 7.9)
:cross_mark: 直接加备机 不支持
:white_check_mark: 推荐方案 备份 → 重新部署主备集群 → 恢复数据
:white_check_mark: 支持版本 openGauss 6.0 LTS 支持主备部署
:books: 参考依据 上下文中提到的 openGauss 6.0 LTS High Availability Primary-Backup Deployment on openEuler 是同类部署模式,逻辑一致,仅操作系统为 openEuler;本文适配至 CentOS 7.9 环境

如您追求完全自动化或图形化部署,可尝试使用 PTK(Planned Toolkit) 自动化部署工具,支持模板化安装主备集群。

如需进一步协助,欢迎提供当前 $GAUSSHOME 路径、数据路径、端口等信息,可为您定制 XML 示例。

由于原有的数据库已经提供线上服务 我不能这样停机重新部署。

有没有其他方式能实现? 比如找etl工具 实时同步数据到 备库, 达到类似的效果。 可以允许有1分钟的延迟

openGauss提供了gs_expansion工具对数据库的备机进行扩容。支持从单机或者一主多备最多扩容到一主八备。

我单机部署的 也可以使用此方案 实现增加备机吗?

可以的

不需要cm环境也可以是吗

单机部署时的xml配置是:

<?xml version="1.0" encoding="UTF-8"?>

不需要有cm,比如你要部署一主两备,只需要配好一主两备的xml文件,注意现在的单机作为主机,然后直接扩就行了。

好的 多谢!

等于我现在用gs_expansion命令 + 需要配置的备机配置文件(xml) 直接执行即可。

可以完全参考:gs_expansion | openGauss文档 | openGauss社区 这个吧

是的

感谢!!!! 我试下

好的,扩容有什么问题可以再交流。