miércoles, 1 de abril de 2009

Arquitectura de una BD en 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:
a) Estructuras en Memoria:
  • SGA (System Global Area/Área Global de Sistema.)
    Está situada al inicio de los 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 instruccionesSQL y PL/SQL ejecutadas. Posee dos estructuras internas:
      • Caché de instrucciones (Library cache).- Almacena las últimas instrucciones 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,etc) Cada vez que una instrucción utiliza un nombre de la base de datos (tabla, índice,etc) 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.

  • PGA(Program Global Area/Zona global de los programas)
    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.
    • Estos procesos pueden ser de estos tipos:
      • Proceso de usuario.- Lanzado por el usuario para pedir interacción con la base de datos.
      • Proceso de servidor.- Hacen de enlace entre los procesos de usuarios y el servidor Oracle. 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).
b) 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 de datos 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.






No hay comentarios:

Publicar un comentario