vacuumlo是一个从PostgreSQL数据库中移除"孤立"大对象的简单使用程序。一个孤立的大对象(LO)是指其OID不出现在数据中任何oid或lo数据列中的LO。
如果你使用该程序,你也许还会对lo模块中的lo_manage
触发器感兴趣。lo_manage
对于避免创建孤立LO有用处。
在命令行中提到的所有数据库都将被处理。
vacuumlo接受下列命令行参数:
在每一个事务中移除不超过limit个大对象(默认值为1000)。因为移除每一个LO时服务器都将要求一个锁,所以在一个事务中移除过多的LO会有超过max_locks_per_transaction的风险。如果你想在一个事务中就完成所有的移除工作,请将这个限制设置为0。
不移除任何东西,只是显示将会做什么。
写一些进度消息。
打印vacuumlo的版本并退出。
显示关于vacuumlo的命令行参数,并且退出。
vacuumlo也接受下列命令行参数用于连接:
数据库服务器的主机名。
数据库服务器的端口。
用于连接的用户名。
不要发出一个口令提示。如果服务器要求口令认证并且没有其他方式可以提供一个口令(例如一个.pgpass文件),连接尝试将会失败。这个选项可用于批处理任务以及脚本,因为在这些情况下不会有用户输入口令。
强制vacuumlo在连接到数据库之前提示要求一个口令。
这个选项不是不可缺少的,因为如果服务器要求口令认证,vacuumlo会自动提示要求一个口令。但是,vacuumlo将会浪费一次连接尝试来了解到服务器需要口令。在某些情况,值得用-W来避免这种额外的连接尝试。