Bienvenido al tema sobre la arquitectura del servidor de bases de datos Oracle.
En este tema,
describiré la arquitectura de Oracle Database Server y exploraré sus diversos componentes. Esta
diapositiva muestra un diagrama de arquitectura típico de Oracle Database Server. Un sistema
básico de base de datos Oracle consta de dos componentes principales: la base de datos Oracle y
una instancia de Oracle.
Una base de datos es un conjunto de archivos ubicados en un disco que almacenan datos. Una
instancia es un conjunto de estructuras de memoria que administran archivos de bases de datos.
La instancia consta de estructuras de memoria compartida y un conjunto de procesos de Oracle.
Primero describamos la instancia. Cuando se inicia la instancia, la base de datos de Oracle asigna
una memoria llamada Área global del sistema, o SGA, e inicia los procesos en segundo plano de
Oracle. El área global del sistema es un grupo de estructuras de memoria compartida conocidas
como componentes SGA que contienen datos e información de control para una instancia de base
de datos Oracle. La información almacenada en el SGA es compartida por todos los servidores y
procesos en segundo plano.
Ejemplos de datos almacenados en SGA incluyen bloques de datos almacenados en caché leídos
de archivos de datos y áreas SQL compartidas. Los procesos en segundo plano de la instancia de
Oracle administran las estructuras de memoria, realizan E/S de forma asincrónica para escribir
datos en un archivo en un disco y realizan tareas de mantenimiento generales. Cada proceso en
segundo plano tiene un nombre único y una responsabilidad única en el sistema de base de datos
Oracle.
Cada base de datos Oracle en ejecución está asociada con al menos una instancia de base de datos
Oracle. Debido a que una instancia existe en la memoria y una base de datos es un conjunto de
archivos en el disco, una instancia puede existir sin una base de datos y una base de datos puede
existir sin una instancia.
La segunda parte de un sistema de base de datos básico es Oracle Database. Oracle Database es
simplemente un conjunto de archivos almacenados en el sistema de almacenamiento. Hay tres
archivos de base de datos básicos:
- control files, redo log files, and data files
archivos de control, archivos de registro de rehacer y archivos de datos. Los archivos de control
contienen estructura de base de datos e información de sincronización. Los archivos de registro de
rehacer almacenan los cambios realizados en la base de datos. Los datos del usuario se almacenan
en un conjunto de archivos de datos que residen físicamente en un disco en el sistema de
almacenamiento.
Los archivos de datos están organizados en espacios de tablas(tablespace). Cada espacio de tabla
contiene uno o más archivos de datos. Cuando se solicita mediante una declaración SQL, los datos
se leen del archivo de datos y se almacenan en SGA o en el Área global del programa, PGA, de un
proceso de servidor.
En el lado izquierdo del diagrama, podemos ver el proceso del usuario. El proceso de usuario
generalmente no se ejecuta en el mismo host que un servidor de base de datos, sino que se
ejecuta en una computadora cliente. El proceso de usuario ejecuta una aplicación como SQL Plus,
desde la cual todas las solicitudes se envían a través del software Oracle Net al proceso del
servidor generado por el oyente (Listener).
Un proceso de Listener no es visible en este diagrama, pero es el proceso que permite la conexión
remota a un servidor de base de datos. Normalmente se ejecuta en el puerto 1521, pero los
administradores de bases de datos pueden elegir un puerto diferente si es necesario. Entonces, la
solicitud SQL se envía desde el proceso del usuario a través de Oracle Net al proceso del servidor.
El proceso del servidor tiene acceso tanto a las estructuras de memoria como a las estructuras de
almacenamiento del servidor de la base de datos. Ejecutará un comando SQL y devolverá los
resultados a través de Oracle Net al proceso del usuario.
En una arquitectura de servidor dedicado que se muestra en esta diapositiva, cada proceso de
servidor también tiene su propia memoria privada llamada Área Global de Programa o PGA. PGA
se utiliza para almacenar datos privados del proceso de un servidor que no se comparten con otros
procesos. Con esto concluye el tema sobre la arquitectura del servidor de base de datos Oracle.
Bienvenido al siguiente tema sobre arquitectura multiinquilino de Oracle(Mutitnenant). En este
tema, describiré la arquitectura multiinquilino utilizada para las bases de datos de contenedores.
En general, existen dos tipos de bases de datos de Oracle, una base de datos que no es un
contenedor o una que no es CDB, que es una base de datos de Oracle tradicional que no puede
contener bases de datos conectables. Este tipo de base de datos se utilizó en versiones anteriores
del software de base de datos Oracle. Aunque la versión actual del software de base de datos
Oracle ya no admite bases de datos que no sean CDB, es posible que algunos clientes aún utilicen
versiones anteriores del software Oracle con bases de datos que no sean CDB.
Y una base de datos de contenedor multiinquilino, que es una base de datos física única que
contiene cero, una o muchas bases de datos conectables creadas por el usuario. La arquitectura
multiinquilino permite que una base de datos Oracle sea una base de datos contenedora
multiinquilino. Una base de datos conectable es una colección portátil de esquemas, objetos de
esquema y objetos que no son de esquema que aparecen ante un cliente de Oracle como una base
de datos que no es CDB.
La arquitectura multiinquilino utiliza un concepto de contenedores. Un contenedor es una
colección lógica de datos o metadatos dentro de la arquitectura multiinquilino. Algunos
contenedores están creados previamente por Oracle. Algunos contenedores son creados por los
usuarios.
La base de datos conectable es simplemente un contenedor que contiene un conjunto portátil de
esquemas de base de datos y objetos de base de datos. Las bases de datos conectables se pueden
desconectar y conectar fácilmente a cualquier otra base de datos contenedora, moviendo
efectivamente datos para una o más PDB entre bases de datos alternativas.