pig

pig CLI 命令参考概览

pig CLI 提供了全面的工具集,用于管理 PostgreSQL 安装、扩展、软件仓库以及从源码构建扩展。使用 pig help <command> 查看命令文档。

  • pig repo:管理软件仓库
  • pig ext:管理 PostgreSQL 扩展
  • pig build:从源码构建扩展
  • pig install:使用原生包管理器安装包,并对 PostgreSQL 别名做翻译
  • pig sty:管理 Pigsty 安装与 Grafana 仪表盘
  • pig inventory:检视、编辑、校验与交换 Pigsty 配置清单(v1.6.0 新增)
  • pig do:执行 Pigsty 管理 playbook 任务
  • pig pe:访问 pg_exporter 指标与配置
  • pig pg:管理本地 PostgreSQL 服务器
  • pig pt:透明运行 patronictl,附带服务与配置辅助命令
  • pig pb:管理 pgBackRest 备份与恢复
  • pig pitr:进行完整 PITR 工作流
  • pig context:输出面向人工和 Agent 的环境上下文快照
  • pig status / update / version:查看环境、升级 pig、打印版本信息

概览

pig - PostgreSQL 的 Linux 包管理器

Usage:
  pig [command]

Examples:

  pig repo add -ru            # 覆盖现有仓库并更新缓存
  pig install pg18            # 安装 PostgreSQL 18 PGDG 软件包
  pig install pg_duckdb       # 安装指定的 PostgreSQL 扩展
  pig install pgactive -v 18  # 为特定 PG 版本安装扩展

  访问 https://pigsty.io/ext/ 获取详情

PostgreSQL Extension Manager
  build       构建 Postgres 扩展
  ext         管理 PostgreSQL 扩展 (pgext)
  repo        管理 Linux 软件仓库 (apt/dnf)

Pigsty Management Commands
  context     显示环境上下文快照
  do          运行管理任务
  inventory   检视、编辑、校验与交换 Pigsty 配置清单
  patroni     透明运行 patronictl(附 Pigsty 服务与配置辅助)
  pg_exporter 管理 pg_exporter 与监控指标
  pgbackrest  管理 pgBackRest 备份与恢复
  pitr        使用 pgBackRest 进行时间点恢复
  postgres    管理本地 PostgreSQL 服务器与数据库
  sty         管理 Pigsty 安装与控制器服务

Additional Commands:
  completion  生成指定 shell 的自动补全脚本
  help        获取任何命令的帮助信息
  install     使用原生包管理器安装软件包
  status      显示环境状态
  update      升级 pig 自身
  version     显示 pig 版本信息

