Devo admitir que a pergunta é bastante ampla, então tentarei reduzi-la um pouco. Em nossa empresa, somos 3-4 desenvolvedores e temos algumas instalações baseadas em SQL Server em execução nos sites de nossos clientes (tamanhos de banco de dados de até 100 GB, até 100 usuários simultâneos, aplicativos de intranet). Nenhum de nós tem uma boa experiência em executar/manter/administrar (qualquer) banco de dados. Os clientes nem tanto. Está funcionando bem até agora, mas não posso dizer com certeza se é porque estamos fazendo tudo certo ou se simplesmente não atingimos áreas/situações nas quais não somos proficientes.
Portanto, estou procurando as coisas essenciais que você precisa saber ao executar um banco de dados do ponto de vista de um DBA . Você conhece os fatos concretos e sabe o que mais importa no seu trabalho diário.
Em quais assuntos devo obter conhecimento mais profundo, do que devo ter ouvido falar e do que posso me importar até enfrentá-lo pela primeira vez?
Estou ciente da questão Engenheiros de Software e DBAs , mas não é bem o que eu estava procurando. Também existem muitos livros por aí, mas gostaria de ouvir de quem tem experiência prática.
As duas coisas com as quais lido todos os dias.
Recuperação de desastres.
Ajuste de desempenho. (Tanto para consultas individuais quanto para o próprio dbms.)
Seu plano de recuperação de desastres precisa ser
Estou usando script no sentido de algo que um ator seguiria, não algo escrito em Python. Deve dizer a todos que precisam estar envolvidos exatamente o que fazer. (E muitas vezes, exatamente o que dizer também.)
O ajuste de desempenho para consultas inclui a compreensão de chaves, índices e normalização. (Muitas vezes, os problemas de "ajuste" são, na verdade, problemas estruturais.)
Estou inclinado a concordar com @Catcall, a recuperação do banco de dados deve estar no topo da lista. As implicações das opções de backup e recuperação são geralmente as menos compreendidas fora de uma equipe de DBA e as mais prováveis de resultar em desastre.
Em seguida, de uma perspectiva agnóstica de banco de dados, está uma compreensão do que um servidor de banco de dados foi criado para fazer; fornecer Atomicidade, Consistência, Isolamento e Durabilidade para suas transações e dados. Comumente incompreendido, frequentemente a causa de problemas de desempenho e a principal fonte de inconsistência de dados.
Para a plataforma escolhida, conheça os detalhes internos de como a conformidade ACID é implementada. Procure tópicos como o que o log de transações faz, o que é registro de gravação antecipada , níveis de isolamento e armazenamento interno . Compreender os principais aspectos internos do banco de dados torna outros aspectos do trabalho do DBA, como ajuste de desempenho e gerenciamento de recursos, por exemplo, muito mais fáceis de entender.