quinta-feira, 30 de setembro de 2010

Boas práticas em banco de dados...

Vou descrever abaixo algumas boas práticas que podemos atuar dentro de uma administração em banco de dados.

- Manutenção de banco de dados inclui um conjunto de tarefas pró-ativas que precisam ser realizadas periodicamente para garantir um desempenho ótimo das bases de dados e manter a alta disponibilidade.

- Banco de dados e arquivos de log devem ser manualmente pré-dimensionados para o tamanho final quando eles são criados. Só use aumento automático(autogrowth) para cobrir eventos inesperados, e não para gerir o crescimento do arquivo.

- Como ocorre com bancos de dados de produção, o tempdb deve ser pré-dimensionadas para o seu tamanho normal, de modo que quando SQL Server é reiniciado, o tempdb é instantaneamente dimensionados corretamente.

- Não ative a opção de banco de dados "Auto Shrink", nem criar automaticamente um JOB para diminuir qualquer do banco de dados ou arquivos de log.

- O banco de dados msdb pode crescer ao longo do tempo, e os dados mais antigos precisam ser excluídos usando ao SP's: sp_delete_backuphistory, sp_purge_jobhistory, e sp_maintplan_delete_log.

- Reconstruir (REBUILD) ou reorganizar (REORGANIZE) índices para eliminar a fragmentação. Só desfragmentar índices que forem necessários. Índices e estatísticas devem ser mantidos. Se você usar REBUILD para desfragmentar índices, esta estatística é automaticamente atualizado. Se você usar REORGANIZE para desfragmentar índices, as estatísticas devem ser atualizados separadamente.

- Todos os bancos devem ter a opção CHECKSUM ligado.

- Executar o comando DBCC CHECKDB para controle de possiveis inconsistências na base de dados.

- Realize backups completos diários do banco de dados e logs de transações por hora (ou conforme necessário para atender metas de alta disponibilidade).

- Ao agendar um JOB de manutenção no banco de dados, programa-los para que eles não se sobrepõem, e que eles sejam executados durante o tempo de menor trafego no banco.

- Confira todos os processos, como: cluster, replicação, o service broker, log shipping, espelhamento de banco de dados, para verificar se estão funcionando corretamente.

- Monitorar o espaço em disco para garantir que seus servidores SQL não vão ficar sem espaço em disco. Para melhor desempenho, todos os discos devem ter 15% ou mais de espaço livre.

- Durante o dia, monitorar periodicamente o desempenho do SQL Server usando o Monitor de desempenho, Profiler / SQL Trace, ou monitoramento do desempenho de outros ferramentas.

- Manter um registro de todas as alterações feitas nos servidores, incluindo a documentação de qualquer espécie e se necessário identificar e corrigir.

- Regularmente restaurar backups para um servidor de teste, a fim de verificar se é possível restaurá-los. Você não precisa de restaurar todos os backups de todos os dias, mas fazê-lo muitas vezes para garantir que você está confiante de que boas cópias de segurança estejam disponivéis.

- Tire algum tempo para aprender algo novo como um DBA para promover seu desenvolvimento profissional.

- Criar uma "receita" de como reconstruir cada instância em caso de uma reinstalação.

Essas são somente algumas dicas do que atuar durante o nosso dia a dia. Poderia ficar citando muitos mais itens, mas acredito que esses são os principais.

Bom trabalho!!!

Até mais,

Marco Pinheiro.

Nenhum comentário:

Postar um comentário