受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

vacuumlo

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

Synopsis

vacuumlo [option...] dbname...

描述

vacuumlo是一个简单的实用程序,用于从 PostgreSQL数据库中移除孤立的大对象。 孤立的大对象(LO)是指其 OID 没有出现在该数据库任何 oidlo数据列中的 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指定是否在诊断消息中使用颜色。 可能的值为alwaysautonever

注解

vacuumlo按以下方法工作:首先, vacuumlo构建一个临时表,其中包含所选数据库中所有大对象的 OID。 然后,它会扫描数据库中所有类型为 oidlo的列,并从临时表中移除匹配的项。 (注意:只会考虑名称正好为这两种的类型;特别是,基于这些类型定义的域不会被考虑。) 临时表中剩余的项标识出孤立 LO,并会被移除。

作者

Peter Mount

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。