VISITAS - buen trip

domingo, 20 de mayo de 2012

Arquitectura de una base de datos Oracle


Arquitectura de una base de datos Oracle




La instancia de la base de datos es uno de los dos elementos de cualquier base de datos Oracle. Sirve para gestionar los datos de la base de datos y proporcionar servicio a los usuarios que acceden a la misma.

Está compuesta de:
  • Estructuras en memoria. 
  • Procesos en segundo plano (background).
Estructuras en memoria - SGA

Es la abreviatura de System Global Area, Área Global de Sistema. Está situada al inicio delos datos de la instancia y contiene los datos e información de control de la instancia.
Está formada por las siguientes estructuras: 
  • Shared pool, fondo común compartido. Almacena las últimas instrucciones SQL y  PL/SQL ejecutadas. Posee dos estructuras internas: 
    • Caché de instrucciones (Library cache). Almacena las últimasinstrucciones SQL y PL/SQL ejecutadas. Administra los datos mediante algoritmo LRU. 
    • Caché del diccionario de datos. Almacena las últimas definiciones de la base de datos utilizadas (tablas, índices, privilegios, usuarios,...) Cada vez que una instrucción utiliza un nombre de la base de datos (tabla, índice,...) se comprueba en el diccionario de datos y se almacena en este caché. De este modo la siguiente vez no hace falta acceder al diccionario de datos real.
  • Caché buffer de la base de datos. Almacena los últimos bloques de datos
  • accedidos por los usuarios.
  • Buffer de archivo rehacer. Almacena los últimos cambios realizados a los
  • bloques de datos de la base de datos.
  • Large pool. Opcional. Se utiliza como memoria de sesión y para realizar
  • operaciones de backup.
  • Java pool. Opcional. Se utiliza como caché de los comandos Java.
  • Otras estructuras
PGA

Zona global de los programas (Program Global Area). En ella se almacenan los datos
correspondientes a un proceso (sólo un proceso puede utilizar esta área). Incluye:
  • Áreas de ordenación. Para acelerar las tareas de ordenación de datos.
  • Información de sesión. Usuario, privilegios,...
  • Estado del cursor. Tareas SQL actualmente en ejecución
  • Espacio de pila. Variables y otros datos
En Oracle los procesos pueden ser de estos tipos:
  • Proceso de usuario. Lanzado por el usuario para pedir interacción con la base dedatos.
  • Proceso de servidor. Hacen de enlace entre los procesos de usuarios y el servidorOracle. Se utilizan como manejadores de los procesos de usuario. Los comandos de usuario se envían a estos procesos que se encargan de solicitar peticiones a la base de datos mediante el interfaz de programas de Oracle (OPI, Oracle Program Interface).
  • Procesos en segundo plano (background). Cada instancia de Oracle arranca una serie de procesos background. Los procesos obligatorios son
    • DBWR (DataBase WRiter). Proceso encargado de escribir en los ficheros de datos los buffers más antiguos de la memoria, para que la base de datos vaya almacenando los cambios.
    • LGWR (LoG WRiter). Escribe los datos a los ficheros rehacer (redo) desde la caché de archivos rehacer.
    • CKPT. Actualiza todas las cabeceras de los ficheros de datos para que aparezca la nueva disposición de datos. Esto ocurre cuando se genera un punto de comprobación.
    • SMON (System MONitor). Permite recuperar la instancia de la base dedatos en caso de caída fatal (cuando el sistema falla por ejemplo). Cuando se reinicia de nuevo la instancia de la base de datos,
    • PMON (Process MONitor). Es el encargado de gestionar adecuadamente los procesos que fallan. Ante caídas de procesos, PMON se encarga de restaurar los datos adecuadamente.
    • SQL *Net Listener. Es el encargado de encaminar por una red solicitudes de un cliente a un servidor de base de datos Oracle. Este proceso escuchador (listener) está tanto en el cliente como en el servidor. Puede encaminar solicitudes que se dirigen a varias instancias.
    • Otros

No hay comentarios:

Publicar un comentario