¿Qué debo preguntar en una entrevista MySQL DBA?

9

Soy un desarrollador de software y estoy ayudando a mi equipo a contratar un DBA MySQL. Los principales desafíos que enfrentamos son:

  • Consultas y rendimiento más lentos debido a Hibernate.

  • Gestión de bases de datos (copias de seguridad, ajustes, parches, seguridad).

  • Escalabilidad debido al aumento de datos de nuevas fuentes de datos y la acumulación de datos más antiguos.

  • Planeamos comenzar la minería de datos y el almacenamiento de datos en el futuro. No estoy seguro de cómo, pero esa es la dirección.

Por lo general, tenemos casos de programación en los que pedimos a los desarrolladores que creen algo para una entrevista, pero es un poco difícil hacer una entrevista de DBA de la misma manera.

¿Puede dar sugerencias sobre cómo se debe realizar la entrevista?

geoaxis
fuente
1
Parece que esto probablemente sería mejor para los programadores
StackExchange
Alguien por favor proteja esta pregunta. Estas son excelentes respuestas !!!
RolandoMySQLDBA
¡Guauu! te las arreglaste para encontrar un DBA MySQL? ¡Buen trabajo!
Jonathan
@RolandoMySQLDBA lo marcará la próxima vez;)
jcolebrand

Respuestas:

11

No es una lista completa, sino una lista aproximada de cosas que trataría de cubrir. También depende de si serán el primer DBA "verdadero" o en un equipo DBA. Si el DBA también es responsable de las máquinas o solo de la base de datos. etc.

  • qué configuración RAID se debe usar
  • estrategias de respaldo para bases de datos.
  • Cosas específicas de MySQL como diferencias entre MyISAM e InnoDB
  • estrategias de respaldo y recuperación
  • Permítales hacer algunas consultas SQL y una optimización de consultas (uso de explicaciones, etc., incluso cuando se usa hibernación. A veces es bueno omitir la hibernación para ganar rendimiento)
  • ¿mencioné estrategias de respaldo
  • Para la escalabilidad, un DBA debe conocer diferentes modos de replicación (RBR, SBR, replicación en modo mixto, mantenimiento de replicación, como observar el retraso de replicación y el mantenimiento de binlog)
  • Ajuste InnoDB
  • Qué tipo de archivos está escribiendo la base de datos (por ejemplo, ibdata y archivos de registro) y cómo se pueden organizar (por ejemplo, un archivo ibdata por tabla, moverlos en diferentes particiones, compresión InnoDB)
  • Discutir las herramientas de monitoreo. ¿Qué estás usando? ¿Tienen experiencia con esa herramienta o una similar?
  • También buscaría en herramientas del sistema como iostat / memstat / vmstat / lo que sea que proporcione su sistema operativo. Dales un sistema con algo de carga y déjalos encontrar la causa.
  • Y tal vez debatir problemas en la copia de seguridad de MySQL y especialmente restaurar ;-)

Estoy seguro de que otros aquí pueden ampliar esta lista

johannes
fuente
Hola, Johannes;) Me gusta el enfoque de copia de seguridad / restauración, realmente eso es lo que importa. Sin embargo, me encantaría ver a alguien dar una comparación MyISAM / InnoDB con la que estoy de acuerdo.
Morgan Tocker
Gran respuesta para problemas de MySQL y no MySQL. +1 !!!
RolandoMySQLDBA
¡Pulgar arriba! ¡Podría agregar algo sobre las estrategias de copia de seguridad + restauración a esa lista! ;-)
Marian
6

Escribí sobre esto hace un tiempo , después de que contribuí al proceso de entrevista en Percona.

Creo que para evaluar a alguien, debe intentar hacer que haga lo que haría en la actividad diaria habitual. Preguntas aleatorias como "¿Qué es un tipo de datos en serie en MySQL?" o preguntas de inteligencia como "¿por qué los agujeros del hombre son redondos?" No lo consigas.

También querrás asegurarte de darles a todos la misma prueba. Si tiene una entrevista de conversación abierta solo, las personas más seguras y (ligeramente manipuladoras) se destacarán, ya que pueden esquivar sutilmente sus preguntas y cambiarlas por otras que sean buenas para responder. No siempre se dará cuenta de cuándo sucede esto, pero a menudo contiene algo así como "cuando comencé como DBA teníamos 2 MB de RAM y usaba cintas ... bla, bla, bla": P

Dicho esto, aquí está mi lista estándar de preguntas:

  • ¿Describe el proceso por el cual funciona la replicación MySQL?
  • ¿Qué significa el componente D de ACID en términos prácticos?
  • ¿Qué cambia innodb_flush_method = O_DIRECT? (Tenga cuidado con esto: la comprensión común de esto a menudo es incorrecta ).
  • Digamos que escribo una consulta como "INSERTAR EN my_table (a, b) VALUES (1,2)". Descríbame con el mayor detalle posible lo que sucede dentro de MySQL.
