vacuumlo 是一个 "会" 从 PostgreSQL 数据库移除所有孤立的大对象的简单程序. 一个大对象(LO)被认为是OID不在任何数据库的数据列的 oid 或者or lo 中的LO.
当摸使用它, 你可能会对 lo 模块中的lo_manage
触发器感兴趣.
lo_manage
在一开始尝试避免创造孤立的LOs是非常有用的.
命令行中出现的数据库都是处理过的.
vacuumlo 接受下面的命令行参数:
每个事务移除不超过 限制 数量的大对象 (默认 1000). 如果服务每移除一个LO就获得一个锁, 在一个事务中移除太多的LOs是非常危险的 max_locks_per_transaction. 如果你想要所有移除在一个单独的事务设置限制为0.
不移除任何东西,只是显示什么将要被执行.
输出一系列的进度信息.
打印 vacuumlo 版本并且退出.
显示 vacuumlo 的命令行参数, 并且退出.
vacuumlo 也接受下面的命令行参数作为连接参:
数据库服务器的主机.
数据库服务器的端口.
作为连接服务器的用户名.
从来不发出密码提示. 如果服务器要求密码认证并且通过其他方法比如.pgpass 文件中不能获取, 连接尝试将会失败. 在批处理任务或脚本中没有用户输入密码的时候这个选项将会变得很有用.
在连接数据库之前强制 vacuumlo 提示密码输入.
这个选项不是必要的, 因为 vacuumlo 将会自动的提示密码输入如果服务器需要密码认证的话. 然而, vacuumlo 将会浪费一个连接尝试去找出服务器是否需要密码. 在某些情况下使用-W选项来避免额外的连接尝试是值得的.