pg_catcheck
用于诊断系统目录是否损坏的工具
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_catcheck | 1.6.0 | ADMIN | BSD 3-Clause | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5160 | pg_catcheck | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | pg_checksums amcheck pg_surgery pageinspect pg_visibility pgstattuple ddlx pgdd |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.6.0 | 1817161514 | pg_catcheck | - |
| RPM | PGDG | 1.6.0 | 1817161514 | pg_catcheck_$v | - |
| DEB | PGDG | 1.6.0 | 1817161514 | postgresql-$v-pg-catcheck | - |
安装
您可以直接安装 pg_catcheck 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_catcheck; # 当前活跃 PG 版本安装
pig ext install -y pg_catcheck -v 18 # PG 18
pig ext install -y pg_catcheck -v 17 # PG 17
pig ext install -y pg_catcheck -v 16 # PG 16
pig ext install -y pg_catcheck -v 15 # PG 15
pig ext install -y pg_catcheck -v 14 # PG 14
dnf install -y pg_catcheck_18 # PG 18
dnf install -y pg_catcheck_17 # PG 17
dnf install -y pg_catcheck_16 # PG 16
dnf install -y pg_catcheck_15 # PG 15
dnf install -y pg_catcheck_14 # PG 14
apt install -y postgresql-18-pg-catcheck # PG 18
apt install -y postgresql-17-pg-catcheck # PG 17
apt install -y postgresql-16-pg-catcheck # PG 16
apt install -y postgresql-15-pg-catcheck # PG 15
apt install -y postgresql-14-pg-catcheck # PG 14
创建扩展:
CREATE EXTENSION pg_catcheck;
用法
pg_catcheck 是一个命令行工具,通过验证目录表之间的交叉引用来检查 PostgreSQL 系统目录是否损坏。它接受与其他 PostgreSQL 工具相同的连接参数(-h、-p、-U、-d)。
基本用法
pg_catcheck -h localhost -p 5432 -d mydb
未发现问题时的正常输出:
progress: done (0 inconsistencies, 0 warnings, 0 errors)
存在损坏时的示例输出
notice: pg_class row has invalid relnamespace "24580": no matching entry in pg_namespace
row identity: oid="24581" relname="foo" relkind="r"
notice: pg_type row has invalid typnamespace "24580": no matching entry in pg_namespace
row identity: oid="24583"
progress: done (4 inconsistencies, 0 warnings, 0 errors)
结果分类
- 不一致:目录交叉引用中的逻辑问题(例如悬空的 OID 引用)
- 警告:更严重的问题
- 错误:无法读取目录
选项
pg_catcheck --help # 完整选项列表
pg_catcheck --select-from-relations # 同时检查缺失/不可访问的关系文件
连接
支持与 psql 相同的选项:-h 主机、-p 端口、-U 用户、-d 数据库,或连接字符串/URL。