gpt4 book ai didi

linux - PostgreSQL 12 - "base"目录中的大型缓存文件

转载 作者:行者123 更新时间:2023-12-04 18:36:20 24 4
gpt4 key购买 nike

我注意到我的 8MB 小型数据库被 PostgreSQL 12 缓存在这个文件夹中:

/var/lib/postgresql/12/main/base/16384
此文件夹包含多个 1GB 文件,例如“16417”,重 1073741824 字节。
如何删除这些文件并将缓存文件空间限制为最大 100 GB?现在它使用尽可能多的空间并使我的磁盘崩溃(没有剩余空间)。
在 postgresql.conf 文件中,我更改了这些选项:
temp_file_limit = 10000000 
shared_buffers = 128MB
checkpoint_timeout = 12h
max_wal_size = 100MB
min_wal_size = 80MB
但不幸的是,它没有帮助。
我还能做些什么来解决这个问题?在一个我们的这些文件增长到 80 GB...
编辑:即使使用默认设置也会出现此问题。我的系统是 Ubuntu 18.04.4。

最佳答案

这不是缓存,这些是实际的表和索引。如果您弄乱这些文件,您将破坏您的数据库并丢失数据。
找出数据库 16384 是什么:

SELECT datname FROM pg_database WHERE oid = 16384;
然后连接到该数据库并找出 16417 是什么:
SELECT relname, relnamespace::regnamespace, relkind
FROM pg_class WHERE relfilenode = 16417;
如果该对象的大小大于应有的大小,则可能您有一个膨胀的表或索引,并且 VACUUM (FULL) tab可以使它更小(但不要忘记重写时表是不可访问的!)。
同样,请确保您自己不操作任何这些文件。

关于linux - PostgreSQL 12 - "base"目录中的大型缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65215166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com