Eu recentemente tenho alguns DBs para manter. Acabei de falar sobre isso "Evitando falhas de wraparound de ID de transação". Eu verifiquei meus DBs e obtive os números:
Eu fiz vácuodb -a -v neste banco de dados e, em seguida, obtive os números:
Na minha opinião não é bom o suficiente? Devo me preocupar?
Se entendi corretamente o manual do PostgreSQL, devo usar o vácuo freeze para zerar os contadores? Eu sei que esse banco de dados crescerá de forma constante, geralmente em inserções, não tanto para exclusões/atualizações.
Obrigada.
Não,
VACUUM
não congelará todas as linhas, portanto, não será definidodatfrozenxid
para o ID da transação atual.VACUUM
não congelará nenhuma linha que seja inferior àsvacuum_freeze_min_age
transações antigas (padrão 50 milhões).As linhas que permanecem inalteradas por um tempo têm boas chances de permanecer, então vale a pena congelá-las. Novas linhas geralmente serão excluídas ou atualizadas em breve; nesse caso, congelá-las (o que causa uma gravação!) seria uma perda.
VACUUM
irá pular todos os blocos que são “todos visíveis”, então as linhas nessas páginas não serão congeladas.VACUUM
pulará as páginas que não podem ser bloqueadas porque estão fixadas.O segundo e o terceiro ponto não se aplicam a uma execução de autovacuum anti-wraparound (“agressiva”); tal processo realmente quer visitar todas as páginas que não estão “totalmente congeladas”.
Está tudo bem com seu banco de dados. É bom para o desempenho se as linhas não congelarem muito cedo.
O limite de falha é 2.000.000.000, que é dez vezes mais do que o limite de autovacuum_freeze_max_age de 200.000.000. Portanto, não há com o que se preocupar, você está muito longe do fracasso e ele entrará automaticamente em ação com bastante tempo.
Mas uma vez que um vácuo anti-envoltório entra em ação, pode causar inconvenientes devido ao bloqueio da mesa. Portanto, você pode querer fazer o congelamento (como com
-F
sinalizador para vácuodb) em um momento de sua escolha para evitar que isso aconteça automaticamente em algum momento fora de seu controle.