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”.
Na janela que será aberta, selecione a opção “VACUUM”. Opcionalmente, selecione as opções "Full", "Analyze" e "Verbose". Pressione “OK”.
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.
Ao término do processo, será demonstrada a mensagem semelhante à apresentada abaixo. Feche a janela clicando no botão “Done” ou “Concluído”.
Lembrando que este processo deve ser realizado quando não houver nenhum usuário conectado no sistema!
Crie um arquivo do tipo Documento de Texto (Bloco de Notas) e insira as seguintes informações no arquivo:
"[Diretório_Instalação_PostgreSQL]\vacuumdb.exe" -h [IP_do_BD] -p [Porta_do_BD] -U [User] --all --full --analyze --verbose [Nome_BaseDados] |
Feito isso, salve o arquivo com a extensão ".bat". Basta então, executar o arquivo com duplo clique sobre o mesmo para iniciar o processo do Vacuum.
A linha de comando de execução do Vacuum pode estar, inclusive, no mesmo arquivo que realiza o Backup da base de dados da sua empresa! Para isto, basta adicionar a linha no final do arquivo, que executará o Vacuum logo após o Backup da sua base de dados.
Argumentos:
[Diretório_Instalação_PostgreSQL]: Caminho do vacuumdb, por exemplo: C:\Arquivos de programas\PostgreSQL\9.0\bin\vacuumdb.exe;
-h [IP_do_BD]: IP de onde está localizado o Banco de Dados;
-p [Porta_do_BD]: Porta na qual foi instalado o Banco de Dados;
-U [User]: Username do banco. De padrão é postgres;
--all: Todas as tabelas da base de dados sofrerão o vacuum.
--full: Vacuum completo. Necessita de mais espaço em disco e trava o todo o Banco de Dados enquanto o processo está sendo executado.
--analyze: Função interna do PostgreSQL para realocação de registros e melhoria de performance.
[Nome_BaseDados]: Nome da base de dados. Caso este não for informado, será realizado o Vacuum Full em todas as bases de dados.
Para isso, vá em Painel de Controle e abra o Agendador de Tarefas e crie uma nova Tarefa.
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.
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.
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".
Wraparound é um efeito colateral do PostgreSQL, que elimina dados muito antigos, devido a uma execução muito longa do cluster. Para eliminar este problema foi necessário executar um VACCUM sem as opções FULL e ANALYSE. Este procedimento seria o mais correto, eliminado o problema.
Para evitarmos este problema, é necessário agendar a execução do VACUUM 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.
Para mais informações sobre Vacuum, acesse:
http://www.postgresql.org/docs/9.0/static/sql-vacuum.html
http://www.postgresql.org/docs/9.0/static/app-vacuumdb.html
http://www.postgresql.org/docs/9.0/static/routine-vacuuming.html