我有一个运行在PostgreSQL 8.3上的中型数据库集群。
数据库将数字文件(图像)存储为LOB。
在数据库集群中有相当多的活动,大量内容是以持续的方式创建和删除的。
即使托管OID的应用程序表由应用程序正确维护(当删除图像文件时),数据库集群的大小仍在不断增长。
自动清理处于活动状态,因此不应发生这种情况。
发布于 2013-06-27 02:13:43
删除应用程序表(包含OID)的行时,不会从数据库中删除LOB。
这也意味着真空过程不会回收空间。
为了清除未使用的LOB,您在数据库上运行了VACUUMLO。Vacuumlo将从数据库中删除所有未引用的LOB。
示例调用:
vacuumlo -U postgres -W -v <database_name>(我包含的-v只是为了让vacuumlo更冗长一点,这样你就可以看到它删除了多少LOB)
vacuumlo删除LOB后,您可以运行VACUUM FULL (或让自动真空进程运行)。
https://stackoverflow.com/questions/17327489
复制相似问题