O que devo perguntar em uma entrevista ao MySQL DBA?

9

Sou desenvolvedor de software e estou ajudando minha equipe a contratar um DBA MySQL. Os principais desafios que estamos enfrentando são:

  • Consultas e desempenho mais lentos devido ao Hibernate.

  • Gerenciamento de banco de dados (backups, ajustes, patches, segurança).

  • Escalabilidade devido ao aumento de dados de novas fontes de dados e acúmulo de dados mais antigos.

  • Planejamos iniciar a mineração de dados e o data warehousing no futuro. Não sei como, mas essa é a direção.

Geralmente, temos casos de programação em que pedimos aos desenvolvedores que construam algo para uma entrevista, mas é um pouco difícil fazer uma entrevista de DBA da mesma maneira.

Você pode dar sugestões sobre como a entrevista deve ser conduzida?

geoaxia
fonte
11
Parece que isso provavelmente seria melhor do Programmers.Stackexchange, mas eu sou novo para esta comunidade, portanto, não tome minha palavra para ela
DForck42
Alguém por favor proteja esta pergunta. Essas são ótimas respostas !!!
RolandoMySQLDBA 28/09
Uau! você conseguiu encontrar um DBA MySQL? Bom trabalho!
Jonathan11
@RolandoMySQLDBA marcá-lo na próxima vez;)
jcolebrand

Respostas:

11

Não é uma lista completa, mas uma lista aproximada de coisas que eu tentaria cobrir. Também depende se eles serão o primeiro DBA "verdadeiro" ou em uma equipe de DBA. Se o DBA também é responsável pelas máquinas ou apenas pelo banco de dados. etc.

  • qual configuração de RAID deve ser usada
  • estratégias de backup para bancos de dados.
  • Coisas específicas do MySQL, como diferenças entre o MyISAM e o InnoDB
  • estratégias de backup e recuperação
  • Deixe-os fazer algumas consultas SQL e alguma otimização de consulta (uso de explicação etc., mesmo ao usar o hibernate. Às vezes, é bom ignorar o hibernate para obter desempenho)
  • eu mencionei estratégias de backup
  • Para escalabilidade, um DBA deve saber sobre diferentes modos de replicação (RBR, SBR, replicação em modo misto, manutenção de replicação, como observação de atraso na replicação e manutenção de binlog)
  • Ajuste do InnoDB
  • Que tipo de arquivo está sendo gravado pelo DB (por exemplo, arquivos ibdata e log) e como eles podem ser organizados (por exemplo, um arquivo ibdata por tabela, mova-os em diferentes partições, compactação do InnoDB)
  • Discuta as ferramentas de monitoramento. O que você está usando, eles têm experiência com essa ferramenta ou com uma ferramenta semelhante?
  • Eu também procuraria em ferramentas de sistema como iostat / memstat / vmstat / o que o seu sistema operacional fornecer. Dê a eles um sistema com alguma carga e permita que eles encontrem a causa
  • E talvez discuta questões no backup do MySQL e, especialmente, restaure ;-)

Tenho certeza que outras pessoas aqui podem estender esta lista

johannes
fonte
Olá Johannes;) Gosto do foco de backup / restauração - realmente é isso que importa. Gostaria que alguém fizesse uma comparação MyISAM / InnoDB com a qual concordo.
Morgan Tocker
Ótima resposta para problemas do MySQL e não do MySQL. +1 !!!
RolandoMySQLDBA
Polegar para cima! Você pode adicionar algo sobre estratégias de backup + restauração a essa lista! ;-)
Marian
6

Escrevi sobre isso há algum tempo , depois de ter contribuído para o processo de entrevista na Percona.

Penso que, para avaliar alguém, você deve tentar fazê-lo fazer o que faria na atividade cotidiana regular. Perguntas aleatórias como "O que é um tipo de dados serial no MySQL?" ou questões de inteligência como "por que os buracos dos homens são redondos?" não consiga isso.

Você também quer ter a certeza de dar a todos o mesmo teste. Se você tiver uma entrevista aberta apenas para conversas, as pessoas mais confiantes e (um pouco manipuladoras) se destacarão, pois elas podem contornar sutilmente suas perguntas e transformá-las em perguntas que elas são boas em responder. Você nem sempre percebe quando isso está acontecendo, mas geralmente contém algo como "quando eu comecei como DBA, tínhamos 2 MB de RAM e usamos fitas .. blá blá blá": P

Dito isto, aqui está minha lista padrão de perguntas:

  • Descreva o processo pelo qual a replicação do MySQL funciona?
  • O que o componente D do ACID significa em termos práticos?
  • O que muda innodb_flush_method = O_DIRECT? (Cuidado com este: o entendimento comum disso geralmente está errado .)
  • Digamos que eu escreva uma consulta como "INSERT IN my_table (a, b) VALUES (1,2)". Descreva-me com o máximo de detalhes possível o que acontece dentro do MySQL.
