PostgreSQL 一键安装脚本
支持 PostgreSQL 13–19,三种部署模式,源码编译 + 自动调优 + 离线 / 信创全场景
生产级 PostgreSQL 源码编译安装脚本,支持单机、流复制、Patroni / repmgr / pgpool 三种高可用方案。自动识别操作系统、调优内存参数、配置 Systemd 服务,支持后台运行 + 实时 Web 日志查看器、断点续装,开箱即用。
核心功能
一键安装
单条命令完成 PostgreSQL 安装、初始化、服务配置全流程
流复制
支持异步和同步流复制,自动配置 WAL 归档和主备切换
高可用集群
Patroni / repmgr / pgpool 三种 HA 方案任选,自动 etcd / VIP 编排 + 故障转移
多系统支持
兼容 RHEL/CentOS/Rocky/Alma/openEuler/麒麟/UOS/Anolis/OpenCloudOS/TencentOS/Ubuntu/Debian,x86_64 + aarch64 双架构
源码编译 + 离线
源码编译安装(生产推荐),支持在线 PGDG、本地 ISO、离线 RPM/DEB/wheel 全场景,满足断网 / 信创需求
自动参数调优
根据服务器内存自动计算 shared_buffers、effective_cache_size 等关键参数
生产优化 (-opd)
安装后自动启用 pg_stat_statements、WAL 归档、autovacuum 调优、连接超时保护、健康检查脚本和安装报告
HTML 安装报告
生成深色主题 HTML 报告,含步骤耗时、参数快照、生产优化状态和一键复制
备份与 PITR
自动配置 WAL 归档和基础备份,支持时间点恢复
后台模式 + Web 日志
-bg 后台运行 + -lp 端口实时 Web 日志查看器,关闭终端也能在浏览器看进度
断点续装
失败/中断后用 --resume 自动跳过已完成步骤,节省重复时间,幂等可重入
多架构支持
原生支持 x86_64 与 aarch64(鲲鹏 / 飞腾 / 龙芯 7A 兼容机型),信创架构全覆盖
三种部署模式
覆盖从开发测试到生产高可用的全部场景
单机模式
适用于开发测试、小型应用场景。安装单个 PostgreSQL 实例,自动完成 initdb 和参数调优,快速上手。
流复制
适用于读写分离、数据备份场景。支持一主多从流复制,可选异步或同步提交模式。
高可用集群
适用于生产高可用环境。Patroni / repmgr / pgpool 三种方案任选,自动 etcd 协商、leader 选举、VIP 漂移、故障转移。
按部署目标选择路线
不需要先读完整参数表,先按当前目标进入对应示例,再跳转到命令生成器补 IP、密码和路径。
单机生产先跑通
适合一台主机先上线业务,默认 PostgreSQL 16、独立数据目录、开启安装后生产优化。
一主两备流复制
适合读写分离、灾备副本和跨主机热备,先填主库 IP、备库 IP 和复制账号。
repmgr 三节点 HA
适合希望少引入组件的 PostgreSQL 原生高可用,Pro 版即可覆盖 repmgr。
Enterprise Patroni / pgpool
适合需要 Patroni、etcd、VIP、pgpool 连接池或读写分离的生产集群。
版本对比
专业版满足日常运维,旗舰版解锁全部高可用方案
Professional 专业版
- 单机安装 + 流复制部署
- repmgr 高可用方案
- 自动参数调优 + 系统优化
- pg_stat_statements + WAL 归档
- 备份脚本 + PITR 示例 + 健康检查
Enterprise 旗舰版
- 全部专业版功能
- Patroni 高可用(默认推荐)
- pgpool-II 读写分离 + 连接池
- VIP 自动漂移 + etcd 集成
- pgpool watchdog + 后端状态校验
- Python 兼容性管理 + 离线 wheelhouse
兼容性矩阵
覆盖国内外主流 Linux 发行版
| 类别 | 操作系统 | 支持版本 |
|---|---|---|
| 企业级 Linux | RHEL | 789 |
| CentOS | 78 | |
| Rocky Linux | 89 | |
| AlmaLinux | 89 | |
| Oracle Linux | 789 | |
| Fedora | 38+ | |
| 国产 / 信创操作系统 | openEuler | 20.0322.0324.03 |
| Kylin (麒麟) | V10 | |
| NeoKylin (中标麒麟) | V7 | |
| UOS (统信) | 20 | |
| Anolis OS (龙蜥) | 7823 | |
| OpenCloudOS | 89 | |
| TencentOS Server | 3.x | |
| Asianux | 78 | |
| CTyunOS (天翼云) | 22.06 | |
| KOS (浪潮) | 5 | |
| Debian 系 | Ubuntu | 20.0422.0424.04 |
| Debian | 1112 | |
| Deepin | 2023 | |
| 处理器架构 | x86_64 (Intel / AMD) | 原生支持 |
| aarch64 (鲲鹏 / 飞腾 / arm64) | 原生支持 |
安装示例
按场景选择最接近你环境的命令,一键复制即可使用
生产环境
推荐标准约 10 分钟单机生产,自动开启 pg_stat_statements / WAL archive / 健康检查
1bash PgShellInstall \2 -v 16 -pw 'YourPass@2026' \3 -d /data/pgdata -p 5432 \4 -tz Asia/Shanghai \5 -opd Y前置准备 (3)
- 4 GB+ 内存
- 独立 /data 分区
- 时区已确认
安装完成后 (3)
- 备份脚本:/var/lib/pgsql/scripts/pg_backup.sh
- 健康检查 cron:/etc/cron.d/pg_health_*
- 安装报告:/var/log/pgshellinstall/report_*.html
最小化安装
新手约 5 分钟单机开发 / 测试,最快跑起来
1bash PgShellInstall -v 16 -pw 'YourPass@2026'前置准备 (3)
- root 账号
- 至少 1 GB 内存、5 GB 可用磁盘
- Bash 4.0+
安装完成后 (2)
- systemctl status postgresql-<版本> 看服务
- 默认监听 5432,本机 psql -U postgres 直接登
同机多实例
进阶约 10 分钟同机并存第二套 PostgreSQL(如 16 + 16 不同业务,或 16 + 17 灰度)
1bash PgShellInstall \2 -v 16 -pw 'YourPass@2026' \3 -d /data/pg16b -p 5433 \4 --shared-buffers 2GB \5 --max-connections 100 \6 -opd Y前置准备 (2)
- 端口、datadir、systemd unit 名都要错开
- 自己规划内存上限避免互相抢
自定义端口
新手约 5 分钟5432 被占 / 安全策略要求换端口
1bash PgShellInstall -v 16 -pw 'YourPass@2026' -p 15432参数参考手册
脚本支持的所有命令行参数说明
| 参数 | 描述 | 默认值 | 适用模式 |
|---|---|---|---|
| --pg-version | PostgreSQL 版本 | 16 | 单机 |
| --port | 端口 | 5432 | 单机 |
| --datadir | 数据目录 | /var/lib/pgsql/16/data | 单机 |
| --install-dir | 安装目录 | /usr/pgsql-16 | 单机 |
| --locale | 区域设置 | en_US.UTF-8 | 单机 |
| --source-pkg | 源码包路径 | — | 单机 |
| --local-pkg-dir | 离线资产目录 | — | 单机 |
| --password | postgres 超级用户密码 | — | 单机 |
| --auth-method | 认证方式 | scram-sha-256 | 单机 |
| --shared-buffers | shared_buffers | — | 单机 |
| --effective-cache-size | effective_cache_size | — | 单机 |
| --work-mem | work_mem | — | 单机 |
| --maintenance-work-mem | maintenance_work_mem | — | 单机 |
| --max-connections | 最大连接数 | 100 | 单机 |
| --allowed-networks | 允许的网段 | 0.0.0.0/0 | 单机 |
| --max-wal-size | max_wal_size | — | 单机 |
| --min-wal-size | min_wal_size | — | 单机 |
| --repo-mode | Repo 配置模式 | auto | 单机 |
| --download-only | 仅下载源码包 | N | 单机 |
| --prepare-offline | 准备离线包 | N | 单机 |
| --enable-archiving | WAL 归档 | off | 单机 |
| --wal-level | wal_level | replica | 单机 |
| --huge-pages | 大页内存 | try | 单机 |
| -opd | 安装后生产优化 | Y | 单机 |
| --no-start | 安装后不启动 | N | 单机 |
| --skip-time-sync | 跳过时间同步 | N | 单机 |
| --force-overcommit | 强制 overcommit | N | 单机 |
| --uninstall | 卸载模式 | N | 单机 |
| --timezone | 时区 | Asia/Shanghai | 单机 |
| --archive-dir | WAL 归档目录 | /var/lib/pgsql/backup/wal_archive | 单机 |
| --resume | 断点续装 | N | 单机 |
| --dry-run | 仅预览安装计划 | N | 单机 |
| --skip-preflight | 跳过安装前预检 | N | 单机 |
| --skip-optimize | 跳过生产优化 | N | 单机 |
| --background | 后台模式(-bg) | N | 单机 |
| --log-port | Web 日志端口(-lp) | — | 单机 |
| --force | 强制覆盖已有配置 | N | 单机 |
| --debug | Bash -x 调试日志 | N | 单机 |
| --primary-host | 主库 IP | — | 流复制 |
| --standby-hosts | 备库 IP 列表 | — | 流复制 |
| --repl-user | 复制用户名 | replicator | 流复制 |
| --repl-password | 复制用户密码 | — | 流复制 |
| --synchronous-commit | synchronous_commit | off | 流复制 |
| --max-wal-senders | max_wal_senders | 20 | 流复制 |
| --sync-method | 同步提交选择方式 | first | 流复制 |
| --sync-count | 同步备库数量 | 1 | 流复制 |
| --streaming-local-only | 仅配置本机流复制 | N | 流复制 |
| --barman-server | Barman 服务器 | — | 流复制 |
| --barman-password | Barman 密码 | — | 流复制 |
| --streaming-barman-password | 流复制 Barman 密码 | — | 流复制 |
| --ssh-user | SSH 用户名 | root | 流复制 |
| --ssh-password | SSH 密码 | — | 流复制 |
| --ssh-port | SSH 端口 | 22 | 流复制 |
| --nodes | 集群节点列表 | — | 高可用 |
| --vip | 虚拟 IP | — | 高可用 |
| --vip-iface | VIP 绑定网卡 | — | 高可用 |
| --vip-cidr | VIP CIDR 前缀 | 32 | 高可用 |
| --ha-tool | HA 工具 | patroni | 高可用 |
| --etcd-endpoints | etcd 节点 | — | 高可用 |
| --etcd-endpoints-iface | etcd 端点网卡 | — | 高可用 |
| --ha-local-only | 仅配置本机 HA | N | 高可用 |
| --watchdog-mode | Watchdog 模式 | automatic | 高可用 |
显示 62 / 62 条参数
已验证安装场景
以下场景均在物理环境中完成真实安装测试,全部通过验证。测试环境:RHEL 8.10,ESXi 8C/8GB VM。
| ID | 测试场景 | 证据 | 模式 | 版本 | 安装方式 | 节点 | 耗时 | 状态 |
|---|---|---|---|---|---|---|---|---|
| P-1 | 单机源码编译安装 (PostgreSQL 16) | 脚本实测 | 单机 | 16 | source | 1 | 263s | |
| P-2 | 单机 offline 安装 (PostgreSQL 16, 15 秒完成) | 脚本实测 | 单机 | 16 | offline | 1 | 15s | |
| P-3 | 异步流式复制 (PostgreSQL 16, 主备) | 脚本实测 | 主从/复制 | 16 | source | 2 | 428s | |
| P-4 | Patroni HA 集群 (PostgreSQL 16, 三节点自动 failover) | 脚本实测 | 高可用 | 16 | source | 3 | — | |
| P-5 | repmgr HA 集群 (PostgreSQL 16, 三节点全自动) | 脚本实测 | 高可用 | 16 | source | 3 | 399s | |
| P-6 | 单机 source 编译安装 (PostgreSQL 16) | 脚本实测 | 单机 | 16 | source | 1 | 372s | |
| P-7 | 单机源码编译安装 (PostgreSQL 14) | 脚本实测 | 单机 | 14 | source | 1 | 63s | |
| P-8 | pgpool-II HA 集群 (PostgreSQL 16, watchdog + delegate_IP) | 脚本实测 | 高可用 | 16 | source | 3 | 432s | |
| P-9 | 同步流式复制 (PostgreSQL 16, remote_apply) | 脚本实测 | 主从/复制 | 16 | source | 2 | 229s | |
| P-10 | 一主两备异步复制 (PostgreSQL 16, 三节点) | 脚本实测 | 主从/复制 | 16 | source | 3 | 388s | |
| P-11 | 逻辑 WAL 级别 (PostgreSQL 16, 发布/订阅就绪) | 脚本实测 | 单机 | 16 | source | 1 | 79s | |
| P-12 | Patroni HA + VIP (PostgreSQL 16, 三节点) | 脚本实测 | 高可用 | 16 | source | 3 | — | |
| P-14 | 单机源码编译安装 (PostgreSQL 15) | 脚本实测 | 单机 | 15 | source | 1 | 45s | |
| P-15 | 单机源码编译安装 (PostgreSQL 17) | 脚本实测 | 单机 | 17 | source | 1 | 28s |
所有测试在 RHEL 8.10 (x86_64) 环境下执行,HA 集群使用三节点 ESXi VM
常见问题
该选哪种安装方式?
本脚本统一采用源码编译方式安装 PostgreSQL,优势是版本灵活(13–19)、不受发行版仓库限制、可在离线 / 断网 / 信创环境运行。脚本会自动安装编译依赖、按内存自动调优参数(shared_buffers / effective_cache_size 等)并配置 Systemd 服务。
最低系统配置要求是什么?
最低要求:1GB 内存、5GB 可用磁盘空间、Bash 4.0 以上版本、root 或具有 sudo 权限的账号。生产环境建议 4GB 以上内存。
能在已有 PostgreSQL 的服务器上运行吗?
不建议。脚本设计用于全新安装,在已有实例的服务器上运行可能导致端口冲突或数据目录覆盖。请在干净的系统上使用,或指定不同的端口和数据目录。
流复制和高可用集群有什么区别?
流复制是 PostgreSQL 原生的物理复制机制,配置简单,适合读写分离和数据备份。高可用集群在流复制基础上增加了 Patroni/etcd 自动故障检测和主从切换,适合对可用性要求高的生产环境。
支持离线 / 断网 / 信创环境安装吗?
支持完整离线安装。使用 --source-pkg 指定本地 PostgreSQL 源码包路径(postgresql-*.tar.bz2/gz/xz),并用 --local-pkg-dir 指定离线 RPM/DEB/wheel/HA 资产目录(含 etcd、Patroni、repmgr、pgpool 全套),脚本会自动跳过所有外网下载,全程在断网环境完成。也可将源码包直接放到脚本同目录,脚本会自动识别。
安装后如何升级 PostgreSQL 大版本?
脚本本身不提供大版本升级功能。如需升级,建议使用 pg_upgrade 工具进行原地升级:先备份数据,安装新版本 PostgreSQL,使用 pg_upgrade --link 完成快速升级,最后更新配置文件。
安装时长很长,可以放后台运行吗?
可以。加 -bg / --background 即可把主体安装流程转入后台运行,前台会立刻打印一个 Web 日志查看器地址(默认端口 9527,可用 -lp / --log-port 自定义)。在浏览器打开就能实时查看彩色日志、进度条与每个步骤耗时,关闭 SSH 终端也不影响安装进程。脚本会在启动前自动放行防火墙端口。
安装中途失败/被中断了,要重新跑一遍吗?
不用。脚本内置 checkpoint 机制,每完成一个大步骤都会落盘记录。加 --resume 重新执行即可从上一次成功的步骤继续,已完成的步骤会被幂等跳过(如已 initdb 不再重做、已配置 systemd 不再重写)。配合 --debug 可在日志里看到详细 bash -x 跟踪信息。
Oracle 安装脚本
同系列 Oracle 数据库一键安装脚本,支持 19c / 21c / 26c
MySQL 安装脚本
同系列 MySQL 数据库一键安装脚本,支持 5.7 / 8.0 / 8.4 / 9.0