pgelog
通过伪自治事务实现扩展日志记录
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgelog | 1.0.2 | ADMIN | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5870 | pgelog | 否 | 否 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | dblink pg_variables pg_stat_log logerrors pgaudit table_log pg_drop_events pgmemento pg_auth_mon pg_sqlog log_fdw pgdisablelogerror |
|---|
Release tag 1.0.2 still ships extension SQL version 1.0; requires the dblink extension at runtime in addition to pg_variables.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.2 | 1817161514 | pgelog | dblink, pg_variables |
| RPM | PIGSTY | 1.0.2 | 1817161514 | pgelog_$v | postgresql$v-contrib, pg_variables_$v |
| DEB | PIGSTY | 1.0.2 | 1817161514 | postgresql-$v-pgelog | postgresql-$v-pg-variables |
构建
您可以使用 pig build 命令构建 pgelog 扩展的 RPM / DEB 包:
安装
您可以直接安装 pgelog 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
pig
dnf
apt
创建扩展:
用法
来源:README,control file,extension SQL 1.0.2,Tag v1.0.2
pgelog 通过使用 dblink 实现的 pseudo-autonomous transactions 写入可抵抗 rollback 的日志行。它会在 pg_variables 中缓存额外连接,因此同一 session 内重复写日志的成本更低。
依赖与安装
- PostgreSQL 11+
dblinkpg_variables- 无密码本地
dblink访问,通常通过peer
主要对象与函数
pgelog_logs:基础日志表。pgelog_vw_logs:带时间差的日志视图。pgelog_params:配置表。pgelog_to_log(...):写入一条不会随 rollback 消失的日志。pgelog_get_param(...)、pgelog_set_param(...)、pgelog_delete_param(...):管理扩展设置。
典型用法
官方 README 展示了在 PL/pgSQL exception handler 中使用 pgelog_to_log(...):先用 GET STACKED DIAGNOSTICS 收集诊断信息,再写入一条 FAIL 日志,最后重新抛出错误。
注意事项
- 每个 session 最多会额外打开一个
dblink连接,因此max_connections需要把这一点算进去。 - 上游
v1.0.2仍然使用同一组用户可见对象;Pigsty 提到的运行时dblink与pg_variables依赖,已被 control file 与 README 共同确认。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)