Rotina de limpeza da base de dados - VACUUM
PostgreSQL
Quando o banco de dados atinge um volume grande de dados é necessário executar rotinas de manutenção que tem por objetivo:
- Diminuir o espaço utilizado pelo banco de dados
- Recalcular as estatísticas para melhorar desempenho das busca realizadas no banco de dados.
Para executar essa rotina é necessário que NINGUÉM esteja conectado ao banco de dados.
Isso incluí qualquer aplicativo que conecte ao banco de dados.
Sendo assim, é recomendado parar todos os sistemas conectados ao banco de dados.
No caso do ProManager certifique-se que ninguém esteja conectado ao sistema e pare todos os agendamentos antes de executar o comando.
Ao executar a rotina de VACCUM os sistemas conectados ao banco de dados não vão conseguir executar nenhum comando no banco de dados.
Além disso não é possível interromper o comando e o processo dependendo do tamanho da base de dados pode levar horas até finalizar a execução do comando.
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”.
Enquanto o processo é executado, as informações serão demonstradas na tela.
Agendamento
Para agendar a execução da rotina de vacuum é necessário:
- Criar arquivo %APPDATA%\postgresql\pgpass.conf com o seguinte conteudo: localhost:5432:*:USUARIO:SENHA
- Adicionar a variável de ambiente PATH o caminho da pasta bin da instalação do PostgreSQL. Ex: C:\Program Files (x86)\PostgreSQL\10\bin
- Reiniciar a seção do usuário
Crie um arquivo limpeza.bat com o seguinte conteúdo:
vacuumdb --all --full --analyze --username=NOME_DO_USUARIO
Adicione a execução do arquivo acima no agendador de tarefas do windows.