não pôde gravar o arquivo de estatísticas temporárias “pg_stat_tmp / pgstat.tmp”: Não há espaço disponível no dispositivo

1

Os posgtres repentinamente pararam no servidor e os logs mostram o seguinte erro:

2015-08-18 02:29:22 IST ERROR:  could not extend file "base/197893/198337": No space left on device
2015-08-18 02:29:22 IST HINT:  Check free disk space.
2015-08-18 02:29:22 IST STATEMENT:  UPDATE "data_shipmentpptlmapping" SET "pptl_id" = '2558', "time" = '2015-08-17 20:40:47.163837+00:00', "bag_seal_status" = 'close', "
shipment_id_id" = 728518 WHERE "data_shipmentpptlmapping"."id" = 557513 
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary statistics file "pg_stat_tmp/pgstat.tmp": No space left on device
2015-08-18 02:29:25 IST LOG:  could not write temporary 2015-08-18 04:29:04 IST LOG:  database system shutdown was interrupted; last known up at 2015-08-18 03:35:25 IST

E aqui estão os detalhes do postgres:

postgres=# SHOW data_directory;
        data_directory        
------------------------------
 /var/lib/postgresql/9.1/main
(1 row)

postgres=# SHOW temp_tablespaces;
 temp_tablespaces 
------------------

(1 row)

postgres=# SELECT version()
postgres-# ;
                                                version                                                 
--------------------------------------------------------------------------------------------------------
 PostgreSQL 9.1.14 on x86_64-unknown-linux-gnu, compiled by gcc-4.7.real (Debian 4.7.2-5) 4.7.2, 64-bit
(1 row)

Atualizando a informação .. O resultado do uso do disco do servidor ..

➜  ~  df -h 
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  909G  465G  398G  54% /
udev                                                     10M   10M     0 100% /dev
tmpfs                                                   1.6G  616K  1.6G   1% /run
/dev/disk/by-uuid/9ca82aa1-92c7-458c-a76d-9ce5c074f5dd  909G  465G  398G  54% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   4.8G   24M  4.8G   1% /run/shm
tmpfs                                                   4.8G     0  4.8G   0% /tmp

Adicionando as informações ls -l /var/lib/postgresql/9.1/main .

total 56
drwx------ 8 postgres postgres 4096 Sep 28  2014 base
drwx------ 2 postgres postgres 4096 Aug 18 04:29 global
drwx------ 2 postgres postgres 4096 Aug 13 23:58 pg_clog
drwx------ 4 postgres postgres 4096 Aug 12  2014 pg_multixact
drwx------ 2 postgres postgres 4096 Aug 18 04:29 pg_notify
drwx------ 2 postgres postgres 4096 Aug 12  2014 pg_serial
drwx------ 2 postgres postgres 4096 Aug 19 18:24 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Aug 19 05:34 pg_subtrans
drwx------ 2 postgres postgres 4096 Aug 12  2014 pg_tblspc
drwx------ 2 postgres postgres 4096 Aug 12  2014 pg_twophase
-rw------- 1 postgres postgres    4 Aug 12  2014 PG_VERSION
drwx------ 3 postgres postgres 4096 Aug 19 17:34 pg_xlog
-rw------- 1 postgres postgres  133 Aug 18 04:29 postmaster.opts
-rw------- 1 postgres postgres   93 Aug 18 04:29 postmaster.pid
lrwxrwxrwx 1 root     root       36 Aug 12  2014 server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 root     root       38 Aug 12  2014 server.key -> /etc/ssl/private/ssl-cert-snakeoil.key
    
por Nishant Kashyap 18.08.2015 / 12:54

2 respostas

1

Você está sem armazenamento, onde pg_stat_tmp/pgstat.tmp reside. Qual é exatamente o que a mensagem de erro lhe diz.

    
por 18.08.2015 / 13:38
0

Como @Tobias disse que é provável que haja um problema com RAM, então edite seu postgresql.conf para reduzir shared_buffers ou effective_cache_size ... você pode acionar free no momento do primeiro log" No space "para ver o que o kernel acha, mas na verdade este é um bug do PG. Reiniciar o serviço (temporariamente) resolveu o problema para mim.

    
por 04.10.2017 / 18:33