Versões comparadas

Chave

  • Estas linhas foram adicionadas. Esta palavra foi adicionada.
  • Estas linhas foram removidas. Esta palavra foi removida.
  • Formatting was changed.

...

Basicamente, o Vacuum é um processo de melhora de performance do Banco de Dados através da realocação de espaço obsoleto. Abaixo estão explicadas as 3 maneiras de executar este processo e quando recomendamos executá-los.


Requisitos:

  • Será necessário ter a instalação do programa pgAdmin (referente ao PostgreSQL 9.0) com acesso ao servidor de banco de dados: http://www.pgadmin.org/. Caso falte a instalação, solicitamos entrar em contato com o técnico responsável pela parte de informática de sua empresa.
  • Possuir usuário e senha do banco de dados, caso não possua solicite ao responsável pelo banco de dados na empresa.


    (aviso) IMPORTANTE:
  • Antes de iniciar este processo é importante que não haja ninguém logado no Sistema.
  • É altamente recomendável que um backup da base de dados seja feito sempre antes de iniciar qualquer procedimento de Vacuum.

...


1 - Manualmente

...

Execute o programa “PgAdmin”.

Acesse o servidor e pressione o botão direto do mouse sobre o ícone do banco de dados, selecione a opção “Maintenance”.

Figura 1.


Na janela que será aberta, selecione a opção “VACUUM”. Opcionalmente, selecione as opções "Full", "Analyze" e "Verbose". Pressione “OK”.

Image ModifiedFigura 2.

 

  • FULL: Esta opção exigirá mais espaço em disco, é mais demorada e é recomendada somente para casos onde é necessário diminuir o volume em disco utilizado pela base de dados.
  • FREEZE: Esta opção está defasada e não recomenda-se utilizá-la.
  • ANALYZE: Atualiza as tabelas de estatísticas do banco de dados, visando o aumento de performance quando da execução das instruções.
  • VERBOSE: Demonstra as informações em tela enquanto o processo é executado.

    Para mais informações, acesse: http://www.postgresql.org/docs/9.0/static/sql-vacuum.html 

...

Enquanto o processo é executado, as informações serão demonstradas na tela. Tal processo pode demorar alguns minutos. O tempo varia de acordo com o tamanho do Banco de Dados.

Figura 3.

Ao término do processo, será demonstrada a mensagem semelhante à apresentada abaixo. Feche a janela clicando no botão “Done” ou “Concluído”.

...

Para isso, vá em Painel de Controle e abra o Agendador de Tarefas e crie uma nova Tarefa.

Image ModifiedFigura 4.


Na aba Geral, entrar com o nome da nova tarefa e quaisquer informações adicionais que desejar no campo Descrição para identificar a Tarefa. Também poderá escolher o usuário que executará esta tarefa entre outras opções.

Figura 5.


Na aba Disparadores, será informado o horário que será disparada tal tarefa. Como informado novamente, o Vacuum deve ser executado quando não houver usuários conectados no Sistema, portanto é sempre uma boa prática agendar para o final do dia ou de madrugada, lembrando que pode levar alguns minutos ou horas, dependendo do tamanho da(s) base(s) de dados.

Também é altamente recomendável realizar este processo diariamente, para garantir uma melhor performance do banco de dados, porém tanto a frequência quanto o horário da execução do Vacuum fica a critério do profissional de TI de sua empresa e do planejamento interno da mesma.

Figura 6.


Na aba Ações, será definido o arquivo a ser iniciado. Selecione o arquivo ".bat" criado anteriormente e deixe selecionada a opção "Iniciar um programa".

Figura 7.


 

...

Autovacuum (to prevent wraparound)

O que é?

Wraparound é um efeito colateral do PostgreSQL, que elimina dados muito antigos, devido a uma execução muito longa do cluster.

Para evitarmos este problema, é necessário agendar a execução do VACCUM sem as opções FULL e ANALYSE, da seguinte maneira, conforme fortemente recomendamos:

  • De Segunda a Sábado: Executar o VACUUM FULL ANALYSE (Em um horário em que não haja usuários utilizando o sistema).
  • De Domingo: Criar outro script para executar o VACUUM sem o FULL e ANALYSE.
Bloco de código
languagepowershell
SET PGPASSWORD=[SENHA_DO_USUARIO_POSTGRES_DO_BANCO]
vacuumdb -h [IP_banco_dados] -p [PORTA] -U postgres --all --verbose 

 

Comando para verificar a ultima execução do VACUUM no banco.

Bloco de código
SELECT relid,schemaname,relname,last_vacuum,last_autovacuum,last_analyze,last_autoanalyze FROM pg_stat_user_tables;



(informação) Para mais informações sobre Vacuum, acesse:

...

http://www.postgresql.org/docs/9.0/static/app-vacuumdb.html

http://www.postgresql.org/docs/9.0/static/routine-vacuuming.html

 

...