Arquitectura de Oracle

Índice

1. Arquitectura

  • Oracle es un sistema complejo
  • Para hacerlo más seguro, sus tareas se distribuyen entre muchos procesos
    • Si un proceso falla, los demás pueden intentar seguir trabajando

sga-procesos-usuario-sistema.png

1.1. Algunos procesos

PMON (Process MONitor) Monitor de procesos, se encarga controlar los otros procesos en background y de recuperarlos cuando uno de ellos falla
SMON (System MONitor process) Recupera transacciones. Realiza tareas de limpieza: recuperar segmentos temporales, combinar extensiones contiguas y disponibles,…
DBWn (Database Writer Process) Escribe el contenido de los buffers en los datafiles. n puede ser 0,1,…,9,a,…,j
LGWR (Log Writer Process) Gestión del buffer de redo, escribiendo su contenido en los archivos log.
CKPT (ChecKPoinT Process) Actualiza los datafiles y el fichero de control cuando se establece un punto de control (checkpoint).
RECO (RECOverer Process) Necesario ante fallos en transacciones distribuidas.

Más información en https://docs.oracle.com/cd/B19306_01/server.102/b14220/process.htm

1.2. SGA y PGA

  • PGA: Program Global Area
    • Es la zona de memoria dedicada a un proceso
    • Global: si admite más de una conexión, se comparte entre conexiones
  • SGA: System Global Area
    • Memoria compartida entre todos los procesos de Oracle

pga-sga-muchos-procesos.png Fuente: Oracle

1.3. Procesos de usuario y procesos de sistema

  • Los procesos de usuario no se conectan directamente a la SGA
  • Oracle crea procesos intermedios para aislarlos

procesos-usuario-sistema.png

2. Arranque y parada

  • Oracle tiene varios estados
    • Shutdown: Todo parado
    • Nomount: Memoria compartida reservada
    • Mount: Fichero de control abierto
    • Open: Ficheros de datos abiertos. Los clientes pueden conectarse.

arranque-parada-oracle.svg

2.1. ¿Por qué tantos modos?

  • Shutdown y open son los modos habituales
  • Nomount:
    • Para recuperar la base de datos de errores (si falta algún fichero)
  • Mount:
  • Conclusión: con suerte, solo Shutdown y open

3. Vistas

  • En un sistema relacional, toda la información se guarda en forma de relaciones
  • Las vistas son representaciones de otras vistas o relaciones
    • Quitando algunas filas o columnas
    • Uniendo unas tablas con otras
  • Tanto las tablas como las vistas son relaciones

3.1. Vistas de Oracle

  • La información acerca de la base de datos también se almacena en relaciones de la base de datos
  • Generalmente, en forma de vistas
  • Ejemplos:
    • Tablas: nombre, propietario,…
    • Campos de las tablas: nombre, tipo, longitud
    • Restricciones
    • Usuarios: nombre, contraseñas,…
    • Tablespaces

3.2. Tipos de vistas de Oracle

  • Estáticas
    • Cambian solo si se produce un cambio en los objetos de la base de datos (tablas, vistas, usuarios,…)
    • create, alter, drop, grant, revoke,…
    • Documentación de Oracle: 1, 2, 3
  • Dinámicas: Actualizadas constantemente
USER_xxxx Estática Acerca de los objetos propiedad del usuario
ALL_xxx Estática Objetos que puede acceder el usario
DBA_xxx Estática Todos los objetos de la base de datos
V$xxxxx Dinámica Información dinámica de la instancia
GV$xxxx Dinámica Información dinámica del cluster

  • Vistas comodín:
    • SELECT * FROM DICT
    • SELECT * FROM DICT_COLUMNS

Para cambiar tamaños de columnas en sqlplus:

set linesize 2000;
set pagesize 2000;
column table_name format a30
column comments format a150 

3.3. Ejemplo de vistas: ficheros

Tipos de archivos Vista
De Datos (dbf) undo, system y users v$datafile
Temporales (tmp) v$tempfile
Rehacer o Redo Log (log) v$logfile
De control. Estructura física de la BD v$controlfile
De Log v$diag_info
Información de la BD v$database

3.4. Ejercicios de vistas

  • Lista los usuarios de base de datos que no tengan tablas creadas
  • Crea una vista basada en vistas estáticas DBA_xxxx que imite la vista compuesta ROLE_TAB_PRIVS
    • Comprueba que tiene las mismas columnas y filas que ROLE_TAB_PRIVS con minus

3.5. Archivos

  • Los datos de las tablas al final se almacenan en archivos
Archivos de datos, de usuario y del sistema En tablespaces (dbf)
Redo Log (registro de todas las transacciones) log
Archivos de control ctl

¿Dónde están los archivos de datos de nuestra instalación? ¿Cómo encontrarlos?

4. Bibliografía

5. Referencias

Autor: Álvaro González Sotillo

Created: 2024-09-08 dom 17:53

Validate