Administração minimalista de banco de dados
-
09-06-2019 - |
Pergunta
Eu sou um desenvolvedor.Um arquiteto em dias bons.De alguma forma, também sou o DBA da minha pequena empresa.Minha formação é boa nas artes de DB, mas nunca fui um DBA completo.Minha pergunta é: o que devo fazer para garantir um ambiente de banco de dados confiável e razoavelmente funcional com o mínimo de esforço real possível?
Tenho certeza de que preciso ter certeza de que os backups estão sendo realizados e isso está sendo feito.Essa é fácil.O que mais devo fazer de forma consistente?
Solução
Quem mais está envolvido no banco de dados?Você é a única pessoa que faz alterações no esquema (criando novos objetos, liberando novos procedimentos armazenados, concedendo permissões a novos usuários)?
- Certifique-se de que o número de usuários que fazem algo que possa afetar o desempenho seja reduzido ao mais próximo possível de zero, de preferência incluindo você.
- Certifique-se de testar seus backups - de preferência, execute uma caixa DEV que recria o ambiente de produção periodicamente, 1.uma caixa DEV é uma boa ideia, 2.um backup só é útil se você puder restaurar a partir dele.
- Crie grupos para os vários aplicativos que se conectam ao seu banco de dados, para que quando um novo usuário aparecer você não adivinhe quais permissões ele precisa, apenas adicione-os ao grupo, enquanto isso permita os objetos do banco de dados apenas para os grupos que precisam deles
- Use índices, chaves primárias, chaves estrangeiras, restrições, estatísticas e quaisquer outras ferramentas que seu banco de dados suporte.Normalizar.
- Otimize o código mais comum em sua caixa - procedimentos armazenados/código de acesso a dados incorretos irão matá-lo.
Outras dicas
Eu estive lá.Eu costumava ter um trabalho onde escrevia código, fazia todo o trabalho de infraestrutura, usava o chapéu de DBA, dava suporte ao usuário, consertava o grampeador elétrico quando ele travava e tudo o mais que surgisse que pudesse estar remotamente associado à TI.Foi ótimo!Aprendi um pouco sobre tudo.
Quanto ao cuidado e alimentação da sua caixa de banco de dados, recomendo que você faça o seguinte:
Execute backups completos regulares.
Execute backups regulares do log de transações.
Monitore suas tarefas de backup.Existem vários utilitários no mercado que são relativamente baratos e que podem automatizar isso para você.Em uma pequena loja, muitas vezes você está ocupado demais para se lembrar de verificá -las diariamente.
Teste seus backups.Faça um exercício.Restaure uma cópia antiga dos seus bancos de dados mais importantes.Prove a si mesmo que seus backups estão funcionando e que você sabe como restaurá-los corretamente.Você ficaria surpreso com quantas pessoas só pensam nisso durante seu primeiro desastre real.
Armazene backups fora do local.Com todos os provedores de backup online disponíveis hoje, não há muitas desculpas para não ter um backup externo.
Limite o acesso às suas caixas.
Se a sua plataforma de banco de dados suportar, use apenas segurança baseada em função.Resista à tentação de ter uma segurança única e específica para o usuário.
A ideia básica aqui é que se você restringir quem tem acesso à caixa, você terá menos problemas.Em segundo lugar, se seus backups forem sólidos, surgirão algumas coisas com as quais você não conseguirá lidar de maneira eficaz.
Eu sugeriria:
- Um script para restaurar rapidamente o backup mais recente de um banco de dados, caso ele seja corrompido
- Que tipo de backup você está fazendo?Backups completos todos os dias ou incrementais a cada hora, etc?
- Alguns scripts para criar novos usuários e conceder-lhes acesso básico.
No entanto, a sugestão número um é limitar ao máximo o poder que outros usuários têm, o que reduzirá bastante a chance de as coisas ficarem muito bagunçadas.Servidores que têm todos como sa tendem a ficar confusos mais rapidamente do que servidores que estão bloqueados.