Componentes y Arquitectura de una Base de Datos Oracle
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,59 KB
Archivos Principales
- Control File: Contiene información sobre los archivos físicos, nombre de la base de datos (BD), tamaños de bloque e información para la recuperación. Son requeridos para abrir la BD.
- Data File: Contiene la información que registran las aplicaciones de los usuarios finales.
- Redo Log: Registran todos los cambios hechos a la BD y el estado de recuperación.
- Pfile y SPfile: Son archivos que contienen parámetros de configuración de la SGA, características opcionales de Oracle y procesos en segundo plano (background processes).
Instancia y Servidor Oracle
- Una instancia de Oracle está conformada por una estructura de memoria llamada SGA y varios procesos en segundo plano.
- Un servidor de Oracle consiste en una instancia y una BD Oracle.
- Una instancia es una estructura temporal de memoria, pero la BD está basada en archivos físicos (Control File, Data File y Redo Log).
Procesos en Segundo Plano (Background Processes)
- PMON (Process Monitor): Limpia las conexiones fallidas a la BD.
- SMON (System Monitor): Ejecuta la recuperación de una instancia ante una caída.
- DBWn (Database Writer): Escribe los bloques de memoria modificados en la SGA.
- LGWR (Log Writer): Escribe información de la SGA (Redo Log Buffer).
- CKPT (Checkpoint): Actualiza los archivos de la BD después de los eventos de checkpoint.
Áreas de Memoria
- PGA (Program Global Area): Es una región de memoria asociada a cada proceso servidor, la cual contiene datos e información de control para cada una de las sesiones que los usuarios mantienen. No es un área de memoria compartida.
- SGA (System Global Area): Conjunto de memoria compartida que contiene datos e información de control para una determinada instancia de Oracle y está compuesta por:
- Shared Pool: Caché de memoria que almacena sentencias SQL y PL/SQL.
- Library Cache: Almacena el texto de la instrucción.
- Dictionary Cache: Almacena la información de uso más reciente sobre el Diccionario de Datos (DD).
- Database Buffer Cache: Contiene los datos más recientemente leídos.
- Redo Log Buffer: Almacena información sobre transacciones con propósito de recuperación.
- Shared Pool: Caché de memoria que almacena sentencias SQL y PL/SQL.
Tablespaces
- Los tablespaces pueden ocupar uno o más datafiles.
Diccionario de Datos
- Está compuesto por un conjunto de tablas y vistas asociadas que almacenan información sobre los componentes de la BD, así como su estructura lógica y física.
- Incluye dos tipos de objetos:
- Tablas base: Se crean automáticamente con el comando
CREATE DATABASE
. - Vistas: Se crean al ejecutar el script
catalog.sql
.
- Tablas base: Se crean automáticamente con el comando
- Contiene información sobre tablas, índices, sinónimos, procedimientos, funciones, paquetes, triggers, usuarios y privilegios.
- Vistas del Diccionario de Datos:
- DBA: Todos los objetos en la BD.
- ALL: Objetos accesibles para el usuario conectado.
- USER: Objetos propiedad del usuario conectado.
Control File
- Fichero binario sin el cual no es posible arrancar la BD.
- Se lee al montar la BD.
- Está asociado solo a una BD.
- Contiene información como: nombre de la BD, fecha de creación, nombre de los tablespaces, nombre y localización de los ficheros de control y de redo, números de secuencia del registro en curso, información del checkpoint e información del backup.
Backup del Control File
- Parar la BD.
- Hacer una copia física del fichero a nivel de sistema operativo.
- Incluir la nueva copia en el archivo
init.ora
en el parámetrocontrol_files
. - Respaldar después de que la BD ha cambiado:
ALTER DATABASE BACKUP CONTROLFILE TO 'filename';
De esta forma, se crea en un fichero de traza las sentencias SQL necesarias para volver a crear el fichero de control.
Redo Log File
- Proveen información de las transacciones ante un evento de falla de la BD.
- Una BD requiere al menos dos grupos.
- Log Switch: Ocurre cuando un grupo redo log se llena y el LGWR pasa al siguiente.
- Forzar un switch:
ALTER SYSTEM SWITCH LOGFILE;
- Forzar un checkpoint:
ALTER SYSTEM CHECKPOINT;
- El LGWR escribe al hacer commit o cada 3 segundos.
- Agregar un grupo redo log:
ALTER DATABASE [BD] ADD LOGFILE [grupo];
- Eliminar un grupo redo log:
ALTER DATABASE [BD] DROP LOGFILE [grupo];
- Borrar miembros:
ALTER DATABASE [BD] DROP LOGFILE MEMBER 'filename';
- Noarchivelog: Los archivos redo son reescritos cada vez que el archivo se llena y ocurre un log switch. LGWR no sobreescribe un grupo hasta que el checkpoint para el grupo se completa.
- Archivelog: Los grupos inactivos y llenos son archivados. Se pueden hacer respaldos físicos para recuperar la BD sin perder la información actualizada.
Estructura Lógica y Física
- Estructura Lógica: Database, Tablespace, Segment, Extent, Oracle Block.
- Estructura Física: Archivos de datos, de redo log y de control.
Tipos de Tablespace
- De datos.
- De índices.
- De rollback.
- Temporales.
- El tablespace UNDO solo puede contener segmentos de rollback.
- Los tablespaces temporales se ocupan cuando la memoria está llena, para operaciones como
ORDER BY
,JOIN
yCREATE INDEX
que no caben en la memoria.
Ejemplo de Creación de Usuario
ALTER USER <usuario>
IDENTIFIED BY <contraseña>/EXTERNALLY
DEFAULT TABLESPACE <espacio>
TEMPORARY TABLESPACE <espacio>
QUOTA <xx>K/UNLIMITED ON <espacio>
DEFAULT ROLE <role>/ALL/ALL EXCEPT <role>/NONE
PROFILE <perfil>
PASSWORD EXPIRE
ACCOUNT LOCK/UNLOCK;