pig pg
pig pg 命令(别名 pig postgres)用于管理本地 PostgreSQL 服务器和数据库。它封装了 pg_ctl、psql、vacuumdb 等原生工具,提供简化的服务器管理体验。
pig pg - 管理本地 PostgreSQL 服务器(pg_ctl, psql, vacuumdb)
控制命令(通过 pg_ctl 或 systemctl):
pig pg init 初始化 PostgreSQL 数据目录
pig pg start 启动 PostgreSQL 服务器
pig pg stop 停止 PostgreSQL 服务器
pig pg restart 重启 PostgreSQL 服务器
pig pg reload 重载 PostgreSQL 服务器配置
pig pg status 显示 PostgreSQL 服务器状态
pig pg promote 将备库提升为主库
pig pg role 检测并打印 PostgreSQL 角色
连接与查询(通过 psql):
pig pg psql [db] [-c sql] 连接到 PostgreSQL
pig pg ps 显示当前连接
pig pg kill [-a] [-x] [-u user] [-d db] [-q sql] [-w secs]
维护命令(通过 vacuumdb 和 pg_repack):
pig pg vacuum [db] [-a] 清理数据库
pig pg analyze [db] [-a] 分析数据库
pig pg freeze [db] [-a] 冻结清理表
pig pg repack [db] [-a] 在线重整数据库
日志命令:
pig pg log list 列出日志文件
pig pg log tail <logfile> tail -f 查看日志
pig pg log cat <logfile> cat 查看日志
pig pg log less <logfile> less 查看日志
pig pg log grep <logfile> <pat> grep 搜索日志
服务管理(通过 systemctl):
pig pg svc start 启动 postgres 服务
pig pg svc stop 停止 postgres 服务
pig pg svc restart 重启 postgres 服务
pig pg svc reload 重载 postgres 服务
pig pg svc status 显示 postgres 服务状态命令概览
服务控制(pg_ctl 封装):
| 命令 | 别名 | 描述 | 备注 |
|---|---|---|---|
pg init |
initdb, i |
初始化数据目录 | 封装 initdb |
pg start |
boot, up |
启动 PostgreSQL | 封装 pg_ctl start |
pg stop |
halt, down |
停止 PostgreSQL | 封装 pg_ctl stop |
pg restart |
reboot |
重启 PostgreSQL | 封装 pg_ctl restart |
pg reload |
hup |
重载配置 | 封装 pg_ctl reload |
pg status |
st, stat |
查看服务状态 | 显示进程与相关服务状态 |
pg promote |
pro |
提升备库为主库 | 封装 pg_ctl promote |
pg role |
r |
检测实例角色 | 输出 primary/replica |
连接与查询:
| 命令 | 别名 | 描述 | 备注 |
|---|---|---|---|
pg psql |
sql, connect |
连接到数据库 | 封装 psql |
pg ps |
activity, act |
显示当前连接 | 查询 pg_stat_activity |
pg kill |
k |
终止连接 | 默认 dry-run 模式 |
数据库维护:
| 命令 | 别名 | 描述 | 备注 |
|---|---|---|---|
pg vacuum |
vac, vc |
清理表 | 封装 vacuumdb |
pg analyze |
ana, az |
分析表 | 封装 vacuumdb –analyze-only |
pg repack |
rp |
在线重整表 | 需要 pg_repack 扩展 |
日志工具:
| 命令 | 别名 | 描述 |
|---|---|---|
pg log list |
ls |
列出日志文件 |
pg log tail |
t, f |
实时查看日志 |
pg log cat |
c |
输出日志内容 |
pg log less |
vi, v |
用 less 查看 |
pg log grep |
g, search |
搜索日志 |
服务子命令(pg svc):
| 命令 | 别名 | 描述 |
|---|---|---|
pg svc start |
boot, up |
启动 postgres 服务 |
pg svc stop |
halt, dn, down |
停止 postgres 服务 |
pg svc restart |
reboot, rt |
重启 postgres 服务 |
pg svc reload |
rl, hup |
重载 postgres 服务 |
pg svc status |
st, stat |
显示服务状态 |
快速入门
# 服务控制
pig pg init # 初始化数据目录
pig pg start # 启动 PostgreSQL
pig pg status # 查看状态
pig pg stop # 停止 PostgreSQL
pig pg restart # 重启 PostgreSQL
pig pg reload # 重载配置
# 连接与查询
pig pg psql # 连接到 postgres 数据库
pig pg psql mydb # 连接到指定数据库
pig pg ps # 查看当前连接
pig pg kill -x # 终止连接(需要 -x 确认执行)
# 数据库维护
pig pg vacuum mydb # 清理指定数据库
pig pg analyze mydb # 分析指定数据库
pig pg repack mydb # 在线重整数据库
# 日志查看
pig pg log tail # 实时查看最新日志
pig pg log grep ERROR # 搜索错误日志全局参数
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--version |
-v |
自动检测 | PostgreSQL 主版本号 |
--data |
-D |
/pg/data |
数据目录路径 |
--dbsu |
-U |
postgres |
数据库超级用户 |
服务控制命令
pg init
初始化 PostgreSQL 数据目录。
pig pg init # 使用默认设置初始化
pig pg init -v 17 # 指定 PostgreSQL 17
pig pg init -D /data/pg17 # 指定数据目录
pig pg init -k # 启用数据校验和
pig pg init -f # 强制初始化(删除已有数据)pg start
启动 PostgreSQL 服务器。
pig pg start # 使用默认设置启动
pig pg up # 别名
pig pg start -D /data/pg17 # 指定数据目录
pig pg start -l /pg/log/pg.log # 重定向输出到日志文件pg stop
停止 PostgreSQL 服务器。
pig pg stop # 快速停止(默认)
pig pg down # 别名
pig pg stop -m smart # 等待客户端断开
pig pg stop -m immediate # 立即关闭pg restart
重启 PostgreSQL 服务器。
pig pg restart # 快速重启
pig pg reboot # 别名
pig pg restart -m immediate # 立即重启pg reload
重载 PostgreSQL 配置。
pig pg reload # 重载配置
pig pg hup # 别名pg status
显示 PostgreSQL 服务器状态,包括进程信息和相关服务状态。
pig pg status # 查看服务状态
pig pg st # 别名pg promote
将备库提升为主库。
pig pg promote # 提升备库
pig pg pro # 别名pg role
检测 PostgreSQL 实例的角色。
pig pg role # 输出:primary、replica 或 unknown
pig pg role -V # 详细输出连接与查询命令
pg psql
通过 psql 连接到 PostgreSQL 数据库。
pig pg psql # 连接到 postgres 数据库
pig pg psql mydb # 连接到指定数据库
pig pg psql mydb -c "SELECT 1" # 执行单条命令
pig pg psql -f script.sql # 执行 SQL 脚本文件pg ps
显示 PostgreSQL 当前连接。
pig pg ps # 显示客户端连接
pig pg ps -a # 显示所有连接
pig pg ps -u admin # 按用户筛选
pig pg ps -d mydb # 按数据库筛选pg kill
终止 PostgreSQL 连接。默认为 dry-run 模式。
pig pg kill # 显示将被终止的连接(dry-run)
pig pg kill -x # 实际终止连接
pig pg kill --pid 12345 -x # 终止指定 PID
pig pg kill -u admin -x # 终止指定用户的连接
pig pg kill -s idle -x # 终止空闲连接数据库维护命令
pg vacuum
清理数据库表。
pig pg vacuum # 清理当前数据库
pig pg vacuum mydb # 清理指定数据库
pig pg vacuum -a # 清理所有数据库
pig pg vacuum mydb -t mytable # 清理指定表
pig pg vacuum mydb --full # VACUUM FULLpg analyze
分析数据库表以更新统计信息。
pig pg analyze # 分析当前数据库
pig pg analyze mydb # 分析指定数据库
pig pg analyze -a # 分析所有数据库pg repack
在线重整数据库表。需要 pg_repack 扩展。
pig pg repack mydb # 重整数据库中所有表
pig pg repack -a # 重整所有数据库
pig pg repack mydb -t mytable # 重整指定表
pig pg repack mydb -j 4 # 使用 4 个并行任务日志命令
pg log list
列出日志目录中的日志文件。
pig pg log list # 列出默认目录中的日志
pig pg log ls # 别名pg log tail
实时查看日志文件。
pig pg log tail # 查看最新日志
pig pg log tail -n 100 # 显示最后 100 行后开始跟踪pg log cat
输出日志文件内容。
pig pg log cat # 输出最新日志
pig pg log cat -n 100 # 输出最后 100 行pg log less
用 less 打开日志文件。
pig pg log less # 用 less 打开最新日志
pig pg log vi # 别名pg log grep
搜索日志文件。
pig pg log grep ERROR # 搜索包含 ERROR 的行
pig pg log grep -i error # 忽略大小写
pig pg log grep -C 3 ERROR # 显示前后 3 行上下文pg svc 子命令
通过 systemctl 管理 PostgreSQL 服务:
pig pg svc start # 启动 postgres 服务
pig pg svc stop # 停止 postgres 服务
pig pg svc restart # 重启 postgres 服务
pig pg svc reload # 重载 postgres 服务
pig pg svc status # 显示服务状态设计说明
权限处理:
- 如果当前用户已是 DBSU:直接执行命令
- 如果当前用户是 root:使用
su - postgres -c "..."执行 - 其他用户:使用
sudo -inu postgres -- ...执行
平台支持:
此命令专为 Linux 系统设计,部分功能依赖 systemctl。
Last updated on