↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
历史版本。 PostgreSQL 8.3 已结束支持。 请参阅 当前版本手册.

F.33. vacuumlo #

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

如果你使用这个程序,也可能会对 contrib/lo(见第 F.14 节)中的 lo_manage 触发器感兴趣。lo_manage 有助于尽量避免一开始就创建出孤立的 LO。

F.33.1. 用法

vacuumlo [options] database [database2 ... databaseN]
  

命令行上给出的所有数据库都会被处理。可用的选项包括:

-v

输出大量进度消息。

-n

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

-U username

用于连接的用户名。

-W

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

这个选项并非必不可少,因为如果服务器要求密码认证, vacuumlo 会自动提示输入密码。不过, vacuumlo 会浪费一次连接尝试,才知道服务器需要密码。在某些情况下,为了避免这次额外的连接尝试,提前指定 -W 是值得的。

-h hostname

数据库服务器的主机名。

-p port

数据库服务器的端口。

F.33.2. 方法

首先,它会构建一个临时表,其中包含所选数据库中所有大对象的 OID。

然后,它会扫描数据库中所有类型为 oid 或 lo 的列,并从临时表中移除匹配的项。

临时表中剩余的项标识出孤立的 LO。这些 LO 会被移除。

F.33.3. 作者

Peter Mount

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.