viernes, 27 de marzo de 2009

Roles de un Administrador de Base de Datos

Administrador de base de datos

El administrador de base de datos (DBA) es la persona responsable de los aspectos ambientales de una base de datos. En general esto incluye:

  • Recuperabilidad - Crear y probar Respaldos
  • Integridad - Verificar o ayudar a la verificación en la integridad de datos
  • Seguridad - Definir y/o implementar controles de acceso a los datos
  • Disponibilidad - Asegurarse del mayor tiempo de encendido
  • Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones
  • Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos.
  • El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un administrador de bases de datos, es a veces parte del trabajo. Esas funciones por lo general están asignadas a los analistas de bases de datos ó a los diseñadores de bases de datos.

Los deberes de un administrador de bases de datos dependen de la descripción del puesto, corporación y políticas de Tecnologías de Información (TI). Por lo general se incluye recuperación de desastres (respaldos y pruebas de respaldos), análisis de desempeño y optimización, y algo de asistencia en el diseño de la base de datos.

Disponibilidad.- Significa que los usuarios autorizados tengan acceso a los datos cuando lo necesiten para atender a las necesidades del negocio. De manera incremental los negocios han ido requiriendo que su información esté disponible todo el tiempo (7x24", o siete días a la semana, 24 horas del día). La industria de TI ha respondido a estas necesidades con redundancia de red y hardware para incrementar las capacidades administrativas en línea.

Recuperabilidad.- La recuperabilidad significa que, si se da algún error en los datos, hay un bug de programa ó de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño ó pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperación es una de las tareas más importantes de los DBA's.
La recuperabilidad, frecuentemente denominada "recuperación de desastres", tiene dos formas primarias. La primera son los respaldos y después las pruebas de recuperación.La recuperación de las bases de datos consisten en información y estampas de tiempo junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un momento y fecha en particular. Es posible hacer respaldos de la base de datos que no incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA debe sacar de línea la base de datos en caso de llevar a cabo una recuperación.
Las pruebas de recuperación consisten en la restauración de los datos, después se aplican las bitácoras a esos datos para restaurar la base de datos y llevarla a un estado consistente en un tiempo y momento determinados. Alternativamente se puede restaurar una base de datos que se encuentra fuera de línea sustituyendo con una copia de la base de datos. Si el DBA (o el administrador) intentan implementar un plan de recuperación de bases de datos sin pruebas de recuperación, no existe la certeza de que los respaldos sean del todo válidos.

Integridad.- La integridad de una base de datos significa que, la base de datos ó los programas que generaron su contenido, incorporen métodos que aseguren que el contenido de los datos del sistema no se rompan así como las reglas del negocio. Por ejemplo, un distribuidor puede tener una regla la cual permita que solo los clientes individuales puedan solicitar órdenes; a su vez cada orden identifique a uno y solo un proveedor. El servidor Oracle y otros DBMSs relacionales hacen cumplir este tipo de reglas del negocio con limitantes, las cuales pueden ser configuradas implícitamente a través de consultas. Para continuar con este ejemplo, en el proceso de inserción de una nueva orden a la base de datos, esta a su vez tendría que cerciorarse de que el cliente identificado existen en su tabla para que la orden pueda darse.

Seguridad.- Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de acuerdo a las políticas del negocio, así como, las decisiones de los encargados. Al igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de tablas. Estas tablas son las "llaves del reino" por lo cual se deben proteger de posibles intrusos.RendimientoEl rendimiento significa que la base de datos no cause tiempos de respuesta poco razonables. En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es solo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos. El rendimiento es una de las mayores motivaciones de los DBA para coordinarse con los especialistas de otras áreas del sistema fuera de las líneas burocráticas tradicionales.

Desarrollo/Soporte a pruebas.- Uno de los deberes menos respetados por el administrador de base de datos es el desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran como la responsabilidad más importante de un DBA. Las actividades de soporte incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos para las funciones de los programas.

Prevención de riesgos.-
Otra tarea del DBA es la de calendarizar mantenciones a las bases de datos (archivos lógicos) o cooperar en el mantenimiento de las máquinas al administrador del sistema. El DBA debe fortalecer sus esfuerzos en orden a eliminar problemas o situaciones potencialmente peligrosas.

Instalación de nuevos componentes del software.- Una de las tareas principales del DBA consiste en la instalación periódica de nuevas actualizaciones de software de Oracle, tanto en lo referente a programas de aplicaciones como a herramientas administrativas. También es recomendable que el propio DBA y otros usuarios de Oracle prueben la instalación y nuevas configuraciones antes de migrarlas a los ambientes de producción.
Interacción con el administrador del sistema.- En la mayoría de los casos los programas sólo pueden ser instalados o accedidos por el administrador del sistema. En este caso, el DBA debe trabajar siempre muy bien coordinado con él para garantizar que tanto la instalación y configuración de software como de hardware permita un adecuado funcionamiento del motor de base de datos y de las aplicaciones.

Monitorización.- El DBA debe monitorear continuamente el rendimiento del sistema y estar preparado para efectuar ajustes de sintonización de éste. En ciertas oportunidades esto involucra cambiar sólo algunos parámetros y otras veces reconstruir índices o reestructurar tablas.

Tareas adicionales:

Otras tareas de importancia que corresponden con frecuencia realizar a un DBA son:

  • Apoyar en el diseño y optimización de modelos de datos.
  • Analizar datos y efectuar recomendaciones concernientes a mejorar el rendimiento y la eficiencia en el manejo de aquellos datos que se encuentran almacenados.
  • Asistir a los desarrolladores con sus conocimientos de SQL y de construcción de procedimientos almacenados y triggers, entre otros.
  • Documentar y mantener un registro periódico de las mantenciones, actualizaciones de hardware y software, cambios en las aplicaciones y, en general, todos aquellos eventos relacionados con cambios en el entorno de utilización de una base de datos.
  • Apoyar en la definición de estándares de diseño y nomenclatura de objetos.

Bibliografia:

Arquitectura de Base de Datos Oracle



INTRODUCCIÓN

No podemos aspirar a que nuestras aplicaciones de BD funcionen bien si no conocemos la arquitectura de la BD. Por ello es indispensable conocer los factores y parámetros que influyen en el funcionamiento de nuestro SGBD para poder solucionar los problemas que se pueden plantear en cuanto nos salgamos de las aplicaciones estándares y básicas de BD, o en cuanto tengamos algún problema.

Antes de pasar a analizar la arquitectura de la BD es necesario conocer ciertos conceptos como son:

Instancias.- Una instancia de BD es un conjunto de procesos del servidor Oracle que tiene su propia área global de memoria y una base de datos asociada a ellos.

Base de datos (BD).- Una Base de Datos Oracle es un conjunto de datos almacenado y accesible según el formato de tablas relacionales. Una tabla relacional tiene un nombre y unas columnas. Los datos están almacenados en las filas. Las tablas pueden estar relacionadas con otras. Además una Base de Datos Oracle está almacenada físicamente en ficheros, y la correspondencia entre los ficheros y las tablas es posible gracias a las estructuras internas de la BD, que permiten que diferentes tipos de datos estén almacenados físicamente separados. Está división lógica se hace gracias a los espacios de tablas, tablespaces.

Espacios de tablas (tablespaces).- Un espacio de tablas es una división lógica de la BD. Cada BD tiene al menos uno (SYSTEM). Un espacio de tablas puede pertenecer sólo a una BD. Los espacios de tablas se utilizan para mantener juntos los datos de usuarios o de aplicaciones para facilitar su mantenimiento o mejorar las prestaciones del sistema. De esta manera, cuando se crea una tabla se debe indicar el espacio de tablas al que se destina. Por defecto se depositan en el espacio de tablas SYSTEM, que se crea por defecto. Este espacio de tablas es el que contiene el diccionario de datos, por lo que conviene reservarlo para el uso del servidor, y asignar las tablas de usuario a otro.


ARQUITECTURA DE ORACLE

La arquitectura ORACLE tiene tres componentes básicos que son:

  • Las estructuras para almacenar datos y el código ejecutable

  • Los procesos que corren el sistema de bases de datos y las tareas de cada usuario conectado a la base de datos.

  • Los archivos que sirven para el almacenamiento físico, en disco, de la información de la base de datos.
    A continuación se ilustra mediante un gráfico la arquitectura de ORACLE.



ESTRUCTURAS DE MEMORIA


  • Cuando se arranca la BD, Oracle reserva un área de memoria llamada System Global Area (SGA) y arranca una serie de procesos.

  • Una instancia es la combinación de la SGA y los procesos.

  • Estructuras básicas asociadas a una instancia:

    Área de código de programas:
    Porciones de memoria usadas para almacenar código que está siendo o puede ser ejecutado.
    El tamaño de esta área es fijo y depende del sistema operativo.
    Area global del programa:
    Cada vez que un proceso de usuario se conecta a la BD y se crea una sesión se le aloja un área global del programa.
    Contiene datos e información de control de dicho proceso.
    Area de ordenación:
    Cuando una consulta solicita una ordenación de un resultado, ORACLE utiliza una zona de memoria del proceso de usuario.
    El tamaño de este área puede crecer según las necesidades hasta un valor máximo (SORT_AREA_SIZE).
    Si la ordenación requiere más espacio se recurre a un proceso de ordenación parcial y mezcla de resultados.
    Area global del sistema:

    Búferes del bloque de datos (DBB):
    Es una porción del SGA que almacena los bloques de datos más recientemente usados. Pueden contener datos modificados todavía no escritos a disco.
    Aumenta la eficiencia del sistema ya que se requieren menos accesos a disco.
    Se organizan en dos listas: buferes sucios y LRU (menos usados recientemente).
    LRU: contiene búferes libres, búferes que están siendo accedidos y búferes que han sido modificados y no han sido trasladados a la de búferes sucios.
    Cuando un proceso necesita un bloque en el DBB, accede al bufer adecuado y lo traslada al extremo (MRU) de la lista.
    Si el bloque requerido no esta en el DBB, lee el bloque de disco y lo almacena en un búfer del DBB.-Busca un bufer libre.
    - Si en esta búsqueda encuentra buferes sucios los mueve a la lista correspondiente.
    - Si lo encuentra procede a leer los bloques en el bufer moviéndolo al final de la lista.
    - Si no encuentra huecos llama al proceso de escritura para que guarde varios búferes sucios a disco.
    - Excepción: el mecanismo de funcionamiento cambio cuando un proceso de usuario recorre una tabla entera: se ponen al final de la lista.
    El tamaño de DBB se especifica mediante el parámetro DB_BLOCK_BUFFERS expresado en bloques de la BD.
    Búfer del registro de rehacer:
    Bufer circular que mantiene información sobre los cambios realizados en la BD.
    Información necesario par reconstruir los cambios hechos a la BD por las instrucciones: insert, update, delete, create, alter o drop.
    Existe un proceso encargado de escribir esta información en el fichero de rehacer correspondiente.
    El tamaño de este bufer se especifica mediante el parámetro LOG_BUFFER.

    Fondo compartido:
    Es un área donde se encuentran construcciones tales como el área de SQL compartida y la cache del diccionario de datos.
    Cada sentencia SQL se representa por una parte privada y una compartida.
    - Área compartida: árbol de análisis y el plan de ejecución de la sentencia SQL.
    - Área privada contiene variables de enlace y búferes temporales.
    Información almacenada en la caché del diccionario de datos:
    - Nombre de todas las tablas y vistas de la BD.
    - Nombre y tipos de todas las columnas de las tablas de la BD.
    - Privilegios de todos los usuarios.
    Tamaño de este área: SHARED_POOL_SIZE.

LOS PROCESOS

Los procesos se dividen en dos categorías: procesos de usuario y procesos de Oracle.

  • Procesos de usuario son las aplicaciones en sí, que realizan peticiones a la BD.

  • Los procesos ORACLE se pueden dividir en 2 tipos:

    Procesos servidores: atienden las peticiones del usuario y se comunican con ORACLE a través de SGA.
    - Compilan y ejecutan las sentencias SQL.
    - Leen los bloques de datos desde el disco a los buferes.
    - Devuelve el resultado de las operaciones a la aplicación.

    Procesos background gestionan los recursos de la BD.
    - Escritor de la BD (DBWR).
    - Escritor de registros (LGWR).
    - Punto de control (CKPT).
    - Supervisor del sistema (SMON).
    - Supervisor del proceso (PMON).
    - Archivador (ARCH).
    - Recuperador (RECO).
    - Bloqueo (LCKn).
    - Despachador (Dnnn).

LOS ARCHIVOS

Los archivos que maneja ORACLE se clasifican en cuatro grupos como se observa en la siguiente figura:


Los Archivos de datos (DataFile).- estos archivos sirven para el almacenamiento físico de las tablas, índices o agrupamientos (clusters) y procedimientos. Estos Archivos, son los únicos que contienen los datos de los usuarios.


BIBLIOGRAFÍA: