更多内容请见: 《深入掌握PostgreSQL数据库》 - 专栏介绍和目录文章目录一、架构规划与资源准备1.1 架构设计1.2 拓扑规划1.3 系统版本约定二、离线资源包收集整理(关键步骤)2.1 准备下载目录2.2 配置软件源2.3 下载 RPM 依赖包2.4 下载 Python Wheels 包2.5 打包传输三、生产环境部署实操3.1 基础环境配置1. 解压安装包2. 配置主机名与解析3. 安装系统依赖 (RPM)4. 安装 Python 依赖5. 系统内核参数优化3.2 部署 etcd 集群1. 创建 etcd 数据目录2. 配置 etcd (每节点不同)3. 启动 etcd3.3 部署 PostgreSQL1. 创建数据目录2. 初始化数据库3. 配置 systemd 服务3.4 部署 Patroni (核心)1. 创建配置文件2. 创建 Patroni systemd 服务3. 启动 Patroni4. 验证集群状态3.5 部署 HAProxy (负载均衡)3.6 部署 Keepalived (VIP 漂移)四、功能验证与运维手册4.1 连接测试4.2 高可用切换测试 (模拟宕机)4.3 日常运维命令鉴于生产环境无法联网,我们将采用目前业界最成熟、最稳健的架构方案:Patroni + etcd + HAProxy + Keepalived。该方案由PostgreSQL官方推荐,能够提供自动故障转移、读写分离和秒级切换能力。通过本文的离线包整理策略,你可以确保在完全断网的环境下,构建出一套企业级高可用的 PostgreSQL 数据库服务。一、架构规划与资源准备1.1 架构设计在生产环境,高可用不仅仅是“双机热备”,还需要考虑“脑裂”防护、读写分离和负载均衡。PostgreSQL: 数据存储核心。Patroni: 集群管理核心,负责监控健康状态、管理主从切换、调用pg_rewind修复旧主库。etcd: 分布式键值存储,用于存储集群状态,防止脑裂。建议至少3节点。HAProxy: 负载均衡器,用于提供统一入口,将写请求路由至Master,读请求负载均衡至Replica。Keepalived: 提供VIP(虚拟IP),确保应用层通过单一IP访问,当主节点宕机时VIP自动漂移。1.2 拓扑规划假设生产环境有3台服务器(最低标准):