vacuumlo
vacuumlo — 从PostgreSQL数据库中移除孤立的大对象
概要
vacuumlo
[选项
...]数据库名
...
说明
vacuumlo是一个简单的实用程序,可以从PostgreSQL数据库中移除任何“孤立”大对象。孤立的大对象 (LO) 被认为是任何 OID 在数据库的任何oid
或lo
数据列中均未出现的大对象。
如果您使用此工具,您可能还会对lo模块中的lo_manage
触发器感兴趣。lo_manage
可用于尝试避免在最初创建孤立的 LO。
命令行中命名的所有数据库都将被处理。
选项
vacuumlo接受以下命令行参数
-l
limit
--limit=
limit
每个事务最多删除
limit
个大对象(默认 1000)。由于服务器为每个已删除的大对象获取一个锁,因此在一个事务中删除过多的大对象有超出 max_locks_per_transaction 的风险。如果您希望在单个事务中完成所有删除,请将限制设置为零。-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支持的环境变量(请参阅第 34.15 节)。
环境变量PG_COLOR
指定是否在诊断消息中使用颜色。可能的值为always
、auto
和never
。
备注
vacuumlo采用以下方法工作:首先,vacuumlo构建一个临时表,其中包含所选数据库中所有大对象的 OID。然后,它扫描数据库中所有类型为oid
或lo
的列,并从临时表中删除匹配的条目。(注意:仅考虑具有这些名称的类型;特别是,不考虑其上的域。)临时表中的剩余条目标识孤立的 LO。这些条目将被删除。
作者
Peter Mount<[[email protected]](/cdn-cgi/l/email-protection#b0c0d5c4d5c2f0c2d5c4d5c09edfc2d79ec5db)>