Flags:
      --debug              启用调试模式
  -h, --help               获取帮助信息
  -H, --home string        Pigsty 主目录路径
  -i, --inventory string   配置清单路径
      --log-level string   日志级别: debug, info, warn, error, fatal, panic (默认 "info")
      --log-path string    日志文件路径,默认为终端输出
  -o, --output string      输出格式:text, yaml, json, json-pretty(默认 "text"
使用 "pig [command] --help" 获取命令的详细信息。

pig repo

管理 PostgreSQL 软件包的 APT/YUM 仓库,详情请参考 pig repo

pig repo list                    # 列出可用仓库
pig repo info   pgdg             # 显示仓库详情
pig repo status                  # 检查当前仓库状态
pig repo add    pgdg pigsty -u   # 添加仓库
pig repo rm     old-repo         # 移除仓库
pig repo update                  # 更新软件包缓存
pig repo create /www/pigsty      # 创建本地仓库
pig repo cache                   # 创建离线包
pig repo boot                    # 从离线包引导

pig ext

管理 PostgreSQL 扩展和内核包,详情请参考 pig ext

pig ext list    duck             # 搜索扩展
pig ext info    pg_duckdb        # 扩展详情
pig ext status                   # 显示已安装的扩展
pig ext add     pg_duckdb -y     # 安装扩展
pig ext rm      old_extension    # 移除扩展
pig ext update                   # 更新扩展
pig ext scan                     # 扫描已安装的扩展
pig ext import  pg_duckdb        # 下载以供离线使用
pig ext link    17               # 链接 PG 版本到 PATH
pig ext reload                   # 刷新扩展目录

pig build

从源码构建 PostgreSQL 扩展,详情请参考 pig build

# 环境设置
pig build spec                   # 初始化构建规格
pig build repo                   # 设置仓库
pig build repo --beta            # 设置仓库,并额外启用 PostgreSQL 19 beta 仓库
pig build tool                   # 安装构建工具
pig build tool --beta            # 安装构建工具,并额外安装 PG19 beta 构建包
pig build rust -y                # 强制重装 Rust(默认不重装)
pig build rust -m                # 使用中国镜像安装 Rust,并写入 Cargo 镜像配置
pig build pgrx                   # 安装 PGRX 框架
pig build pgrx -b                # 自动探测时包含 PostgreSQL 19 beta pg_config

# 构建扩展
pig build pkg citus              # 完整构建流程 = get + dep + ext
pig build get citus              # 下载源码
pig build dep citus              # 安装依赖
pig build ext citus              # 构建包

pig install

使用系统原生包管理器安装软件包,并对 PostgreSQL 内核、扩展及常用别名做包名翻译。需要直接传递系统包名时,可使用 -n/--no-translation

pig install pg_duckdb            # 安装扩展并自动翻译包名
pig install pg18                 # 安装 PostgreSQL 18 内核包组
pig install nginx htop vim       # 安装多个系统包
pig install unknown-package -n   # 禁用翻译,按原始包名安装
pig install pg18 --plan          # 预览安装计划
pig install pg_vector -y         # 自动确认安装

pig sty

安装 Pigsty 发行版,详情请参考 pig sty

pig sty init                     # 安装 Pigsty 到 ~/pigsty
pig sty boot                     # 安装 Ansible 依赖
pig sty conf                     # 生成配置
pig sty deploy                   # 运行部署 playbook
pig sty list                     # 列出可用 Pigsty 版本
pig sty get 4.4.0                # 下载指定 Pigsty 版本
pig sty grafana list             # 管理 Grafana 仪表盘(info/list/boot/load/init/dump/clean/lang/style)

pig inventory

检视、编辑、校验、体检并与 CMDB 交换 Pigsty 配置清单(pigsty.yml),根级命令组,别名 inv, 详情请参考 pig inventory。(v1.6.0 新增)

pig inventory status             # 检视当前生效的清单来源
pig inventory list               # 列出清单拓扑与取值类型
pig inventory show               # 原样显示清单 YAML(可能包含敏感信息)
pig inventory edit               # 在 $EDITOR 中编辑清单或选中片段
pig inventory validate           # 校验一份完整的静态 Pigsty 清单
pig inventory check              # 检查清单、控制器与目标节点就绪状态
pig inventory diff other.yml     # 对比声明差异(不输出取值)
pig inventory cmdb check         # 与 PostgreSQL CMDB 交换(实验性)

pig do

执行 Pigsty 管理任务,底层调用对应的 Ansible playbook。

pig do pgsql-add  <cls> [ip...]       # 添加集群或实例
pig do pgsql-rm   <cls> [ip...]       # 移除集群或实例
pig do pgsql-db   <cls> <dbname>      # 创建或更新数据库
pig do pgsql-user <cls> <username>    # 创建或更新用户
pig do pgsql-ext  <cls> [ext...]      # 安装扩展
pig do node-pkg   <sel> [pkg...]      # 安装节点软件包

pig pe

访问 pg_exporter 暴露的 PostgreSQL 监控指标,默认连接 127.0.0.1:9630

pig pe list                    # 列出可用指标类型
pig pe get                     # 获取所有 pg_ 前缀指标
pig pe stat                    # 查看 exporter 统计信息
pig pe reload                  # 重载 pg_exporter 配置
pig pe --host 127.0.0.1 -p 9630 get

pig context

输出环境上下文快照,覆盖主机、PostgreSQL、Patroni、pgBackRest 与已安装扩展。该命令适合排障和自动化脚本快速了解当前节点状态。

pig context                      # 文本输出
pig context -o json              # JSON 输出
pig context -m postgres          # 只输出 PostgreSQL 模块(默认包含 host)
pig context -m postgres,!host    # 排除 host 模块

pig pg

管理本地 PostgreSQL 服务器,详情请参考 pig pg

pig pg init                      # 初始化数据目录
pig pg start                     # 启动 PostgreSQL
pig pg stop                      # 停止 PostgreSQL
pig pg status                    # 查看状态
pig pg psql mydb                 # 连接数据库
pig pg ps                        # 查看当前连接
pig pg vacuum mydb               # 清理数据库
pig pg tune -p olap              # 生成调优参数
pig pg fork dev                  # 创建本地一次性物理副本
pig pg fork list                 # 列出本地 fork
pig pg log tail                  # 实时查看日志

pig pt

透明运行 patronictl 管理 Patroni HA 集群,详情请参考 pig pt

pig pt list pg-meta              # 列出集群成员(原生透传)
pig pt show-config pg-meta       # 显示集群动态配置(原生透传)
pig pt set ttl=60                # 本地语法糖:修改 Patroni/PG 配置
pig pt restart pg-test --pending # 应用待重启成员(原生透传)
pig pt status                    # 本地命令:综合服务与集群状态
pig pt log -f                    # 本地命令:实时查看日志

pig pb

管理 pgBackRest 备份与恢复,详情请参考 pig pb

pig pb info                      # 显示备份信息
pig pb ls                        # 列出所有备份
pig pb backup                    # 创建备份
pig pb backup full               # 全量备份
pig pb restore -d                # 恢复到最新
pig pb restore -t "2025-01-01"   # 恢复到指定时间
pig pb log tail                  # 实时查看日志

pig pitr

执行编排式时间点恢复(PITR),详情请参考 pig pitr

pig pitr -d                      # 恢复到最新数据
pig pitr -t "2025-01-01 12:00:00+08"  # 恢复到指定时间
pig pitr -I                      # 恢复到备份一致性点
pig pitr -d --plan               # 显示执行计划(不实际执行)
pig pitr -d -y                   # 跳过确认(自动化)

辅助命令

pig status                       # 显示当前环境状态
pig status -o json               # 结构化状态输出
pig update                       # 将 pig 自身升级到最新版
pig update -m                    # 使用 pigsty.cc 镜像升级
pig update -v 1.6.0              # 升级到指定版本
pig version                      # 显示 pig 版本信息
pig version -o json              # 结构化版本输出

最后修改:2026-07-28: bump extension to 2026-07-28 (6a7c4bb)