Arquitectura de Oracle
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
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
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
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.
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:
- Para habilitar y deshabilitar el redo log.
- Para recuperar la base de datos de errores (sin usuarios)
- Ejemplo: cambiar los nombres de los ficheros de datos
- 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
- Dinámicas: Actualizadas constantemente
- Usuarios conectados, memoria disponible, consultas en curso,…
- Documentación de Oracle
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 compuestaROLE_TAB_PRIVS
- Comprueba que tiene las mismas columnas y filas que
ROLE_TAB_PRIVS
conminus
- Comprueba que tiene las mismas columnas y filas que
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
- Formatos:
- Creado con:
- Alojado en Github