lunes, 23 de agosto de 2010

¿Qué es un diccionario de datos? - ORACLE

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.

Ejemplo:
  • Peso = * peso del paciente al ingresar al hospital *
  • unidad: kilo, rango:2-150 * Altura = * unidad: cm, rango: 100-200 * Sexo = * valores : [F|M] *

El diccionario de datos es una parte fundamental de la base de datos Oracle. Está formado por tablas, vistas y packages a los que se puede acceder para obtener información. Las tablas se crean automáticamente durante la instalación y permiten saber:
  • Estructura lógica y física de la DB
  • Los usuarios de la DB
  • Restricciones de integridad sobre las tablas de la DB
  • Espacio asociado a cada objeto en la DB y la cantidad que se está utilizando por los distintos objetos creados por los usuarios de la DB
El usuario SYS es el dueño del DD y tiene todos los permisos sobre cualquier objeto de la DB (también los de cualquier usuario). Componentes de la DD:

  • Tablas base: Una serie de tablas a las que el servidor de datos accede cada vez que se procesa una instrucción DDL de SQL o en algunos comandos DML.
  • Vistas estáticas: Se crean durante la instalación del RDBMS y decodifican y resumen la información contenida en las tablas base. Durante la creación de estas vistas se generan sinónimos públicos para proveer el acceso a los usuarios del RDBMS. Estas vistas deben ser utilizadas para las labores de administración rutinarias que necesiten información específica sobre configuración y estado de la DB. Tienen el nombre de estáticas porque no mantienen información relacionada con las sesiones. Se dividen en 3 categorías:

    • Vistas con prefijo USER: Puede utilizarlas cualquier usuario de la DB y se refieren a objetos poseídos por dicho usuario.
      Ej: Usuario dave ejecuta:
      SELECT * FROM USER_TABLES;
      Se desplegará toda la información de las tablas cuyo propietario sea dave.
    • Vistas con prefijo ALL: Evidente, las podrá usar cualquier usuario y además añaden la columna OWNER al resto de información. Con estas vistas se puede tener acceso a la información de los objetos que el usuario es dueño además de los objetos públicos y los que el usuario tiene acceso (por pertenecer a un grupo de seguridad o poseer ciertos privilegios).
    • Vistas con prefijo DBA: Dan información sobre todos los objetos de la DB. Usualmente también tienen la columna OWNER. Sólo las puede utilizar el administrador o usuarios con privilegio SELECT ANY TABLE o pertenezca a un rol que incluya el privilegio.
  • Vistas dinámicas (o performance views): Incluyen información sobre las condiciones actuales de operación del RDBMS. La mayor parte son creadas durante la instalación y algunas se crean específicamente para monitorear cierta actividad. Todas se identifican por el prefijo V$.
    EJ: La vista dinámica V$_SESSION incluye información sobre las sesiones actuales y la vista V$SYSSTAT provee información estadística sobre el RDBMS.

¿Qué es un archivo de registro? - ORACLE

  • Oracle conserva registros de todas las transacciones realizadas en la base de datos. Estas transacciones se registran en archivos denominados archivos de registro. Estos archivos se utilizan para recuperar transacciones de la base de datos en el orden adecuado, en caso de que se produzca un fallo en la base de datos. También permiten que Oracle coordine la forma en que se escriben los datos en disco. Cuando se produce una transacción en la base de datos, ésta se introduce en los buffers del registro de reconstrucción, mientras que los bloques de datos afectados por la transacción no se escriben de manera inmediata en el disco. Todas las bases de datos Oracle tienen tres o más archivos de registro de reconstrucción en línea. Oracle escribe en ellos de manera cíclica: después de llenar el primer archivo de registro, escriben en el segundo, hasta llenarlo. Cuando se han llenando todos los archivos de registro, vuelve al primero y empieza a sobrescribir su contenido. Si la base de datos se está ejecutando en modo ARCHIVELOG, hará una copia de los archivos de registro antes de sobrescribirlos. Estos archivos de registro guardados (si el modo ARCHIVELOG está activado) pueden utilizarse para restaurar una parte o toda la Base de Datos en un momento de tiempo determinado. Debido a que estos registros de reconstrucción son fundamentales para el funcionamiento de la Base de Datos, Oracle permite duplicarlos en espejo y conviene que las diferentes copias se hagan en diferentes unidades de disco físicas.
  • De manera predeterminada, los mensajes de registro se escriben en un archivo de texto .log en el equipo cliente al que se le ha asignado el mismo nombre que al perfil. Por ejemplo, el archivo de registro del perfil default recibe el nombre de default.log.
    La ubicación predeterminada del archivo de registro depende de la plataforma de instalación, como se indica a continuación:

    • Plataformas Microsoft Windows XP - C:\Documents and Settings\username\Application Data\OVDC\profilename.log
    • Plataformas Microsoft Windows Vista y Microsoft Windows 7 - C:\Users\username\AppData\Roaming\OVDC\profilename.log
    • Plataformas Mac OS X - $HOME/.OVDC/profilename.log
