...
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.
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”.
Figura 2.
FULL: Esta opção exigirá mais espaço em disco, é mais demorada e é recomendada somente para casos onde é necessário diminuir o volume utilizadoem dedisco espaçoutilizado 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”.
...
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.
...
3 - Agendador de Tarefas do Windows
...
Para isso, vá em Painel de Controle e abra o Agendador de Tarefas e crie uma nova Tarefa.
Figura 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 | ||
---|---|---|
| ||
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; |
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
...