Responsabilidades del DBA en tiempos 2.0

Hoy día existe un amplio consenso entre los gerentes de empresas y gerentes de las áreas de TI sobre la importancia que tiene la información y por ende, la importancia que tiene toda la infraestructura que permite mantener segura y disponible esa información para los diferentes agentes de la organización que la requieran. Esta información se encuentra en su mayor parte en plataformas de bases de datos que prestan variados servicios tales como seguridad, alta disponibilidad, manejo de concurrencia de usuarios y otras importantes prestaciones.

No obstante la claridad anterior que manifiestan los gerentes de las áreas de TI, no existe tanta claridad sobre las características, habilidades y conocimientos que debe tener el profesional que garantice el correcto manejo de estas bases de datos (DBA). El artículo que a continuación se desarrolla resume algunas ideas acerca de las viejas y nuevas responsabilidades del Administrador de Bases de Datos, denominadas DBA 1.0 y DBA 2.0 respectivamente.

Este artículo puede ser una buena guía para aquellos profesionales que se están introduciendo en el mundo de la administración de bases de datos, para gerentes de TI que deberán considerar las habilidades y competencias que tienen que tener los profesionales que se desempeñan en la administración de bases de datos, para los responsables que tienen que definir y actualizar los programas de contenidos de los cursos que se imparten en institutos y universidades y por último, también induce a los DBAs con más experiencia, sobre los cambios que están sucediendo en el entorno de su ámbito laboral y cuales son los nuevos desafíos que están enfrentando y/o deberán enfrentar estos profesionales en el futuro.

El ambiente y entorno de trabajo del DBA ha evolucionado desde fines de los 80 hasta la actualidad de una manera muy notable. EL entorno tecnológico actual que rodea a un profesional de las bases de datos es sofisticado y complejo. Las tecnologías de consolidación de servidores hacen necesario conocimientos de arquitectura y funcionamiento de software de virtualización. Las tecnologías de almacenamiento han evolucionado notablemente, siendo necesario que el DBA conozca los principios básicos de las diferentes configuraciones de arreglos de discos, y su impacto en las distintas estructuras que forman una base de datos. Los conocimientos de networking son muy necesarios para el desempeño de sus funciones actuales. Frecuentemente el DBA debe interactuar con profesionales del área de redes para definir características de VLANs, configuración de NIC, switches, firewalls, routers, etc. Las bases de datos se encuentran ubicadas en sofisticadas arquitecturas de red que deben ser comprendidas para resolución de problemas (troubleshooting) y optimizar el rendimiento y la seguridad. El conocimiento de sistemas operativos actuales es básico. Sin conocimientos de sistemas operativos no se puede medir por ejemplo, cómo la base de datos está consumiendo los recursos y por lo tanto, se está ciego al momento de tener que investigar el origen de un problema de rendimiento. Un conocimiento de cómo funcionan los servidores de aplicaciones y particularmente cómo se conectan a la base de datos ayudará al DBA a entregar luz en relación a problemas que pueden tener un origen en las configuraciones de las máquinas clientes, datasources, drivers XA, JDBC, ADO .NET, ODBC, etc. La configuración de clusters activo/activo o activo/pasivo requiere de conocimientos bien definidos en las áreas de storage, redes, software de clusters (Oracle RAC, Cluster File System, Clusters Windows y Linux, software de clusters de otros proveedores). A los DBAs que tienen estos últimos conocimientos se les cataloga como DBA 2.0 y representan a los profesionales que reemplazarán al viejo DBA 1.0 dedicado solo a instalar, crear bases de datos, y realizar tareas de mantenimiento básicas.

Conocimientos y Responsabilidades del DBA 2.0

* Conocer el negocio, la misión y objetivos para alinear sus responsabilidades en forma adecuada con estos.

* Instalar el software de base de datos

* Instalar parches o service pack para la base de datos

* Instalar software de clusterización para ambientes de alta disponibilidad (new)

* Configurar ambientes de clusters (new)

* Configurar Servidores NTP para sincronización de relojes de nodos de un cluster (new)

* Conocer de métodos de configuración de Alta Disponibilidad para redundancia a nivel de las NIC (bonding, failover) (new)

* Configurar ambientes de contingencia para recuperación ante desastres (DR). Probar failover y switchover (new)

* Crear Bases de Datos

* Crear y mantener usuarios

* Administrar la distribución compartida de recursos entre aplicaciones

* Estructurar y disponer del almacenamiento para la base de datos a nivel físico y nivel lógico. A nivel físico especificar características de las LUNs del storage, implementar con ASM (Oracle) grupos de discos para cobijar los archivos de la base de datos, diseñar mecanismos de failover en el caso de replicación de storage (new)

* Controlar los objetos lógicos que se crean y actualizan en la base datos (tablas, indices, etc), llevar controles de cambio.

* Definir y controlar el uso de estándares que faciliten la administración, velen por la seguridad, mantención y rendimiento de la BD

* Revisar y dar Visto Bueno para pasar a producción los nuevos diseños de base de datos que liberen los desarrolladores.

* Llevar Bitácora de actividades realizadas en cada base de datos.

* Documentar cada base de datos

* Evaluar nuevos releases de software de la base de datos, recomendar el uso de nuevas características para la comunidad de usuarios

* Proveer soporte técnico para los desarrolladores, apoyar en la resolución de problemas

* Verificar y controlar el estado y uso de reglas de integridad de la BD

* Asistir con el análisis de impacto de cualquier cambio que pueda proyectarse a la base de datos

* Analizar rendimiento de la base de datos

* Realizar afinamiento (tuning) de las bases de datos