Se puede usar la opción de comando --logfile para cambiar el nombre y la ubicación del archivo de registro.


¿Qué es un archivo de control? - ORACLE

La arquitectura física general de una base de datos se mantiene por medio de los archivos de control, en los que se almacena la información de contrrol sobre todos los archivos de la base dee datos. Se utilizan para conservar la consistencia interna y servir de guía en las operaciones de recuperación.

Un Archivo de Control es un archivo binario pequeño que forma parte de una base de datos oracle. El archivo de control se utiliza para hacer un seguimiento del estado de la abse de datos y la estructura fisica.

Como los archivos de control son fundamentales para la base de datos, se guardan varias copias en linea. Estos archivos suelen almacenarse en discos separados para minimizar las consecuencias perjudiciales ded un posible fallo del disco. La base de datos creará y mantendrá los archivos de control especificados durante la creación de la base de datos.

Cada Base de datos Oracle debe tener al menos un archivo de control, sin embargo se recomienda crear mas de uno. Cada copia de un archivo de control debe ser almacenado en una unidad de disco diferente multiplexada para pdoer hacer el registro en linea.
Se utilizan apra minimizar el riesgo de que todos los archivos de control sean borrados o estend dañados.

El Archivo de Control contiene informacion como:
  • Nombre de la BD
  • Marca de la hora de creacion de la BD
  • Nombres y ubicaciones de archivos de datos
  • Los nombres y ubicaciones de los Redo Log
  • El actual numero de secuencia de registro
  • Informacion de Checkpoint
  • Recientes copias de seguridad RMAN adoptadas

lunes, 16 de agosto de 2010

¿Qué es un PGA de oracle?

Área Global de Program, PGA
  • Es la memoria privada de cada proceso servidor. En esta memoria cada proceso almacena información que sólo es necesaria para su propio funcionamiento como por ejemplo sus variables globales, el estado actual de cada cursor (SQL) que se ejecuta... etc.


 La PGA se compone de:
  • Área SQL privada: cada SQL que se ejecuta necesita de este espacio para poder llevar el control de las operaciones propias de la sentencia. Se asigna cuando se abre el cursor y se libera completamente cuando se cierra. Esta parte de memoria se subdivide en dos:
    1. Área persistente: perdura durante toda la vida del cursor. Guarda las bind variables además de otras cosas.
    2. Área en tiempo de ejecución: se libera cuando finaliza la ejecución de la sentencia SQL (aunque no se haya cerrado el cursor ). Constituyen las áreas de trabajo (working areas) que se explican más adelante. El número máximo de cursores, y por tanto, el número máximo de áreas SQL privadas, que un usuario puede tener abiertos al mismo tiempo se controla con el parámetro OPEN_CURSORS. También hay que tener en cuenta que esta área SQL privada se almacena en la PGA si la Instancia está configurada como servidores dedicados (dedicated servers). En caso de servidors compartidos (shared servers) se almacena en la SGA.Memoria de las sesiones: guarda información relativa a la sesión como el login, variables de sesión... etc. En servidores compartidos (shared servers) este área pasa a ser pública ya que diferentes usuarios comparten los mismos procesos servidores.

¿Qué es un SGA de oracle?

Área Global del Sistema, SGA 
  • Sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerida.
 La SGA se divide en varias partes, 2 de ellas muy importantes:
  • Database Buffer Cache: Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS del fichero init.ora.
    Como el tamaño del buffer suele ser pequeño para almacenar todos los bloques de datos leidos, su gestión se hace mediante el algoritmo LRU.
  • Buffer Redo Log: Los registros Redo describen los cámbios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un caché de la SGA llamado redo log buffer. El servidor escribe periódicamente los registros redo log en los ficheros redo log.
    El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.
Cuenta con 4 componentes mas opcionales:
  • Shared pool
  • Java pool
  • Large pool
  • Stream pool
 


¿Cuáles son los roles de un DBA?

El administrador de base de datos (DBA) es la persona responsable de los aspectos ambientales de una base de datos. En general esto incluye lo siguiente:
  • Recuperabilidad - Crear y probar respaldos
  • Integridad - Verificar o ayudar a la verificación en la integridad de datos
  • Seguridad - Definir 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.
Deberes:
  1. Garantizar la seguridad del sistema: El DBA debe siempre monitorear y administrar la seguridad del sistema. Esto involucra la incorporación y eliminación de usuarios, administración de espacios de disco (cuotas), auditorias y una revisión periódica para detectar probables problemas de seguridad.
  2. 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.
  3. 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.
  4. 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.
  5. Respaldos: Debido a que la tarea más importante del DBA es proteger la integridad de los datos, se deberá desarrollar una estrategia efectiva de respaldos y recuperación de datos para mantener la estabilidad de toda la información guardada. Las frecuencias de estos respaldos deberán decidirse dependiendo de la cantidad de procesos que alteran los datos a través del tiempo.
Tareas adicionales:
  • 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