Morgan Tocker
fonte
+1 para um pouco sobre perguntas aleatórias do tipo trivial que não testam as habilidades corretamente.
Derek Downey
3
Se você vai testá-los sobre o que eles farão no dia-a-dia, será um livro aberto? Quero dizer, nas minhas aulas de graduação, alguns dos professores insistiram em você memorizar tudo, enquanto outros eram realistas - no mundo real, você tem manuais de referência para consultar; a parte importante era saber onde encontrar a resposta, às vezes até mais do que pensar que você sabia a resposta e estar errado. (e em alguns casos, alterar as coisas, então verificar a documentação para a versão de software específico é importante)
Joe
+1 para livro aberto. Se você precisar fazer um livro fechado, isso pode indicar que suas perguntas são triviais.
Morgan Tocker 28/09/11
Leia seu artigo e sua resposta. Uau !!! Ótimas perguntas. Eu adoraria voar na parede e ver o que acontece quando algumas perguntas são feitas como estas. Eu deveria usar essas perguntas ao entrevistar candidatos. Muito obrigado !!! +1 !!!
RolandoMySQLDBA
6

Eu sugiro olhar também para algumas listas já estabelecidas sobre as entrevistas do DBA:

Todos eles são ótimos gravadores do SQL Server. Sei que algumas das perguntas podem ser orientadas ao SQL Server, mas a maioria não é e pode ser usada em uma entrevista geral do DBA.

Marian
fonte
11
Você poderia adicionar sua pergunta favorita de cada lista aqui? Isso daria a esta resposta muito mais valor.
Nick Chammas
Minha principal motivação também foi ver como esses tópicos deveriam ser testados (por exemplo, perguntar sobre replicação ou entregar um sistema de teste para que eles o configurassem). Estou estudando minuciosamente as listas e acho que as perguntas gerais no nível do DBA não me considerariam um bom candidato específico ao MySQL.
geoaxis 28/09/11
11
@ Nick: obrigado pela nota, atualizou a resposta. Geoaxis - um bom DBA de qualquer sabor será capaz de capturar os meandros do MySQL. Por exemplo: ao contratar um desenvolvedor Java, você faz apenas perguntas técnicas estritas da biblioteca Java ou também questões gerais de programação?
Marian
5

Embora eu concorde que as muitas perguntas aparentemente aleatórias da entrevista (por exemplo, a tampa do bueiro) não sejam realmente úteis ... (exceto, talvez para um designer industrial e apenas para esse caso).

Depois de passar pelo aspecto trivial de muitos deles, eles pretendem ser coisas para as quais você não sabe a resposta e, portanto, terá que descrever como iria encontrar a resposta. Ou não. Por exemplo:

  • invente algo plausível e / ou tente enganar seu caminho. (pode ser útil para vendas e marketing? em qualquer outro campo, não contrate.)
  • estimar com base em outras informações
  • explique como você obteria as informações necessárias para resolver o problema

... etc

Quando eu estava no comando do processo de contratação no passado, tento fazer uma entrevista por telefone de 5 a 15 minutos completamente não programada (basta ligar para eles, como se eles pudessem lhe dar alguns minutos ... nem todos puderam, pois alguns estavam no trabalho em que planejavam sair) ... apenas para avaliar o quanto acho que estão falando besteira em seu currículo.

Por exemplo, quando estávamos contratando um programador PL / SQL sênior, eu perguntava a eles quais eram as partes de um bloco PL / SQL. Hoje em dia, surge a primeira coisa no Google ... esse não era o caso em 2003. A maioria das pessoas que entrevistamos pode ter usado o Oracle antes, elas podem ter escrito SQL para Oracle ... mas se você não pode me dar uma pista de que você sabe como é um bloco PL / SQL; não está pronto para um trabalho sênior de programador PL / SQL.

...

E, dito isso, minha pergunta para qualquer entrevista pessoal é:

Guerra nas Estrelas ou Jornada nas Estrelas?

Em parte, você pode ver como eles lidam com uma situação em que não há melhor resposta, se são diplomáticos em sua resposta ou se pensam fora da caixa (por exemplo, Dr. Who ou Firefly são respostas válidas). Onde trabalho atualmente (um laboratório de física espacial), dizendo que você nunca viu nenhum deles pode falhar, a menos que seja estrangeiro. Dizer que você também não gosta e explicar por que com um bom motivo seria um passe. Explorar muito sobre qualquer um deles ainda pode ser um fracasso (já que ninguém quer trabalhar com essa pessoa)

Joe
fonte
É importante ter perguntas pessoais fora do comum para ver se elas se encaixam perfeitamente na equipe. +1
Derek Downey
@DTest: mas você precisa ter cuidado com perguntas pessoais ... existem muitas classes de perguntas que você não tem permissão para fazer, pelo menos não nos EUA: eeoc.gov/facts/qanda.html
Joe