Em 15 de dezembro de 2016 11:16, Crauss, Jacson <cra...@gmail.com> escreveu:

>
> Estou fazendo uma troca de servidor das bases de testes. Fiz um dumpall no
> servidor antigo, e restaurei no novo servidor (zerado, sem nenhuma base, só
> com a instalação do PostgreSQL). Ao terminar o restore, fiz o VACUUM FULL
> de todas as bases
>

O vacuum full não é necessário, visto que as bases foram construídas do
zero, logo não há tuplas mortas, ou ao menos não deveria haver.


> [...]
>
Quando busco o tamanho da base no banco:
> Servidor antigo:
> select pg_database_size('pgh')/1024/1024/1024 || 'GB';
>

Obs.: Podes utilizar a função "pg_size_pretty" para realizar essa
formatação e cálculo.


>  ?column?
> ----------
>  410GB
> (1 registro)
>
> Servidor novo:
> postgres=# select pg_database_size('pgh')/1024/1024/1024 || 'GB';
>  ?column?
> ----------
>  850GB
> (1 row)
>
> Não sei como o pg_database_size funciona, como ele calcula o tamanho, mas
> aparentemente (chute, dedução) está me retornando o tamanho da base antiga
> (talvez tenha vindo esta informação já com o restore) somado ao tamanho
> real da base.
>
> Alguma idéia de como solucionar, para que mostre o tamanho real da base?
>

Primeiramente, eu refaria o teste sem realizar o vacuum full. Poderia
também executar um analyze na base de dados antes de executar as queries
para verificar o tamanho (ou neste momento também). Não tenho certeza de
como ele funciona, porém creio que ele não teria como obter a informação
sobre o tamanho das bases de origem, a não ser que tenha trazido as
estatísticas das bases de origem e as estatísticas não tenham sido
atualizadas.

Espero que ajude.

[]'s
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a