viernes, 23 de marzo de 2012

Responsabilidades de un DBA


En el entorno laboral de la República Dominicana nos encontramos con la situación de que muy pocas personas tienen claro que hace un DBA, inclusive entre los mismos profesionales de la tecnología esto no esta muy claro lo que lleva a mucha ambigüedad de funciones y confusión en nuestras organizaciones.

En estas líneas intentare explicar de una manera sencilla y clara cuales son las responsabilidades y deberes básicos de este profesional de la tecnología de la información alrededor del cual giran un sinnúmero de ideas erróneas y confusión.

Debido a la naturaleza de la posición la cual es transversal a todas las áreas de TI de una organización, este profesional interactúa y da apoyo a todo el equipo de tecnología, debe de tener siempre una visión integral de toda la organizacion y sus operaciones, ya que su trabajo no es tan solo técnico sino también hasta cierto punto administrativo, ya su principal función consiste en resguardar y mantener la integridad del activo más valioso de la organización después del capital humano, la información.

Como DBA debemos interactuar con los equipos de infraestructura de redes, administración de sistemas, desarrollo de software, así como también con la alta gerencia de la organización e inclusive tener contacto directo con los usuarios, esta diversidad de clientes es lo que hace que como DBA debemos de tener conocimientos y habilidades muy variadas y generales como atención al cliente, supervisión de personal, relaciones humanas y profundos conocimientos en áreas como infraestructura de redes, desarrollo de software y administración de sistemas.

Aquí les dejo una lista de las responsabilidades laborales que mínimamente tiene un DBA en una organización:

  • Proceso de adquisición de hardware (servidores y almacenamiento).
  • Instalación y configuración del sistema operativo.
  • Aplicación de parches y actualizaciones de seguridad del SO y del RDBMS.
  • Evaluación de las características del RDBMS, software y productos relacionados.
  • Levantamiento de requerimientos de datos.
  • Diseño e implementación de las bases de datos.
  • Establecer y mantener las políticas de copias de respaldo y las políticas y procedimientos de restauración.
  • Diseñar, implementar y mantener un plan de recobramiento en caso de desastre.
  • Implementar y mantener la seguridad de las bases de datos y de las instancias de SQL Server tanto a nivel de autenticación como autorización.
  • Afinamiento y monitoreo del desempeño de las bases de datos y las aplicaciones.
  • Crear y mantener la documentación de las configuraciones de las instancias.
  • Crear y Mantener la documentación de las bases datos.
  • Mantener un control de cambio de los objetos tanto del servidor como de las bases de datos.
  • Diseñar y mantener los estándares para el desarrollo de código, así como nomenclaturas para el nombrado de los objetos en las bases de datos.
  • Monitorear el crecimiento de las bases de datos y planear el crecimiento.
  • Estar involucrado en el proceso de resolución de problemas y dar consultoría tanto a los desarrolladores como a los administradores de la infraestructura en general.


miércoles, 14 de marzo de 2012

Lista de verificación de tareas diarias de un administrador de base de datos

Como les prometí en mi entrada anterior aquí les dejo con un ejemplo de una lista de verificación de tareas diarias, la cual puede ser adaptada a sus necesidades especificas, esta es la lista que yo uso diariamente como lineamiento base para dar seguimiento a mis instancias de Microsoft SQL Server, espero les sea de utilidad.


1. Verificar procesos de copias de respaldo
Verificar que las procesos creación de copias de respaldo para validar correcta ejecución, no es necesario hacer una prueba de restauración diaria, pero es recomendable realizarlas por lo menos una vez a la semana.
2. Verificar regularmente el estado de ejecución de procesos en lote [batch]

Verificar el estado de finalización de los procesos nocturnos y/o desatendidos y de encontrar alguna     anomalía iniciar el proceso de resolución del problema.
3. Revisar bitácora de Eventos del Sistema Operativo
Revisar la bitácora de eventos para verificar si se ha reportado algún error u  advertencia relacionada al sistema operativo, a los servicios de base de datos o el hardware del equipo.
4. Revisar regularmente los trabajos del SQL Server Agent
Revisar si alguno de los trabajos calendarizados fallo e iniciar el proceso de resolución del problema.
5. Revisar regularmente la bitácora de desempeño
Revisar las métricas de desempeño y verificar contra la línea base de desempeño para saber si esta ha sido excedida y verificar si han existido picos de desempeño en el día e identificar la razón por la cual se ha sobrepasado el nivel óptimo de desempeño.
6. Revisar el almacenamiento
Validar que existe suficiente espacio en disco para soportar las bases de datos, las copias de respaldo y los procesos a corto plazo.
7. Tomar acciones correctivas generales
Iniciar el proceso de resolución de problemas o acciones correctivas para solucionar los inconvenientes o casos encontrados en alguno de los pasos anteriores.
8. Documentación
Documentar los procesos o acciones correctivas realizadas para la resolución de los problemas en la bitácora de cambios del servidor, instancia o servicio afectado, así como tambien cualquier cambio a configuracion de los servicios, infraestructura o estructura de alguna base de datos.
9. Mejoras y Optimizaciones
Buscar oportunidades de mejoras u optimización en los ambientes de producción y desarrollo basadas en la revisión y análisis de los casos encontrados.
10. Capacitación
Tómese su tiempo para aprender algo nuevo como DBA para avanzar en su desarrollo profesional.

Mi obsesión con las listas de verificación [Checklists]


Debido a la compleja naturaleza de las responsabilidad de un Administrador de Base de Datos, el trabajo se presenta en dos formas fundamentales primero las rutinas diarias, semanales, mensuales e inclusive anuales de mantenimiento y tareas especificas que se presentan según se desarrolla el trabajo o los proyectos que emerjan en la organización donde estemos laborando. Dado el alto número de detalles y la especificidad de nuestras tareas la forma más conveniente de organizar nuestro trabajo es a través de listas de verificación, ya que estas nos proporcionan una manera organizada, confiable y muy sencilla de dar seguimiento a procesos complejos y medir el progreso de nuestro avance en cualquier momento, con simplemente echar una ojeada a nuestra lista. Todo lo mencionado anteriormente convierte entonces a las listas de verificación en una de las herramientas más poderosas para la organización del trabajo diario y tareas comunes de todo DBA o DEV.

Muchas veces cuando vamos a realizar algún proceso como instalar una nueva instancia de SQL Server o realizar una prueba de restauración de alguna base de datos no estamos seguros de cuales son los pasos a seguir, o el orden óptimo de estos pasos, también sentimos la incertidumbre de sí omitimos algún paso importante mientras realizábamos dicha tarea, pero podemos ahorrarnos todo esto con la simple creación de una lista de verificación, otro beneficio de utilizar estas listas es que no tenemos que empezar de cero la web esta llena de ellas y existen para casi todas las tareas regulares de un administrador de bases de datos o cualquier otro profesional de la tecnología de información, estas pueden tomarse como modelo para la creación de nuestro propio repositorio de listas personales, con el tiempo podemos llegar a desarrollar un alto grado de organización y desempeño en nuestras tareas, ya que estas listas también sirven como un modo de documentación de nuestras responsabilidades y nos ayudan a medir nuestro trabajo, saber que estamos haciendo con nuestro tiempo en el trabajo constituye una forma de medir y justificar nuestro trabajo ante nuestros superiores. Todo lo anteriormente dicho convierte en mi opinión a las listas de verificación en un arma indispensable en nuestro arsenal de herramientas de trabajo

Pronto estaré publicando la primera de muchas listas de verificación de tareas comunes para los administradores y desarrolladores de bases de datos, así como muchos otros recursos de utilidad.