pgcozy
根据先前的pg_buffercache快照预热内存缓冲区
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgcozy | 1.0 | ADMIN | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5190 | pgcozy | 否 | 否 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | pg_buffercache pg_prewarm pgfincore pg_cooldown pg_prewarm pg_buffercache pg_repack pg_squeeze pg_visibility system_stats |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | pgcozy | pg_buffercache, pg_prewarm |
| RPM | PIGSTY | 1.0 | 1817161514 | pgcozy_$v | - |
| DEB | PIGSTY | 1.0 | 1817161514 | postgresql-$v-pgcozy | - |
构建
您可以使用 pig build 命令构建 pgcozy 扩展的 RPM / DEB 包:
pig build pkg pgcozy # 构建 RPM / DEB 包
安装
您可以直接安装 pgcozy 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pgcozy; # 当前活跃 PG 版本安装
pig ext install -y pgcozy -v 18 # PG 18
pig ext install -y pgcozy -v 17 # PG 17
pig ext install -y pgcozy -v 16 # PG 16
pig ext install -y pgcozy -v 15 # PG 15
pig ext install -y pgcozy -v 14 # PG 14
dnf install -y pgcozy_18 # PG 18
dnf install -y pgcozy_17 # PG 17
dnf install -y pgcozy_16 # PG 16
dnf install -y pgcozy_15 # PG 15
dnf install -y pgcozy_14 # PG 14
apt install -y postgresql-18-pgcozy # PG 18
apt install -y postgresql-17-pgcozy # PG 17
apt install -y postgresql-16-pgcozy # PG 16
apt install -y postgresql-15-pgcozy # PG 15
apt install -y postgresql-14-pgcozy # PG 14
创建扩展:
CREATE EXTENSION pgcozy CASCADE; -- 依赖: pg_buffercache, pg_prewarm
用法
pgcozy 对当前共享缓冲区状态进行快照,并可稍后从这些快照恢复(预热)缓冲区。需要 pg_buffercache 和 pg_prewarm 扩展。
初始化
SELECT pgcozy_init();
创建 pgcozy 模式,包含 snapshots 表和 cozy_type 类型。
拍摄快照
-- 快照使用次数 >= 3 的缓冲页(热度 1-5)
SELECT pgcozy_snapshot(3);
-- 快照所有缓冲页(热度 = 0)
SELECT pgcozy_snapshot(0);
快照以 JSONB 格式存储在 pgcozy.snapshots 中,包含列:id、snapshot_date、snapshot。每条记录包含 table_name、block_no 和 popularity。
从快照预热
-- 从特定快照 ID 预热
SELECT pgcozy_warm(1);
-- 从最新快照预热
SELECT pgcozy_warm(0);
查看快照
SELECT id, snapshot_date FROM pgcozy.snapshots;
快照以 JSONB 存储,可以查看、备份或在服务器之间传输。