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

Pacemaker + PostgreSQL 16 + 仲裁模式高可用集群部署指南

文档版本信息
版本: v1.0
更新日期: 2026-05-22
适用系统: CentOS 7/8, RHEL 7/8, Rocky Linux 8/9
数据库版本: PostgreSQL 16.x
集群软件: Pacemaker + Corosync + PCS
仲裁模式: QDevice (Quorum Device)

一、架构概述
1.1 整体架构图
┌─────────────────┐
│ QDevice │
│ (仲裁设备) │
│ 10.212.9.100 │
└────────┬────────┘

┌──────────────┼──────────────┐
│ │ │
┌────────▼────────┐ │ ┌────────▼────────┐
│ Node1 (Primary) │◄───┼───►│ Node2 (Standby) │
│ 10.212.9.60 │ │ │ 10.212.9.62 │
│ │ │ │ │
│ PostgreSQL 16 │ │ │ PostgreSQL 16 │
│ Pacemaker │ │ │ Pacemaker │
│ Corosync │ │ │ Corosync │
└─────────────────┘ │ └─────────────────┘

┌────────▼────────┐
│ Virtual IP │
│ 10.212.9.200 │
└─────────────────┘
1.2 节点角色说明
节点 IP 地址 角色 说明
Node1 10.212.9.60 Primary 主数据库节点,承载写操作
Node2 10.212.9.62 Standby 备数据库节点,实时同步
QDevice 10.212.9.100 仲裁设备 防止脑裂,提供第三票
VIP 10.212.9.200 虚拟IP 客户端连接入口
1.3 高可用特性
自动故障切换: 主节点故障时,备节点自动接管
数据零丢失: 采用同步流复制(synchronous replication)
防脑裂机制: QDevice 仲裁确保集群决策一致性
快速恢复: 故障节点恢复后自动重新加入集群并同步数据

二、离线环境准备(关键章节)
2.1 离线部署挑战
在无互联网连接的生产环境中,需要提前在有网机器上下载所有依赖包,然后传输到目标服务器。本章节详细说明如何准备离线安装包。
2.2 需要准备的材料清单
2.2.1 操作系统镜像
CentOS 7: CentOS-7-x86_64-DVD-2009.iso
CentOS 8/Rocky 8: Rocky-8-x86_64-dvd1.iso
RHEL 8: rhel-8.x-x86_64-dvd.iso

注意: 使用与生产环境完全一致的系统版本,避免内核兼容性问题。
2.2.2 PostgreSQL 16 RPM 包清单
从 PostgreSQL YUM Repository 下载以下 RPM 包及其所有依赖:
核心包:
postgresql16-16.x.x-1PGDG.rhel8.x86_64.rpm
postgresql16-server-16.x.x-1PGDG.rhel8.x86_64.rpm
postgresql16-contrib-16.x.x-1PGDG.rhel8.x86_64.rpm
postgresql16-libs-16.x.x-1PGDG.rhel8.x86_64.rpm
依赖包(根据系统版本可能不同):
libicu-.rpm
libxml2-
.rpm
libxslt-.rpm
openssl-libs-
.rpm
readline-.rpm
zlib-
.rpm
下载方法(在有网机器上执行):

方法1: 使用 yumdownloader(推荐)

sudo yum install -y yum-utils
mkdir -p /tmp/pg16_offline
cd /tmp/pg16_offline

下载 PostgreSQL 16 及所有依赖

sudo yumdownloader --resolve postgresql16-server postgresql16-contrib

打包

tar czf postgresql16_offline.tar.gz *.rpm

方法2: 使用 reposync(完整仓库同步)

sudo yum install -y createrepo
sudo yum-config-manager --add-repo https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y pgdg-redhat-repo

同步整个 PGDG 仓库

reposync --repoid=pgdg16 --download_path=/tmp/pg_repo --newest-only

创建本地仓库元数据

createrepo /tmp/pg_repo/pgdg16
2.2.3 Pacemaker + Corosync RPM 包清单
对于 CentOS 8/RHEL 8/Rocky 8:

HighAvailability 仓库中的核心包

pacemaker-2.x.x-.rpm
pacemaker-cli-2.x.x-
.rpm
pacemaker-libs-2.x.x-.rpm
pacemaker-cluster-libs-2.x.x-
.rpm
corosync-3.x.x-.rpm
corosync-libknet1-3.x.x-
.rpm
corosynclib-3.x.x-.rpm
pcs-0.10.x-
.rpm
resource-agents-4.x.x-.rpm
QDevice 相关包:
corosync-qdevice-3.x.x-
.rpm
corosync-qnetd-3.x.x-*.rpm # 安装在仲裁设备上
下载命令:

启用 HighAvailability 仓库

sudo subscription-manager repos --enable rhel-8-for-x86_64-highavailability-rpms

