On 29-08-2016 07:58, Luiz Carlos L. Nogueira Jr. wrote:
> Pessoal,
> 
> Estávamos fazendo um vacuum full quando a VM "crashou".
> Depois de conseguirmos reiniciá-la, fizemos novamente o vacuum full e
> ele terminou normalmente.
> Só que quando vi, o tamanho do banco ficou uns 130GB maior, que é
> justamente o tamanho da tabela que estava tendo o vacuum quando "crashou".
> Olhando os tamanhos das maiores tabelas do banco, elas estão normais. 
> Como fazer pra encontrar esse "espaço perdido"?
> 

Já vi isso acontecer *eventualmente* pois o que ocorre é que o VACUUM
FULL reescreve em disco todos os datafiles e só faz o swap e remove os
antigos quando a transação for finalizada (aka commit). Quando acontece
um rollback em situações normais os novos datafiles que estavam sendo
gerados durante o processo sao removidos pelo PostgreSQL.

Então é bem provável que tenham ficado datafiles *perdidos* dentro do
seu $PGDATA/base/OID_DA_SUA_BASE.

Pelo meu histórico pessoal uma vez eu usei uma query pra identificar
esse fenômeno e determinar se essa teoria era correta. Tente usar a query:

SELECT file,
       (file_stat).size,
       pg_size_pretty((file_stat).size),
       (file_stat).modification
  FROM (SELECT file,
               pg_stat_file('base/'||(SELECT oid FROM pg_database WHERE
datname = current_database())||'/'||file) as file_stat
          FROM pg_ls_dir('base/'||(SELECT oid FROM pg_database WHERE
datname = current_database())) AS file
         WHERE file ~ '[0-9]$'
           AND file !~ '^t'
           AND NOT EXISTS (SELECT 1
                             FROM pg_class
                            WHERE relfilenode::integer =
split_part(file,'.',1)::integer)) AS file
 WHERE (file_stat).modification::date < current_date
 ORDER BY 1;


Até onde me lembro ela não é 100% OK (creio que tenha que desconsiderar
tabelas temporarias)... mas pode ser um inicio.

De qualquer forma quando detectei de fato esse problema eu resolvi
fazendo dump/restore em um novo cluster com initdb.

Att,

-- 
   Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a