PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

vacuumlo

vacuumlo — 从 PostgreSQL 数据库中移除孤儿大对象

Synopsis

vacuumlo [option...] dbname...

描述

vacuumlo 是一个简单的实用程序,它会从 PostgreSQL 数据库中移除任何“孤儿”大对象。孤儿大对象(LO)指其 OID 没有出现在数据库中任何 oid 或 lo 数据列中的 LO。

如果你使用该工具,可能还会对 lo 模块中的 lo_manage 触发器感兴趣。lo_manage 有助于从一开始就避免产生孤儿 LO。

在命令行中指定的所有数据库都会被处理。

选项

vacuumlo 接受以下命令行参数:

-l limit
--limit=limit

每个事务移除的大对象不超过 limit 个(默认 1000)。由于服务器每移除一个 LO 都要获取一个锁,在单个事务中移除过多 LO 可能超出 max_locks_per_transaction。如果你希望所有移除操作在单个事务中完成,请将该限制设为 0。

-n
--dry-run

不移除任何内容,只显示将要执行的操作。

-v
--verbose

输出大量进度消息。

-V
--version

打印 vacuumlo 版本并退出。

-?
--help

显示关于 vacuumlo 命令行参数的帮助并退出。

vacuumlo 还接受以下用于连接参数的命令行参数:

-h host
--host=host

数据库服务器的主机名。

-p port
--port=port

数据库服务器的端口。

-U username
--username=username

用于连接的用户名。

-w
--no-password

从不发出密码提示。如果服务器要求密码认证,而密码无法通过 .pgpass 文件等其他途径获得,则连接尝试将失败。该选项在没有用户在场输入密码的批处理作业和脚本中很有用。

-W
--password

强制 vacuumlo 在连接到数据库之前提示输入密码。

该选项从来都不是必需的,因为当服务器要求密码认证时,vacuumlo 会自动提示输入密码。不过,vacuumlo 会浪费一次连接尝试才能发现服务器需要密码。在某些情况下,键入 -W 以避免额外的连接尝试是值得的。

环境变量

PGHOST
PGPORT
PGUSER

默认连接参数。

与大多数其他 PostgreSQL 实用程序一样,该实用程序也使用 libpq 支持的环境变量(参见 Section 32.15)。

环境变量 PG_COLOR 指定诊断消息是否使用颜色。可取值为 always、auto 与 never。

注记

vacuumlo 的工作方式如下:首先,vacuumlo 构建一个临时表,其中包含所选数据库中所有大对象的 OID。然后它扫描数据库中所有 oid 或 lo 类型的列,并从临时表中移除匹配的条目。(注意:只考虑具有这些名称的类型;特别地,建立在它们之上的域不在考虑范围内。)临时表中剩余的条目即标识孤儿 LO,它们将被移除。

作者

Peter Mount