尽管自动真空已启用,但很少有表和索引膨胀。
两个回收空间真空,我已经在较大的表上运行了真空,并且还对较大尺寸的索引执行了重新索引。现在数据库的大小处于控制之中。
在完成真空并重新索引更大的桌子后,我面临以下错误。
org.postgresql.util.PSQLException:错误无法打开文件“base / 16384/19048”:没有这样的文件或目录
请指导我如何解决上述错误,并告诉我这是否与我执行的vacumm full或重建索引操作有任何关系。
答案 0 :(得分:0)
您应该使用OID 16384连接到数据库,并找出该文件是什么:
SELECT oid::regclass FROM pg_class WHERE relfilenode = 19048;
错误应独立于VACUUM
或REINDEX
次运行。你最近遇到过操作系统崩溃吗?
错误表示数据损坏;数据目录中缺少一个文件。
最简单的选择是从备份恢复。
除此之外,您可以删除属于丢失文件的对象以恢复完整性(同时可能会丢失数据)。