最近,在我的PostgreSQL日志中,我发现: 2021-09-30 08:33:37.242 CEST 4183904死机:无法写入文件"pg_wal/xlogtemp.4183904":设备上没有剩余空间2021-09-30 08:33:37.242 CEST 1376上下文:正在写入关系库的块413931 /238033/270693 2021-09-09-30 08:33:33:46.609 CEST 1376日志:服务器进程(PID 4183904)由信号6: Aborted 2021-09-30 08:33:33:46.609 CEST 1376终止详细信息:失
UPDATE db.table SET logs = array_prepend('some things happened', logs[0:1000]) WHERE id = 'foo'; 此查询只是将文本添加到文本数组中,并从数组中删除元素并将数组限制为1,000个元素。它可以工作,但磁盘上的表大小会迅速膨胀到数GB (表应该只有150MB左右)。我做错了什么吗?这是PostgreSQL中的错误吗?我运行的是PostgreSQL 11.9。如果我不运行完全真空,PostgreSQL最终会用完所有可用的磁盘空间。 这个查询是针对基于回合的游戏的,它存储有关
我正在运行一个非常大查询,它在表中插入了很多行,将近800万行被分成了一些较小的查询,但在某些时刻出现了错误:"I get an error“not not write block ...设备上没有剩余空间的临时文件...“使用postgresql”。我不知道在每次查询后是否需要删除临时文件,以及如何删除临时文件,或者是否与其他问题相关。
谢谢
我已经使用docker-compose在一个集装箱化的环境中安装了postgres,因此我使用了这个docker镜像crunchydata/crunchy-postgres-gis:centos7-11.5-2.4.2,一切都在正常运行,直到我意识到PG_DIR/pg_wal占用了大量的磁盘空间,我不想每次都使用pg_archivecleanup,也不想在cron作业中使用它,但我想将postgres配置为自动执行。请问,正确的配置是什么? 这是我的postgresql.conf文件。 listen_addresses = '*' # what IP add
我目前正在使用EBS卷在AWS上处理一个EC2实例,并且我收到了一个警告,因为即使在服务器空闲时,我也有恒定的I/O消耗。
iotop命令显示:
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
160 be/3 root 0.00 B 27.58 M 0.00 % 0.06 % [jbd2/xvda1-8]
10016 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % [flush-202:1]
10014 be/4
我使用的是PostgreSQL 9.6 (Ubuntu16.04),我有一个大约10k行的小表T,其中每一行每分钟更新2次,峰值时间(类似于UPDATE T SET c1 = ?, c2 = ? WHERE id = ?)。此外,这是该表中唯一的更新操作,而且插入和删除根本不常见。
但是,我注意到T中的SELECT查询有点慢,在研究了一下之后,我发现了。此外,我还发现了类似的问题,比如和,但是关于查询。
我的问题是:行中频繁的更新是否会减缓选择查询的速度?如果是的话,怎样才是正确的处理方法呢?