Postgresql 中文操作指南

vacuumlo

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

Synopsis

vacuumlo [ option …​] dbname …​

Description

vacuumlo 是一个简单的实用程序程序,它将从 PostgreSQL 数据库中删除任何“孤立的”大对象。孤立的大对象 (LO) 被认为是不在数据库的任何 oidlo 数据列中出现的任何 LO。

如果您使用此命令,您还可能对 lo 模块中的 lo_manage 触发器感兴趣。 lo_manage 可用于尝试避免首先创建孤立的 LO。

命令行上命名的所有数据库都将被处理。

Options

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

    • Database server’s host.

  • -p _port—​port=_port

    • Database server’s port.

  • -U _username—​username=_username

    • 连接时的用户名。

  • -w_—​no-password_

    • 永不发出密码提示。如果服务器需要密码验证但其他方法(如 .pgpass 文件)无法提供密码,连接尝试将失败。此选项可在无人执行密码输入的批处理作业和脚本中使用。

  • -W_—​password_

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

    • 此选项并不是必须的,因为当服务器要求密码验证时,vacuumlo 会自动提示输入密码。然而,vacuumlo 会浪费一次连接尝试来找出服务器是否需要密码。在一些情况下,输入 -W 是值得的,以避免额外的连接尝试。

Environment

  • PGHOST_PGPORT_PGUSER

    • Default connection parameters.

此实用程序与大多数其他 PostgreSQL 实用程序一样,还使用 libpq 支持的环境变量(请参阅 Section 34.15 )。

环境变量 PG_COLOR 指定是否在诊断消息中使用颜色。可能的值是 alwaysautonever

Notes

vacuumlo 根据以下方法进行工作:首先,vacuumlo 创建一个临时的表,其中包含了选中数据库中的所有大对象中的 OID。然后再扫描数据库中所有为类型 oidlo 的列,并从临时表中移除匹配的条目。(注意:只考虑带有这些名称的类型;特别地,不考虑它们上的域。)临时表中的剩余条目识别出孤立的 LO。它们被移除。