* Realizar afinamiento (tuning) de aplicaciones (análisis de planes de ejecución, optimizadores, SQL, PL/SQL, TSQL, etc), usando herramientas de tuning más sofisticadas y que requieren de más conocimientos (new)

* Realizar afinamiento (tuning) de red

* Actualizar en forma periódica las estadísticas de la BD para alimentar los modelos de optimización por COSTO.

* Realizar reorganizaciones de la base de datos, para mejorar rendimiento y facilitar administración

* Implementar diferentes políticas de seguridad de la base de datos (perfiles, roles, privilegios, encriptación selectiva, certificados, etc)

* Activar auditorias especificas de actividades en la base de datos de acuerdo a requerimientos.

* Administrar políticas de seguridad y auditoría de firewall de bases de datos (ejemplo www.guardium.com, GreenSQL) (new)

* Implementar una política de respaldo y recuperación para la base de datos.

* Realizar respaldos lógicos y físicos

* Probar en forma periódica la política de respaldo y recuperación de la base de datos.

* Implementar archiving de la información que ya no es necesaria para el cumplimiento de objetivos del negocio (new).

* Levantar indicadores y métricas para conocer el comportamiento de la base de datos en el tiempo (new).

* Realizar Planificación de la Capacidad para el recambio de infraestructura (CPU, RAM, STORAGE, NETWORKING)

* Configurar servidores de aplicaciones para conectarse a la base de datos con máximo rendimiento y alta disponibilidad (new).

La pregunta es: ¿están preparados nuestros institutos y universidades para generar este último tipo de profesional?. Siendo profesor de un prestigioso instituto profesional, me atrevo a decir que estamos generando profesionales que tienen el potencial para llegar a transformarse en DBA 2.0 en un plazo de unos tres a cinco años de experiencia profesional intensa. La práctica es la madre de todas las ciencias. La mejor escuela para completar las capacidades de este tipo de profesionales son las consultoras y empresas de servicios de TI, que por su naturaleza deben enfrentar realidades variadas de sus clientes y por lo tanto catalizan el desarrollo de las habilidades necesarias para un DBA 2.0.

Es cierto, si exigimos todos estos conocimientos a la hora de buscar un profesional, es posible que nos quedemos sin candidatos. Es responsabilidad de cada organización adaptar el perfil de conocimientos y responsabilidad a las necesidades específicas que existan en ella. Un buen candidato debería tener un buen número de las siguientes habilidades y competencias.

1) Buen conocimiento de Sistemas Operativos

2) Poseer conocimientos de Fundamentos de Bases de Datos

Modelamiento de Bases de Datos (E-R, Relacional)

Conocimientos de arquitectura de bases de datos (buffer pool, transaction log, algoritmos de administración de memoria)

Propiedades ACID de las transacciones

Conocimiento de SQL y fundamentos de cálculo y álgebra relacional

Conocimiento de la estructura y funcionamiento de los diferentes tipos de índices

Conocimientos de los diferentes métodos de accesos para resolución de consultas

Conocimientos del funcionamiento del optimizador de consultas

3) Fundamentos de nuevas tecnologías incorporadas a las Bases de Datos

Conocimientos de Principios de Orientación al Objeto

Conocimientos de XML

Encriptación

3) Capacidad para controlar desempeño a nivel de la base de datos como a nivel del sistema operativo

4) Ser capaz de proveer una visión estratégica para el desarrollo de las bases de datos de la organización

5) Conocimiento profundo de los distintos escenarios de fallas y desastre y los mecanismos de respaldo y restauración.

6) Buena habilidad para el manejo de herramientas y utilitarios de la base de datos

7) Buen conocimiento de administración de la seguridad

8) Conocimiento de como la base de datos adquiere y administra los recursos.

9) Conocimientos de las aplicaciones que se ejecutan en la base de datos

10) Conocimiento del negocio en que está inserto.

11) Conocimientos de principios de afinamiento de Bases de Datos

12) Conocimiento de principios de Administración de proyectos

Habilidades blandas y otras habilidades

No quiero terminar el artículo sin hacer mención a otras habilidades que debe poseer un profesional DBA que quiera tener éxito en su desempeño. Si bien un DBA es un profesional con una cantidad de conocimientos muy sofisticado, este conocimiento no garantiza completamente su éxito profesional en una organización, ni la capacidad para ascender en ella. Existen otras habilidades complementarias que son fundamentales. Algunas de estas habilidades complementarias son las denominadas habilidades blandas, que en definitiva son aquellas capacidades que le permiten al individuo manejar en forma exitosa su relación con otras personas. Entre estas capacidades están su capacidad de desenvolvimiento social, habilidad en el uso del lenguaje, camaradería, trabajo en equipo. Un DBA que quiera tener éxito en su organización debería tener varias de las siguientes habilidades y capacidades:

1) Profesional Ético

2) Capacidad para trabajo en equipo.

3) Ordenado

4) Capacidad de investigar y aprender cosas nuevas.

5) Proactivo

6) Fuerte capacidad para comunicación oral y escrita

7) Liderazgo.

8) Poseer espíritu de servicio.

9) Poseer juicio para evaluar situaciones complejas

10) Capacidad para identificar y evaluar riesgos

11) Capacidad para trabajar bajo presión

12) Capacidad para pedir ayuda

13) Capacidad para compartir conocimiento

14) Capacidad para decir NO en situaciones justificadas

Interesante upgrade relacionado a este articulo se encuentra en el siguiente link

http://oraclenz.wordpress.com/2013/06/13/once-again-how-to-improve-your-oracle-career/