跳转到主要内容

pgroonga_database

清理损坏的 PGroonga 内部数据库文件的恢复辅助扩展

概览

扩展包名版本分类许可证语言
pgroonga4.1.0FTSPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
2110pgroonga是是否是否否-
2111pgroonga_database否是否是否否-

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY4.1.01817161514pgroonga-
RPMPIGSTY4.1.01817161514pgroonga_$vgroonga-libs, msgpack, xxhash-libs
DEBPIGSTY4.1.01817161514postgresql-$v-pgroongalibgroonga0, `libmsgpackc2
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
el8.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
el9.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
el9.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
el10.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
el10.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
d12.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
d12.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
d13.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
d13.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u22.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u22.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u24.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u24.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u26.x86_64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0
u26.aarch64PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0PIGSTY 4.1.0

构建

您可以使用 pig build 命令构建 pgroonga 扩展的 RPM / DEB 包:

pig build pkg pgroonga         # 构建 RPM / DEB 包

安装

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

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

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

安装
pig install pgroonga;          # 当前活跃 PG 版本安装
pig
pig ext install -y pgroonga -v 18  # PG 18
pig ext install -y pgroonga -v 17  # PG 17
pig ext install -y pgroonga -v 16  # PG 16
pig ext install -y pgroonga -v 15  # PG 15
pig ext install -y pgroonga -v 14  # PG 14
dnf
dnf install -y pgroonga_18       # PG 18
dnf install -y pgroonga_17       # PG 17
dnf install -y pgroonga_16       # PG 16
dnf install -y pgroonga_15       # PG 15
dnf install -y pgroonga_14       # PG 14
apt
apt install -y postgresql-18-pgroonga   # PG 18
apt install -y postgresql-17-pgroonga   # PG 17
apt install -y postgresql-16-pgroonga   # PG 16
apt install -y postgresql-15-pgroonga   # PG 15
apt install -y postgresql-14-pgroonga   # PG 14

创建扩展:

CREATE EXTENSION pgroonga_database;

用法

来源:

pgroonga_database 4.1.0 是用于恢复损坏的 PGroonga 内部数据库的辅助扩展。它只提供一个 SQL 函数,用来删除数据库目录及适用表空间目录中的 PGroonga 文件,不提供搜索访问方法。

恢复流程

普通索引损坏可能只需 REINDEX 即可修复。只有内部 Groonga 数据库本身损坏、确定需要重建时,才使用此模块。安排恢复窗口,先断开所有使用 PGroonga 的会话;文件被删除时,残留会话可能崩溃。

在尚未打开任何 PGroonga 索引的新管理连接中执行:

CREATE EXTENSION pgroonga_database;
SELECT pgroonga_database_remove();

执行后立即断开该连接,再建立新连接,对 每一个 PGroonga 索引执行 REINDEX,从 PostgreSQL 表数据重新创建内部数据库。完成所有受影响索引的重建和检查后,再恢复应用流量。

返回值与边界

pgroonga_database_remove() 结束清理循环时返回 true。表空间所有权检查未通过时,循环会提前停止,但函数仍可能返回 true,因此不能仅凭返回值认定所有位置都已清理。其他失败可能报错。它直接删除内部文件,既不导出文件,也不重建索引。不要在清理连接中使用其他 PGroonga 功能。此操作不是例行清理、卸载命令,也不能仅靠包裹在 SQL 事务中就保证安全。

控制文件未将扩展标记为受信任或可迁移模式。C 实现在遍历位置时检查表空间所有权,应使用拥有所需位置的管理员,并确认清理和全量索引重建完成。模块不需要预加载,仅应为恢复任务启用。

4.1.0 版本

control 版本随 PGroonga 同步到 4.1.0。恢复辅助函数仍会删除内部文件,上述断开连接并重建索引的流程保持不变。

这个页面对您有帮助吗?