Morgan Tocker
fuente
+1 por un poco sobre preguntas aleatorias tipo trivia que no prueban las habilidades correctamente.
Derek Downey
3
Si vas a probarlos en lo que van a hacer día a día, ¿será "libro abierto"? Quiero decir, en mis clases de pregrado, algunos de los profesores insistieron en que memorizaras todo, mientras que otros eran realistas: en el mundo real, tienes manuales de referencia para consultar; Lo importante era saber dónde encontrar la respuesta, a veces incluso más que pensar que la conoces y equivocarte. (y en algunos casos, las cosas cambian, por lo que es importante verificar los documentos para la versión de software específica)
Joe
+1 para libro abierto. Si debe hacer un libro cerrado, puede indicar que sus preguntas son triviales.
Morgan Tocker
Lee tu artículo y tu respuesta. Whoa !!! Grandes preguntas Me encantaría volar en la pared y ver lo que sucede cuando se hacen preguntas como estas. Debería usar estas preguntas cuando entreviste a los candidatos. Gracias a lo grande !!! +1 !!!
RolandoMySQLDBA
6

Sugeriría mirar también algunas listas ya establecidas con respecto a las entrevistas de DBA:

Todos son excelentes escritores de SQL Server. Sé que algunas de las preguntas pueden estar orientadas a SQL Server, pero la mayoría no lo son y pueden usarse en una entrevista general de DBA.

Mariana
fuente
1
¿Podrías agregar tu pregunta favorita de cada lista aquí? Eso le daría a esta respuesta mucho más valor.
Nick Chammas
Mi principal motivación también fue ver cómo deberían probarse estos temas (es decir, preguntar sobre la replicación o entregar un sistema de prueba para que lo configuren). Estoy revisando las listas y supongo que las preguntas generales de nivel DBA no me encontrarían un buen candidato específico de MySQL.
geoaxis
1
@ Nick: gracias por la nota, actualicé la respuesta. Geoaxis: un buen DBA de cualquier sabor será capaz de atrapar las complejidades de MySQL. Por ejemplo: al contratar a un desarrollador de Java, ¿hace solo preguntas técnicas estrictas de la biblioteca de Java o también preguntas generales de programación?
Marian
5

Aunque estoy de acuerdo en que las muchas preguntas de entrevistas aparentemente aleatorias (por ejemplo, la tapa de registro) no son realmente tan útiles ... (excepto, tal vez para un diseñador industrial, y solo para ese caso).

Una vez que superas el aspecto de trivia de muchos de ellos, están destinados a ser cosas para las que no sabes la respuesta, por lo que tendrás que describir cómo harías para encontrar la respuesta. O no. P.ej:

  • inventa algo plausible y / o trata de engañarte. (¿podría ser útil para ventas y marketing? en cualquier otro campo, no contrate).
  • estimarlo en base a otra información
  • explica cómo obtendrías la información necesaria para resolver el problema

... etc.

Cuando estuve a cargo del proceso de contratación en el pasado, trato de hacer una entrevista telefónica completamente no programada de 5 a 15 minutos (solo llámalos, ya que ellos podrían darte un par de minutos ... no todos pudieron, ya que algunos estaban en el trabajo que estaban planeando abandonar) ... solo para evaluar cuánto creo que están mintiendo en su currículum.

Por ejemplo, cuando estábamos contratando a un programador senior de PL / SQL, les preguntaba cuáles eran las partes de un bloque PL / SQL. En estos días, surge lo primero en Google ... ese no fue el caso en 2003. La mayoría de las personas que entrevistamos podrían haber usado Oracle antes, podrían haber escrito SQL para Oracle ... pero si usted no puedo darme una pista de que sabes cómo se ve un bloque PL / SQL, no estás preparado para un trabajo de programador senior de PL / SQL.

...

Y, dicho esto, mi pregunta para cualquier entrevista en persona es:

Star Wars o Star Trek?

En parte, puede ver cómo manejan una situación en la que no hay una mejor respuesta, si son diplomáticos en su respuesta o si piensan fuera de la caja (por ejemplo, Dr. Who o Firefly son respuestas válidas). Donde trabajo actualmente (un laboratorio de física espacial), diciendo que nunca has visto ninguno de ellos podría ser un fracaso a menos que seas un extranjero. Sin embargo, decir que no te gusta y explicar por qué con una buena razón sería un pase. Geeking sobre cualquiera de los dos podría ser un fracaso (ya que nadie quiere trabajar con esa persona)

Joe
fuente
Es importante tener preguntas personales extravagantes para ver si encajan bien en el equipo. +1
Derek Downey
@DTest: pero debes tener cuidado con las preguntas personales ... hay muchas clases de preguntas que no puedes hacer, al menos no en los EE. UU .: eeoc.gov/facts/qanda.html
Joe