或对于 CentOS/Rocky:

sudo dnf config-manager --set-enabled ha

下载所有 HA 相关包

sudo yumdownloader --resolve
pacemaker
pacemaker-cli
corosync
corosync-qdevice
pcs
resource-agents

tar czf pacemaker_offline.tar.gz *.rpm
对于 CentOS 7:

启用 HA 仓库

sudo yum-config-manager --enable rhel-ha-for-rhel-7-server-rpms

或安装 centos-release-ha

sudo yum install -y centos-release-ha

下载包

sudo yumdownloader --resolve
pacemaker
pacemaker-cli
corosync
corosync-qdevice
pcs
resource-agents
2.2.4 其他必要工具包

网络工具

iproute-.rpm
net-tools-
.rpm

SSH 和认证

openssh-clients-.rpm
openssh-server-
.rpm

时间同步

chrony-*.rpm

或 ntp-*.rpm (CentOS 7)

防火墙

firewalld-*.rpm

监控工具(可选但推荐)

psmisc-.rpm # 提供 killall 命令
procps-ng-
.rpm # 提供 ps, top 等
2.3 离线包传输步骤
步骤 1: 在有网机器上准备

创建离线包目录结构

mkdir -p /opt/offline_packages/{postgres,pacemaker,tools}

下载 PostgreSQL 16

cd /opt/offline_packages/postgres
sudo yumdownloader --resolve postgresql16-server postgresql16-contrib

下载 Pacemaker

cd /opt/offline_packages/pacemaker
sudo yumdownloader --resolve pacemaker pacemaker-cli corosync corosync-qdevice pcs resource-agents

下载工具包

cd /opt/offline_packages/tools
sudo yumdownloader --resolve iproute net-tools chrony firewalld psmisc procps-ng

打包所有 RPM

cd /opt/offline_packages
tar czf offline_packages_full.tar.gz postgres/ pacemaker/ tools/

生成校验文件

md5sum offline_packages_full.tar.gz > offline_packages_full.tar.gz.md5
步骤 2: 传输到目标服务器

方法1: 使用 scp

scp offline_packages_full.tar.gz user@10.212.9.60:/tmp/
scp offline_packages_full.tar.gz user@10.212.9.62:/tmp/
scp offline_packages_full.tar.gz user@10

http://www.jsqmd.com/news/867897/

相关文章:

  • 跨网段耦合器节省近万元设备更换成本让老旧SmartIE触摸屏重获新生
  • AI大模型在哲学史表述中的系统性西方中心主义偏差——以“人类哲学之父”叙事为例的批判性分析
  • 山东甲亢专治医院哪个好
  • 京东评论拿到数据后对比同款竞品评论,看别家优势短板,找自身差异化卖点
  • 2026最新油管视频下载教程:支持批量解析+4K/8K超清画质
  • windows环境下怎么快速查看某个端口被哪个进程占用
  • Anthropic率先盈利:大模型商业化曙光初现,IPO竞争谁能笑到最后?
  • 2026年ERP+分销一体化还是独立部署?两种架构的优劣对比与选型建议
  • Toshiba开始出货1200V沟槽栅SiC MOSFET测试样品,助力提升下一代AI数据中心效率
  • MCB2140评估板USB HID多字节传输实现指南
  • 2026年项目交付排期系统选型指南:10款主流工具深度测评
  • gd32f303烧录提示Flash Timeout. Reset the Target and try it again.;
  • 量子线性系统求解的动态电路协同设计方法
  • TradingAgents部署教程:打造AI量化分析工作流
  • 第36天:关系型数据库和MySQL概述
  • 2026年5月浙江隧道工程防火涂料供应商综合评估与选择 - 2026年企业推荐榜
  • 鸿蒙应用安全编码专题系列之Web组件JavaScriptProxy安全
  • 核心代码编程-多模态版本的最优调度-200分
  • 什么是线程安全?请举例说明如何实现线程安全,并比较 synchronized 和 ReentrantLock 的异同
  • 2026毕设求生指南:用产品思维交付你的“第一份作品”
  • AI时代中小企业还要不要上ERP?2026年最新思考
  • AI Agent 架构设计与实现原理深度解析
  • 2026年GPT-5.5技术架构拆解:动态路由机制如何降低推理成本
  • 传奇3怀旧版 手游官方网站下载:三职业互相克制,长久运营稳定体验
  • 使用curl命令直接测试Taotoken大模型API的连通性与返回格式
  • 量子退火与经典优化算法性能对比研究
  • Spring Boot 的嵌入式服务器(如 Tomcat)是如何启动的?如何替换为 Jetty 或 Undertow?
  • 不用折腾环境!MonkeyCode云端编码太适配日常
  • 嵌入式系统代码覆盖率测试实战与µVision应用
  • 今天农巡车项目的摄像头云台问题及解决