pgfr_record
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_flight_recorder | 2.29.2 | STAT | Apache-2.0 | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6060 | pgfr_record | 否 | 否 | 否 | 是 | 否 | 否 | pgfr_record |
| 6061 | pgfr_analyze | 否 | 否 | 否 | 是 | 否 | 否 | pgfr_analyze |
| 相关扩展 | pg_cron pg_stat_statements pg_cron pg_profile pgmonitor |
|---|---|
| 下游依赖 | pgfr_analyze |
Package normalizes the upstream 0.0.0 control version to 2.29.2; run SELECT pgfr_record.enable() after CREATE EXTENSION. The downstream install patch defers scheduling until the CREATE transaction commits and guards optional pg_stat_statements.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 2.29.2 | 1817161514 | pg_flight_recorder | pg_cron |
| RPM | PIGSTY | 2.29.2 | 1817161514 | pg_flight_recorder_$v | pg_cron_$v |
| DEB | PIGSTY | 2.29.2 | 1817161514 | postgresql-$v-pg-flight-recorder | postgresql-$v-cron |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 2.29.2 el8.x86_64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.x86_64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.x86_64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.x86_64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el8.noarch.rpm
| N/A |
| el8.aarch64 | PIGSTY 2.29.2 el8.aarch64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.aarch64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.aarch64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el8.noarch.rpm
| PIGSTY 2.29.2 el8.aarch64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el8.noarch.rpm
| N/A |
| el9.x86_64 | PIGSTY 2.29.2 el9.x86_64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.x86_64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.x86_64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.x86_64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el9.noarch.rpm
| N/A |
| el9.aarch64 | PIGSTY 2.29.2 el9.aarch64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.aarch64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.aarch64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el9.noarch.rpm
| PIGSTY 2.29.2 el9.aarch64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el9.noarch.rpm
| N/A |
| el10.x86_64 | PIGSTY 2.29.2 el10.x86_64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.x86_64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.x86_64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.x86_64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el10.noarch.rpm
| N/A |
| el10.aarch64 | PIGSTY 2.29.2 el10.aarch64.pg18 : pg_flight_recorder_18 pg_flight_recorder_18-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.aarch64.pg17 : pg_flight_recorder_17 pg_flight_recorder_17-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.aarch64.pg16 : pg_flight_recorder_16 pg_flight_recorder_16-2.29.2-1PIGSTY.el10.noarch.rpm
| PIGSTY 2.29.2 el10.aarch64.pg15 : pg_flight_recorder_15 pg_flight_recorder_15-2.29.2-1PIGSTY.el10.noarch.rpm
| N/A |
| d12.x86_64 | PIGSTY 2.29.2 d12.x86_64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.x86_64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.x86_64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.x86_64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| N/A |
| d12.aarch64 | PIGSTY 2.29.2 d12.aarch64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.aarch64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.aarch64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| PIGSTY 2.29.2 d12.aarch64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~bookworm_all.deb
| N/A |
| d13.x86_64 | PIGSTY 2.29.2 d13.x86_64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.x86_64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.x86_64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.x86_64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| N/A |
| d13.aarch64 | PIGSTY 2.29.2 d13.aarch64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.aarch64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.aarch64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| PIGSTY 2.29.2 d13.aarch64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~trixie_all.deb
| N/A |
| u22.x86_64 | PIGSTY 2.29.2 u22.x86_64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.x86_64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.x86_64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.x86_64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| N/A |
| u22.aarch64 | PIGSTY 2.29.2 u22.aarch64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.aarch64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.aarch64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| PIGSTY 2.29.2 u22.aarch64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~jammy_all.deb
| N/A |
| u24.x86_64 | PIGSTY 2.29.2 u24.x86_64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.x86_64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.x86_64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.x86_64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| N/A |
| u24.aarch64 | PIGSTY 2.29.2 u24.aarch64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.aarch64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.aarch64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| PIGSTY 2.29.2 u24.aarch64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~noble_all.deb
| N/A |
| u26.x86_64 | PIGSTY 2.29.2 u26.x86_64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.x86_64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.x86_64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.x86_64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| N/A |
| u26.aarch64 | PIGSTY 2.29.2 u26.aarch64.pg18 : postgresql-18-pg-flight-recorder postgresql-18-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.aarch64.pg17 : postgresql-17-pg-flight-recorder postgresql-17-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.aarch64.pg16 : postgresql-16-pg-flight-recorder postgresql-16-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| PIGSTY 2.29.2 u26.aarch64.pg15 : postgresql-15-pg-flight-recorder postgresql-15-pg-flight-recorder_2.29.2-1PIGSTY~resolute_all.deb
| N/A |
构建
您可以使用 pig build 命令构建 pg_flight_recorder 扩展的 RPM / DEB 包:
pig build pkg pg_flight_recorder # 构建 RPM / DEB 包
安装
您可以直接安装 pg_flight_recorder 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_flight_recorder; # 当前活跃 PG 版本安装
pig ext install -y pg_flight_recorder -v 18 # PG 18
pig ext install -y pg_flight_recorder -v 17 # PG 17
pig ext install -y pg_flight_recorder -v 16 # PG 16
pig ext install -y pg_flight_recorder -v 15 # PG 15
dnf install -y pg_flight_recorder_18 # PG 18
dnf install -y pg_flight_recorder_17 # PG 17
dnf install -y pg_flight_recorder_16 # PG 16
dnf install -y pg_flight_recorder_15 # PG 15
apt install -y postgresql-18-pg-flight-recorder # PG 18
apt install -y postgresql-17-pg-flight-recorder # PG 17
apt install -y postgresql-16-pg-flight-recorder # PG 16
apt install -y postgresql-15-pg-flight-recorder # PG 15
创建扩展:
CREATE EXTENSION pgfr_record CASCADE; -- 依赖: pg_cron
用法
来源:
- pgfr_record v2.29.2 README
- pgfr_record control file
- pg_flight_recorder v2.29.2 reference
- v2.29.2 release notes
pgfr_record 是 PostgreSQL Flight Recorder 的记录部分。它定期采样 PostgreSQL 活动、等待、锁、复制、真空及相关健康数据,并将其存储在数据库内的有界缓冲区中,然后保留快照以供事故分析使用。当需要短生命周期的数据库条件能够存活足够长的时间以便后续诊断时,请使用此功能。
安装和启用记录
pgfr_record 需要 pg_cron:
CREATE EXTENSION pg_cron;
CREATE EXTENSION pgfr_record;
SELECT pgfr_record.enable();
enable() 会安装并调度收集器任务。它还会报告配置警告;请务必查看这些警告,而不要将成功调用视为所有指标都被收集的证明。
检查记录器健康状况
SELECT * FROM pgfr_record.health_check();
SELECT * FROM pgfr_record.ring_buffer_health();
SELECT * FROM pgfr_record.list_profiles();
在发生事故前使用 set_mode 或 apply_profile 选择所需的采集配置文件:
SELECT pgfr_record.set_mode('normal');
可用的采集模式包括正常、轻量级、紧急和终止。配置文件名称和采样间隔可能会发生变化,因此请列出已安装的配置文件而不是硬编码未记录的名称。
记录数据索引
- deltas:累积 PostgreSQL 计数器的时间间隔变化。
- recent_activity 和 recent_waits:采样的会话和等待事件。
- recent_locks 和 recent_idle:锁和空闲会话观察结果。
- recent_replication 和 recent_vacuum:复制和维护状态。
- archiver_status:WAL 归档健康状况。
- snapshot 和 ring-buffer 表:用于 pgfr_analyze 的保留历史记录。
许多工作缓冲区是 UNLOGGED 的,以减少写入放大。它们在崩溃后不可用,并且不会像普通已记录的表那样进行复制;持久化的快照提供了更长生命周期的分析表面。
管理函数
- pgfr_record.enable():创建或激活计划收集器。
- pgfr_record.disable():停止计划采集。
- pgfr_record.health_check():报告收集器和配置健康状况。
- pgfr_record.set_mode(…):更改采集模式。
- pgfr_record.apply_profile(…):应用预定义的配置文件。
- pgfr_record.list_profiles():列出可用的配置文件。
- pgfr_record.ring_buffer_health():检查容量和保留压力。
- pgfr_record.cleanup(…):根据 API 删除保留的历史记录。
保留和开销
默认设计保持短周期环形缓冲区历史记录,并且更持久化的快照通常在安装的配置文件不同而有所变化,大约为7天到30天。请验证实际表大小、作业调度以及保留设置。
pgfr_record 创建约十个 pg_cron 任务。pg_cron.log_run 每天可能会生成数千行记录;当额外的审计跟踪不再需要时,请禁用该日志或清除 cron 历史记录。采样还会增加 SQL、存储和目录流量,因此请在目标工作负载上测量开销。
版本 2.29.2 处理无法更新 cron.job 的管理服务角色:任务仍然可以被调度,而可选的 nodename 正则化会在警告中跳过。
注意事项
- pg_stat_statements 可丰富多种分析但为可选项;当需要时,请单独启用并调整其大小。
- 采集无法重建从未采样的时间周期。在发生事故前请启用并验证记录器。
- UNLOGGED 缓冲区可能在崩溃恢复后被截断。
- 记录器表可以包含查询文本、角色名称、客户端数据和操作细节。请应用适当的权限和保留控制。