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/
Hola, estoy interesado en tomar clases de DBA, aqui por el sur del DF, sabes de algun dba con experiencia en oracle que imparta clases.
De antemano muchas gracias por tu ayuda
saludos es interesante el tema felicidades. una pregunta en que pais necesitan mayor DBA, gracias antemano
Hmm, piensa en paises desarrollados (USA, Europa en general)
Tambien en paises con altas tasas de crecimiento como Perú, van a tener mayor demanda de estos servicios si quieren cumplir sus expectativas de desarrollo sustentable.
Saludos y que te vaya muy bien
Felipe
ESTIMADOS: ME PARECE INTERESANTE LO QUE PLANTEAN, EN ESO ANDO BUSCADO CURSO Aplicaciones de Oracle (ERP), Unix… en la administración de bases de datos Oracle v 9i o 10g,- ATTE,
Buenas una consulta que puntos tengo que tener en cuenta para elaborar un plan de mantenimiento de BD oracle 10g??? habran alguno package que faciliten dicha tarea??
Felipe, quería felicitarlo por el texto publicado.
Es muy interesante, claro y conciso lo que me llevo a darme cuenta que requiero actualizarme en mis conocimientos, si quiero llegar a la versión DBA 2.0, luego de su lectura me sentí en ……. DBA 1.5 :-).
Sin embargo a llegado en el momento preciso, porque es nuestra misión administrar las BD de una manera optima, y muchas veces nos toca lidiar con clientes difíciles y que insisten en acortar los tiempos que se visualizan para una tarea, en tu texto que ha sido tan claro en dejas ver puntos que hay que considerar para las evaluaciones y que en mi caso particular muchas veces los he dado por asumidos.
Nuevamente reciba usted mis felicitaciones y lo invito a seguir instruyendonos por mi parte tambien puedo colaborar con granitos de arena.
Good Job. ¡!!
Estimado, muy bueno el articulo, mucho mas considerando mi posibilidad de ingresar a esta area. Tengo la oportunidad de recivir un training para DBA DB2 o uno en Java, ambos temas me atraen bastante y estoy muy indecizo para decirme entre ellos. Estoy considerando el porvenir en el futuro profesional, especializaciones, fuentes de trabajo, bienestar económico, etc. A todo esto en Chile.
¿Algun consejo?
Muy buen articulo.
Saludos.
Siga por el camino de java y Oracle. Todos los productos Oracle, vendrán con un framework java incorporado, por lo cual va a ser muy necesario el dominio de esta tecnología para realizar cosas más interesantes.
Excelente artículo, uno de los puntos importantísimos es que un DBA debe primero saber programar en Base de Dato sin necesidad y uso de Wizard que lo que hacen es disminuir la capacidad de adquirir destreza.
Saber medir la necesidad del Performance y como implementar el Tuning y vencer el paradigma que a mayor necesidad se necesita más fierro, para llegar a incrementar el fierro se debería justificar si existe un gran crecimiento transaccional.
El incremento del fierro muchas veces solapa las deficiencias y vicios de programacion.
Mira donde te vengo a pillar Felipe :D, acota el articulo Felipe, y ábrelo para que se entienda mejor.
da ejemplos de una buen diseño transaccional ( para por ejemplo un sistema de ticket de buses con 2 mil clientes ). Como se trabajan con motores ( transforma todo ticket en insert solamente ) uso de queue ( tablas tipo pipe en postgresql ) o MQ series para serializar recursos, etc.
Dead lock y sus derivados.
Lo mas importante uso y mal uso de ASM, ACFS OCFS etc. performance de RAC y explicar que RAC es mas lento que un Oracle Single, los conceptos de async vs sync ( RAC vs Single ). etc.
Hola, Yo soy SAP Basis mas enfocado a Seguridad GRC, pero me he interesado bastante por abordar el mundo de DB2 y ofrecer mas a las empresas y a mi mismo, en la emprsa en la que estoy no hay DB2 pero existe la posible migracion, y si no, creo que me srive bastante para seguirme vendiendo por fuera. el curso es caro pero creo que vale la pena.