3.1登录服务器,到pg的base文件夹下执行:du -sh * | sort,查看base文件夹下所有文件的大小,文件名的数字对应的是数据库的OID
3.2打开navicat(或其它工具),在命令行窗口输入:select oid,datname from pg_database order by oid; 得到oid和数据库名的对应关系:
根据3.1的oid,在步骤3.2里找到对应的表;
3.3. 在服务器,进入到选定oid命名的文件夹,执行ll -hSr 按照大小排序显示
3.4在客户端进入对应的数据库,执行select relname,relfilenode from pg_class ORDER BY relfilenode;
至此,就可以找出来具体是哪个库的哪个表,数据量大(包含已删除为清理的),占用空间多了,此时执行清理步骤:
1. 确定该表的数据,及时清理不需要的内容
2. 执行 VACUUM; (此指令用于清理数据已逻辑删除,单还在磁盘存储的内容)
3. 如果还是需要更多的空间,可以额外执行:REINDEX TABLE tableName;