Estou postando um artigo que fiz faz bastante tempo. Algumas descrições estão vagas e outras ligeiramente errada, mas no geral, acredito que ajuda bastante.

Convido o pessoal que entende do assunto a melhorarmos o artigo.


---------------------------------------------------------------------------

Manutenção Periódica da Base de Dados no HM2


A ferramenta de trabalho de um taxista é o seu carro. Se ele não fizer uma manutenção regular, pode ficar sem o carro durante um período grande para conserto e isso significa perda de dinheiro. Não é apenas um peça quebrada que poderá ocasionar a perda de dinheiro, mas, por exemplo, ficar de olho nos filtros e nas velas é importante para não haver aumento no consumo de combustível e, consequentemente, perda de dinheiro.

Não é diferente conosco. A nossa ferramenta de trabalho é o nosso computador e a nossa base de dados.

Conforme o título auto-explicativo, aqui neste post eu vou mostrar como fazer a manutenção da base de dados do HM2. São dois itens: Backup e Otimização.

1) Backup

Acredito que todos sejam familiarizados com o termo backup, que nada mais é do que você ter um reposição para algo importante. Por exemplo, um estepe pode ser chamado de backup.

No nosso caso, o backup de dados é o ato de salvar os dados que compõem a nossa base de informações (Hands, Notes, Configurações de HUD, etc), pois caso tenhamos problemas com o software, teremos como recuperar as informações perdidas. A ação para realizar o backup no HM2 é bem simples:

Home > Database > Backup

As opções que teremos lá, são:

a) Pasta onde será salvo um arquivo com a extensão .pghembk (abreviação de PostgreSQL Holden Manager Backup).

b) O que será salvo.

c) Não salvar a base de dados (skip database)


Observações sobre os itens b e c: no meu ponto de vista, somente bases de dados com ordem de grandeza de terabytes precisam alterar algumas configurações no momento do backup, conforme a necessidade. Se não for o seu caso, manteremos sempre a nossa configuração padrão - todos os itens selecionados em 'configuration files' e o item 'skipe database' NÃO selecionado.


Somente salvar os dados não lhe garante que tudo ficará bem se um incidente acontecer. Se a base ficar salva no seu disco rígido e este queimar, o backup também vai pro beleléu. E se você não fizer o backup com uma periodicidade correta (falarei sobre isto no final no post), você apenas terá dados antigos quando precisar do backup. Então vamos lá:

d) Se possível, salve o backup em uma mídia externa, como um pendrive ou um DVD. Outra opção é salvar o backup 'na nuvem', isto é, na internet. Um excelente serviço para isto chama-se Dropbox.

e) Quando escolher a pasta em irá salvar, não mude o nome do arquivo. Ali já está um bom nome. Com o que é e a data. Não precisa mudar isto.

f) Mantenha, no mínimo, os dois últimos arquivos de backup salvos no seu disco e mídia externa. Nem sempre o arquivo está perfeito e pode não funcionar quando efetuar a restauração.


2) Otimização


Imagine uma imensa biblioteca, onde todos os livros estão organizados conforme o seu autor, seu tema, etc... Imagine que a bibliotecária é uma velha gente boa, mas já está fazendo hora extra na terra. Uma vez ou outra ela coloca um livro numa seção similar a original, porém diferente. Ela sempre vai achar o maldito livro, mas irá demorar um tempo a mais do que se ela tivesse colocado no lugar certo. O dono do lugar come gosta da velha e sempre contrata alguém pra ajudar a velha a reorganizar tudo. E depois ela bagunça novamente e o dono contrata um outro ajudante.


Acontece o mesmo por aqui. A biblioteca é a base de dados e a bibliotecária é a sua mãe a maldita tecnologia que nunca funciona como um relógio suíço. Com o passar o tempo, os dados não ficam tão bem organizados e o software fica lento, pois a base de dados é gigantesca e nem sempre ele sabe aonde está o dado que precisa e é esse o motivo da lentidão. Para contornar este problema, temos a otimização. O caminho é:


Home > Database > Maintenance


Temos 3 opções - Quick, Standard e Full.

a) Quick - faz uma limpeza na base e elimina o lixo: isto torna a tabela ligeiramente menor o que aumenta a performance;

b) Standard - igual o Quick, mas adiciona um reindex das tabelas, por exemplo, é como se a nossa bibliotecária fizesse uma atualização no seu livro que registra aonde fica cada seção;

c) Full - igual o Standard, mas adiciona um analyze, que é uma tarefa muito demorada, pois checa toda a organização da base de dados e a reordena para melhorar a performance global da aplicação.

Para explicar quando fazer cada uma delas, entrarei em um outro item, que também agregará o backup:


3) Periodicidade


Aqui o ideal é sempre seguir a recomendação do fornecedor, mas não encontrei nada no site do Holden Manager e nem no site da Postgre. Podemos continuar procurando e, se encontrar, atualizar o post.

Isso não significa que não podemos tirar algumas suposições e aplicar alguns conceitos em nossa manutenção. Vamos a eles:


a) A performance é inversamente proporcional ao tamanho da base de dados. Quanto maior a base de dados, menor será a performance. Logicamente, o tamanho da base de dados está diretamente relacionada com a quantidade de mãos que temos. Podemos concluir que a periodicidade da nossa manutenção deve ser relacionada com a quantidade de mãos que temos;


b) O backup sempre deverá ser efetuado ANTES da otimização Standard e/ou Full. A otimização é um processo que gera risco de perda de dados e/ou paralisia total do software. Um risco pequeno, é verdade, mas ainda sim não queremos ser pegos de surpresa;


c) É muito mais fácil definir uma periodicidade temporal ao invés de uma periodicidade quantitativa, então vamos facilitar e realizar as atividades de forma mensal. Minha recomendação é:


Dia 1 - Otimização Quick (sem backup);
Dia 15 - Backup e Otimização Standard;
Dia 30 - Otimização Quick (sem backup);
Dia 45 - Backup e Otimização Full;
Dia 60 - Otimização Quick (sem backup);
Dia 75 - Backup e Otimização Standard;
Dia 100 - Otimização Quick (sem backup);
Dia 115 - Backup e Otimização Full.



Espero que isto ajude vocês a aumentarem a performance e a confiabilidade do Holdem Manager.


Abraços.
AVISO: TÓPICO ANTIGO
Atenção: Este é um tópico criado há mais de 90 dias. Caso não tenha respostas recentes, tenha certeza de que sua resposta é conveniente e útil o suficiente para reativar esta discussão, do contrário você poderá ser advertido/suspenso.