pg_track_settings

跟踪设置更改

概览

扩展包名版本分类许可证语言
pg_track_settings2.1.2STATPostgreSQLSQL
ID扩展名BinLibLoadCreateTrustReloc模式
6260pg_track_settings-
相关扩展pg_show_plans powa pg_stat_statements pg_profile pg_store_plans auto_explain pg_stat_kcache pg_qualstats

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG2.1.21817161514pg_track_settings-
RPMPGDG2.1.21817161514pg_track_settings_$v-
DEBPGDG2.1.21817161514postgresql-$v-pg-track-settings-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
el9.x86_64
el9.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
el10.x86_64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
el10.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
d12.x86_64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
d12.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
d13.x86_64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
d13.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
u22.x86_64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
u22.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
u24.x86_64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
u24.aarch64
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2
PGDG 2.1.2

安装

您可以直接安装 pg_track_settings 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install pg_track_settings;          # 当前活跃 PG 版本安装
pig ext install -y pg_track_settings -v 18  # PG 18
pig ext install -y pg_track_settings -v 17  # PG 17
pig ext install -y pg_track_settings -v 16  # PG 16
pig ext install -y pg_track_settings -v 15  # PG 15
pig ext install -y pg_track_settings -v 14  # PG 14
dnf install -y pg_track_settings_18       # PG 18
dnf install -y pg_track_settings_17       # PG 17
dnf install -y pg_track_settings_16       # PG 16
dnf install -y pg_track_settings_15       # PG 15
dnf install -y pg_track_settings_14       # PG 14
apt install -y postgresql-18-pg-track-settings   # PG 18
apt install -y postgresql-17-pg-track-settings   # PG 17
apt install -y postgresql-16-pg-track-settings   # PG 16
apt install -y postgresql-15-pg-track-settings   # PG 15
apt install -y postgresql-14-pg-track-settings   # PG 14

创建扩展

CREATE EXTENSION pg_track_settings;

用法

pg_track_settings: 追踪 PostgreSQL 配置变更

pg_track_settings 记录 PostgreSQL 配置随时间的变更,追踪全局设置(pg_settings)和按角色/数据库的覆盖设置(pg_db_role_setting)。

采集快照

定期调用(通过 cron 或 PoWA)以捕获当前设置:

SELECT pg_track_settings_snapshot();

查看某一时间点的设置

-- 指定时间的所有设置
SELECT * FROM pg_track_settings('2024-01-15 10:00:00');

-- 指定时间的所有覆盖(按角色/数据库)设置
SELECT * FROM pg_track_db_role_settings('2024-01-15 10:00:00');

比较两个时间点的设置

-- 查看最近一小时内的变更
SELECT * FROM pg_track_settings_diff(now() - interval '1 hour', now());

-- 比较覆盖设置
SELECT * FROM pg_track_db_role_settings_diff(now() - interval '1 hour', now());

查看变更历史

-- 特定设置的历史
SELECT * FROM pg_track_settings_log('work_mem');

-- 覆盖设置的历史
SELECT * FROM pg_track_db_role_settings_log('work_mem');

-- PostgreSQL 重启历史
SELECT * FROM pg_reboot;

重置历史

SELECT pg_track_settings_reset();

函数摘要

函数描述
pg_track_settings_snapshot()捕获当前设置
pg_track_settings(timestamptz)指定时间的所有设置
pg_track_settings_diff(timestamptz, timestamptz)两个时间点之间变更的设置
pg_track_settings_log(text)特定设置的历史
pg_track_db_role_settings(timestamptz)指定时间的覆盖设置
pg_track_db_role_settings_diff(timestamptz, timestamptz)覆盖设置的变更
pg_track_db_role_settings_log(text)特定覆盖设置的历史
pg_track_settings_reset()清除所有历史

最后修改 2026-03-14: update extension metadata (953cbd0)