amcheck
校验关系完整性
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
amcheck | 1.4 | ADMIN | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5980 | amcheck | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | pg_checksums pg_catcheck pg_orphaned pg_pathcheck pg_isok pg_surgery pageinspect adminpack pg_repack |
|---|
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| 1.4 | 1.4 | 1.4 | 1.4 | 1.4 |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
SQL
用法
amcheck 扩展提供验证 B-tree 索引、GIN 索引和堆(表)数据逻辑一致性的函数,在不修改数据的情况下检测损坏。
B-Tree 索引验证
SQL
检查所有系统目录索引
SQL
GIN 索引验证
SQL
堆(表)验证
SQL
返回每个检测到的问题的行:
| 列 | 类型 | 描述 |
|---|---|---|
blkno | bigint | 存在损坏的块号 |
offnum | integer | 损坏元组的偏移量 |
attnum | integer | 属性号(如果是特定列) |
msg | text | 问题描述 |
函数概览
| 函数 | 锁 | 用途 |
|---|---|---|
bt_index_check(index, heapallindexed, checkunique) | AccessShareLock | 常规生产检查 |
bt_index_parent_check(index, heapallindexed, rootdescend, checkunique) | ShareLock | 全面验证 |
gin_index_check(index) | AccessShareLock | GIN 索引验证 |
verify_heapam(relation, on_error_stop, check_toast, skip, startblock, endblock) | AccessShareLock | 表/堆损坏检测 |
所有 amcheck 错误都是真阳性。诊断后使用 REINDEX 或时间点恢复进行修复,可配合 pageinspect 使用。