Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
27 vistas50 páginas

Capítulo 1 - Arquitectura Del Servicio

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 50

Objetivos

Esta lección presenta la arquitectura de Oracle Server. Para ello, examina las estructuras
físicas, lógicas, de procesos y de memoria implicadas en el establecimiento de una conexión
con la base de datos, en la creación de una sesión y en la ejecución de comandos SQL.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-2


Visión General de los Componentes Principales
La arquitectura Oracle incluye cierto número de componentes principales, que se analizan
más adelante en esta lección.
• Oracle Server: Existen varios archivos, procesos y estructuras de memoria en Oracle
Server, no obstante, cuando se procesa una sentencia SQL no se utilizan todos. Algunos se
utilizan para mejorar el rendimiento de la base de datos, asegurar la recuperación de la
base de datos si se produce un error de software o de hardware, o realizar otras tareas
necesarias para mantener la base de datos. Oracle Server está formado por una instancia y
una base de datos Oracle.
• Instancia Oracle: Una instancia Oracle es la combinación de los procesos en segundo
plano y las estructuras de memoria. Es necesario iniciar la instancia para acceder a los
datos de la base de datos. Cada vez que se inicia una instancia, se asigna un SGA (Área
Global del Sistema) y se inician los procesos en segundo plano de Oracle. Los procesos en
segundo plano desempeñan funciones en favor del proceso que llama. Consolidan las
funciones que, de lo contrario, se gestionarían mediante la ejecución de múltiples
programas Oracle para cada usuario. Los procesos en segundo plano realizan operaciones
de E/S (entrada/salida) y controlan otros procesos de Oracle para proporcionar un mayor
paralelismo y, de esta manera, mejorar el rendimiento y la fiabilidad.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-3


Visión General de los Componentes Principales (continuación)
• Base de datos Oracle: Una base de datos Oracle está formada por archivos del sistema
operativo, también llamados archivos de base de datos, que proporcionan el
almacenamiento físico real para la información de la base de datos. Los archivos de la
base de datos se utilizan para asegurar la consistencia de los datos, así como su
recuperación en caso de que se produzca un fallo de la instancia.
• Otros archivos clave: Los archivos que no son de base de datos se utilizan para
configurar la instancia, autenticar los usuarios con privilegios y recuperar la base de datos
en caso de que se produzca un fallo de disco.
• Procesos de usuario y de servidor: Los procesos de usuario y de servidor son los
procesos principales implicados en la ejecución de una sentencia SQL. Sin embargo, hay
otros procesos que pueden ayudar al servidor a finalizar el procesamiento de la sentencia
SQL.
• Otros procesos: Existen otros muchos procesos que se utilizan en otras opciones, como
Gestión de Colas Avanzada, Real Application Clusters, Servidor Compartido, Replicación
Avanzada, etc. Estos procesos se describen en los cursos correspondientes.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-4


Oracle Server
Oracle Server es la clave para la gestión de la información. Por regla general, Oracle Server
debe gestionar grandes cantidades de datos en un entorno para varios usuarios de forma
fiable, de modo que muchos usuarios puedan acceder de forma simultánea a los mismos
datos. Al mismo tiempo, es necesario que el rendimiento obtenido sea excelente. Oracle
Server también debe impedir el acceso no autorizado y proporcionar soluciones eficaces para
la recuperación en caso de fallo.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-5


Instancia Oracle
Una instancia Oracle se compone de la estructura de la memoria SGA (Área Global del
Sistema) y de los procesos en segundo plano que se utilizan para gestionar una base de datos.
La identificación de una instancia se realiza mediante los métodos específicos de cada sistema
operativo. La instancia sólo podrá abrir y utilizar una base de datos a la vez.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-6


Establecimiento de una Conexión y Creación de una Sesión
Para que los usuarios puedan ejecutar sentencias SQL en una base de datos Oracle, se deben
conectar a una instancia.
• El usuario inicia una herramienta como SQL*Plus, o bien ejecuta una aplicación que se
haya desarrollado con una herramienta como Oracle Forms. Esta aplicación o herramienta
se ejecuta como un proceso de usuario.
• En la configuración más básica, cuando un usuario se conecta a Oracle Server, se crea un
proceso en el equipo que ejecuta Oracle Server. A este proceso se le llama proceso de
servidor. El proceso de servidor se comunicará con la instancia Oracle en nombre del
proceso de usuario en el cliente. El proceso de servidor ejecuta las sentencias SQL en
nombre del usuario.
Conexión
Una conexión no es más que una ruta de comunicación entre un proceso de usuario y Oracle
Server. Un usuario de base de datos se puede conectar a Oracle Server de tres formas:
• El usuario se conecta al sistema operativo ejecutando la instancia Oracle e inicia una
aplicación o herramienta que accede a la base de datos en ese sistema. Se establece la ruta
de comunicación mediante los mecanismos de comunicación entre procesos disponibles
en el sistema operativo del host.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-7


Establecimiento de una Conexión y Creación de una Sesión
Conexión (continuación)
• El usuario inicia la aplicación o la herramienta en un equipo local y se conecta a través de
la red al equipo que ejecuta la instancia Oracle. En esta configuración, conocida como
cliente-servidor, el software de red se utiliza para establecer la comunicación entre el
usuario y Oracle Server.
• En una conexión de tres capas, el equipo del usuario se comunica a través de la red con un
servidor de aplicaciones o de red, que se conecta a través de una red a la máquina que
ejecuta la instancia Oracle. Por ejemplo, el usuario ejecuta un explorador en un equipo de
red para utilizar una aplicación que reside en un servidor NT, que recupera los datos de
una base de datos Oracle que se ejecuta en un host UNIX.
Sesiones
Una sesión es una conexión específica de un usuario a Oracle Server. La sesión se inicia
cuando Oracle Server valida al usuario, y finaliza cuando el usuario se desconecta o cuando
se produce una terminación anormal. Un usuario de base de datos determinado puede realizar
muchas sesiones simultáneas si dicho usuario se conecta desde distintas herramientas,
aplicaciones o terminales al mismo tiempo. Excepto en el caso de algunas herramientas de
administración de base de datos especializadas, el inicio de una sesión de base de datos
requiere que Oracle Server esté disponible.
Nota: El tipo de conexión que se explica aquí, donde hay una correspondencia uno a uno
entre un proceso de usuario y de servidor, se llama conexión de servidor dedicado. Si se
utiliza una configuración de servidor compartido, muchos procesos de usuario podrán
compartir procesos de servidor.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-8


Base de Datos Oracle
El objetivo general de una base de datos es el de almacenar y recuperar la información
relacionada. Una base de datos Oracle tiene una estructura lógica y una física. La estructura
física de la base de datos es el juego de archivos del sistema operativo en la base de datos.
Una base de datos Oracle consta de tres tipos de archivos.
• Los archivos de datos que contienen los datos reales de la base de datos
• Los archivos redo log que contienen un registro de los cambios efectuados en la base de
datos para activar la recuperación de los datos en caso de fallos
• Los archivos de control que contienen la información necesaria para mantener y verificar
la integridad de la base de datos
Otras Estructuras de Archivos Clave
Oracle Server también utiliza otros archivos que no forman parte de la base de datos:
• El archivo de parámetros define las características de una instancia Oracle. Por ejemplo,
contiene los parámetros que especifican el tamaño de las estructuras de la memoria en el
SGA.
• El archivo de contraseñas autentica los usuarios con privilegios para iniciar y cerrar una
instancia Oracle.
• Los archivos redo log archivados son copias offline de los archivos redo log online que
pueden ser necesarios para recuperarse de los fallos del medio físico.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-9


Estructura Física
La estructura física de una base de datos Oracle incluye tres tipos de archivos: archivos de
control, archivos de datos y archivos redo log online.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-10


Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-11
SGA (Área Global del Sistema)
El área SGA también se llama área global compartida. Se utiliza para almacenar información
de base de datos que comparten los procesos de base de datos. Contiene datos e información
de control para Oracle Server y se asigna en la memoria virtual de la computadora donde
reside Oracle.
Para ver las asignaciones de memoria SGA, se puede utilizar la siguiente sentencia:
SQL> SHOW SGA:
Total System Global Area 36437964 bytes
Fixed Size 6543794 bytes
Variable Size 19521536 bytes
Database Buffers 16777216 bytes
Redo Buffers 73728 bytes

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-12


Área Global del Sistema (continuación)
SGA Dinámica
A partir de Oracle9i, el área SGA dinámica implementa una infraestructura que permite
modificar la configuración del SGA sin cerrar la instancia. Asimismo, esto permite modificar
el tamaño de la caché de buffers de base de datos, del conjunto compartido y del conjunto
grande sin cerrar la instancia. En principio, se podría subconfigurar la caché de buffers de base
de datos y el conjunto compartido, que podrían aumentar y reducirse posteriormente en
función de sus respectivas cargas de trabajo, hasta un máximo especificado por
SGA_MAX_SIZE.
Especificación del Tamaño del SGA
El tamaño del área SGA lo determinan varios parámetros de inicialización. Los parámetros que
afectan al tamaño del área SGA en mayor medida son:
DB_CACHE_SIZE: Tamaño de la caché de bloques estándar. El valor por defecto es de 48
MB para UNIX y 52 MB para NT.
LOG_BUFFER: Número de bytes asignados al buffer de redo log
SHARED_POOL_SIZE: Tamaño en bytes del área dedicada a SQL compartido y a PL/SQL.
El valor por defecto es 16 MB. Si se trata de 64 bits, el tamaño por defecto es de 64 MB.
LARGE_POOL_SIZE: Tamaño del conjunto grande. El valor por defecto es cero (excepto si el
parámetro PARALLEL_AUTOMATIC_TUNING de init.ora se define en TRUE, en cuyo
caso se calcula automáticamente el valor por defecto.)
JAVA_POOL_SIZE: Tamaño del conjunto Java. El valor por defecto es 24 MB.
Por lo tanto, el tamaño del área SGA no puede superar el especificado en SGA_MAX_SIZE
menos los valores de DB_CACHE_SIZE, LOG_BUFFER, SHARED_POOL_SIZE,
LARGE_POOL_SIZE y JAVA_POOL_SIZE.
Nota: El área SGA dinámica y la especificación del tamaño se cubren más detenidamente en el
curso Oracle9i Database Performance Tuning.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-13


Área Global del Sistema (continuación)
Unidad de Asignación
Un gránulo es una unidad de asignación de memoria virtual contigua. El tamaño de un
gránulo depende del tamaño del SGA total estimado cuyo cálculo se basa en el valor del
parámetro SGA_MAX_SIZE.
• 4 MB si el tamaño del SGA estimado es < 128 MB
• 16 MB, en caso contrario
Los componentes (caché de buffers de base de datos, conjunto compartido y conjunto grande)
pueden aumentar o disminuir de tamaño en función de los límites del gránulo. Al iniciar la
instancia, Oracle Server asigna las entradas de gránulos, una por cada gránulo que soporta el
número de bytes de SGA_MAX_SIZE de espacio de dirección. Mientras continúa el inicio,
cada componente adquiere los gránulos que necesita. La configuración de SGA mínima es de
tres gránulos (un gránulo para el área SGA fija [incluye los buffers de redo], un gránulo para
la caché de buffers de base de datos y un gránulo para el conjunto compartido).

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-14


Conjunto Compartido
El entorno de conjunto compartido contiene estructuras tanto fijas como variables. Las
estructuras fijas mantienen relativamente el mismo tamaño, mientras que las estructuras
variables aumentan y disminuyen en función de los requisitos del usuario y del programa. El
tamaño real de las estructuras fijas y variables se basa en un parámetro de inicialización y el
funcionamiento de un algoritmo interno de Oracle.
Especificación del Tamaño del Conjunto Compartido
Puesto que el conjunto compartido se utiliza para objetos que se pueden compartir de forma
global, como planes de ejecución SQL reutilizables, paquetes PL/SQL, procedimientos,
funciones e información de cursor, su tamaño se debe ajustar a las necesidades tanto de las
áreas fijas como variables. La asignación de memoria del conjunto compartido se determina
por el parámetro de inicialización SHARED_POOL_SIZE. El tamaño se puede cambiar de
forma dinámica mediante ALTER SYSTEM SET. Tras el análisis de rendimiento, se puede
ajustar, aunque el tamaño total del área SGA no puede exceder el valor de SGA_MAX_SIZE.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-15


Caché de Biblioteca
El tamaño de la caché de biblioteca se basa en el tamaño definido para el conjunto
compartido. La memoria se asigna al analizar una sentencia o al llamar a una unidad de
programa. Si el tamaño del conjunto compartido es demasiado pequeño, las sentencias se
recargan continuamente en la caché de biblioteca, lo que afecta al rendimiento. La caché de
biblioteca se gestiona por medio de un algoritmo LRU. A medida que se va llenando la caché,
se eliminan los árboles de análisis y las rutas de ejecución utilizados menos recientemente de
la caché de biblioteca para dejar espacio a las nuevas entradas. Si las sentencias SQL o
PL/SQL no se vuelven a utilizar, al final quedarán obsoletas.
La caché de biblioteca está formada por dos estructuras:
• SQL compartido: Almacena y comparte el plan de ejecución y el árbol de análisis para
las sentencias SQL que se ejecutan en la base de datos. La segunda vez que se ejecuta una
sentencia SQL idéntica, ésta se puede beneficiar de la información de análisis disponible
en el SQL compartido para acelerar la ejecución. Para garantizar que las sentencias SQL
utilizan un área SQL compartida siempre que sea posible, el texto, el esquema y las
variables ligadas deben ser idénticos.
• PL/SQL compartido: Almacena y comparte las sentencias PL/SQL ejecutadas más
recientemente. Los procedimientos (funciones, paquetes y disparadores) y las unidades de
programa analizados y compilados se almacenan en este área.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-16


Caché del Diccionario de Datos
La caché del diccionario de datos también se llama caché del diccionario o caché de filas. La
información acerca de la base de datos (datos de cuenta de usuario, nombres de archivos de
datos, nombres de segmento, ubicaciones de extensiones, descripciones de tablas y privilegios
de usuario) se almacena en las tablas del diccionario de datos. Cuando el servidor necesita
esta información, se leen las tablas del diccionario de datos y los datos devueltos se
almacenan en la caché del diccionario de datos.
Especificación del Tamaño del Diccionario de Datos
El tamaño total depende del tamaño del conjunto compartido y lo gestiona de forma interna la
base de datos. Si la caché del diccionario de datos es demasiado pequeña, la base de datos
tiene que consultar las tablas del diccionario de datos repetidas veces para obtener la
información que necesita el servidor. Estas consultas se denominan llamadas recursivas y son
más lentas que las consultas directas de la caché del diccionario de datos, puesto que las
consultas directas no utilizan SQL.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-17


Caché de Buffers de Base de Datos
Cuando se procesa una consulta, el proceso de Oracle Server busca en la caché de buffers de
base de datos los bloques que necesita. Si no se encuentra el bloque en la caché de buffers de
base de datos, el proceso del servidor lee el bloque desde el archivo de datos y coloca una
copia en la caché de buffers de base de datos. Dado que las siguientes solicitudes para el
mismo bloque ya pueden encontrar el bloque en la memoria, las solicitudes no necesitarán las
lecturas físicas. Oracle Server utiliza un algoritmo LRU para los buffers obsoletos a los que
no se ha accedido recientemente con el fin de dejar sitio a los nuevos bloques en la caché de
buffers de base de datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-18


Caché de Buffers de Base de Datos
Especificación del Tamaño de la Caché de Buffers de Base de Datos
El tamaño de cada buffer de la caché de buffers de base de datos equivale al tamaño de un
bloque Oracle, y lo especifica el parámetro DB_BLOCK_SIZE. La caché de buffers de base
de datos está formada por dos subcachés independientes para conjuntos de buffers y para
múltiples tamaños de bloque. El parámetro DB_BLOCK_SIZE determina el tamaño del
bloque primario, que se usa para el tablespace SYSTEM.
Hay tres parámetros que definen los tamaños de las cachés de buffers de base de datos:
• DB_CACHE_SIZE: Sólo especifica el tamaño de la caché de buffers por defecto; siempre
está presente y no se puede definir en cero
• DB_KEEP_CACHE_SIZE: Establece el tamaño de la caché de buffers KEEP, que se
utiliza para retener en memoria bloques que probablemente se van a reutilizar
• DB_RECYCLE_CACHE_SIZE: Determina el tamaño de la caché de buffers de reciclado,
que se utiliza para eliminar de la memoria bloques que probablemente no se van a
reutilizar

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-19


Caché de Buffers de Base de Datos (continuación)
Asesor de Caché de Buffers
La función Asesor de Caché de Buffers activa y desactiva la recopilación de estadísticas para
predecir el comportamiento de los distintos tamaños de caché. La información proporcionada
por estas estadísticas le puede ayudar a establecer el tamaño óptimo de la caché de buffers de
base de datos para cada carga de trabajo determinada. La información del Asesor de Caché de
Buffers se recopila y se muestra mediante la vista V$DB_CACHE_ADVICE.
La función Asesor de Caché de Buffers se activa mediante el parámetro de inicialización
DB_CACHE_ADVICE, que es un parámetro dinámico y se puede modificar con ALTER
SYSTEM. Existen tres valores (OFF, ON y READY) disponibles.
Valores del Parámetro DB_CACHE_ADVICE
OFF: El asesor está desactivado y no se le asigna memoria.
ON: El asesor está activado y se produce una sobrecarga tanto de CPU como de memoria.
Si se intenta definir el parámetro en el estado ON cuando tiene el valor OFF, puede dar lugar
al siguiente error: ORA-4031 Inability to allocate from the Shared
Pool when the parameter is switched to ON. Si el parámetro se encuentra en
estado READY, se puede definir como ON sin errores, porque la memoria ya está asignada.
READY: El asesor está desactivado pero la memoria continúa asignada. Al asignar la memoria
antes de activar el asesor, se evita el riesgo de que se produzca el error ORA-4031. Si se
activa el estado de este parámetro cuando está en OFF, es posible que se produzca el error
ORA-4031.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-20


Buffer de Redo Log
El buffer de redo log es un buffer circular que contiene los cambios realizados en los bloques
de archivos de datos. Esta información se almacena en registros de redo. Los registros de redo
contienen la información necesaria para recrear los datos que había antes de los cambios
realizados por las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP.
Especificación del Tamaño del Buffer de Redo Log
El tamaño del buffer de redo log está definido por el parámetro de inicialización
LOG_BUFFER.
Nota: La especificación del tamaño del buffer de redo log se explica con más detalle en el
curso Oracle9i Database Performance Tuning. Consulte la lección “Mantenimiento de
Archivos Redo Log” para obtener más información sobre los archivos redo log online.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-21


Conjunto Grande
Mediante la asignación de memoria de sesión desde el conjunto grande para el servidor
compartido, Oracle XA o los buffers de consulta paralela, Oracle puede utilizar el conjunto
compartido principalmente para almacenar sentencias de SQL compartido en caché. De este
modo, libera de su carga otras áreas del conjunto compartido. El conjunto compartido no tiene
que reservar memoria para almacenar en caché los árboles de análisis SQL en favor de la
información de sesión de servidor compartido, los procesos de E/S y los procesos de copia de
seguridad y de recuperación. La mejora de rendimiento se debe a la reducción de la
sobrecarga derivada del aumento y la disminución de la caché de SQL compartido.
Copia de Seguridad y Recuperación
RMAN (Oracle Recovery Manager) utiliza el conjunto grande cuando se definen los
parámetros BACKUP_DISK_IO=n y BACKUP_TAPE_IO_SLAVE= TRUE. Si se ha
configurado el conjunto grande, pero no tiene el tamaño suficiente, fallará la asignación de la
memoria del conjunto grande. RMAN escribe un mensaje de error en el archivo log de alertas
y no utiliza esclavos de E/S para copias de seguridad o restauración.
Ejecución en Paralelo
Si el parámetro PARALLEL_AUTOMATIC_TUNING se define en TRUE, se utiliza el
conjunto grande. En caso contrario, estos buffers se asignan al conjunto compartido.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-22


Conjunto Grande (continuación)
Especificación del Tamaño del Conjunto Grande
El tamaño del conjunto grande se especifica en bytes definidos por el parámetro
LARGE_POOL_SIZE. Este parámetro se puede modificar dinámicamente con el comando
ALTER SYSTEM SET.
SQL> ALTER SYSTEM SET LARGE_POOL_SIZE=24MB
El Conjunto Grande y las Listas LRU
El conjunto grande no tiene una lista LRU. Es distinto al espacio reservado del conjunto
compartido, que utiliza una lista LRU.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-23


Conjunto Java
El conjunto Java es una definición opcional que es obligatoria si se instala y utiliza Java. Su
tamaño se define en bytes, mediante el parámetro JAVA_POOL_SIZE. En Oracle9i, el
tamaño por defecto del conjunto Java es de 24 MB.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-24


Área Global de Programas (PGA)
El PGA (Área Global de Programas o Área Global de Proceso) es una región de la memoria
que contiene los datos y la información de control de un único proceso de servidor o de un
único proceso en segundo plano. El PGA se asigna cuando se crea un proceso y se libera
cuando éste se termina. A diferencia del SGA, que comparten varios procesos, el PGA es un
área que sólo utiliza un proceso.
Contenido del PGA
El contenido de la memoria PGA varía en función de si la instancia se ejecuta en una
configuración de servidor dedicado o de servidor compartido. Por regla general, la memoria
PGA incluye los siguientes componentes:
• Área SQL privada: Contiene datos, como información ligada y estructuras de memoria
de tiempo de ejecución. Cada sesión que emite una sentencia SQL tiene un área SQL
privada. Cada usuario que ejecuta la misma sentencia SQL tiene su propia área SQL
privada que utiliza una única área de SQL compartido. Por tanto, muchas áreas SQL
privadas se pueden asociar a la misma área de SQL compartido. El área SQL privada de
un cursor se divide en dos áreas:

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-25


Área Global de Programas (continuación)
- Área persistente: Contiene información ligada y sólo se libera cuando se cierra el cursor
- Área de tiempo de ejecución: Creada como primer paso de una solicitud de ejecución.
Para los comandos INSERT, UPDATE y DELETE, esta área se libera una vez ejecutada
la sentencia. En el caso de las consultas, esta área se libera sólo cuando se han
recuperado todas las filas o se ha cancelado la consulta.
La ubicación del área SQL privada depende del tipo de conexión establecida para la sesión.
En un entorno de servidor dedicado, las áreas SQL privadas están ubicadas en el PGA de su
proceso de servidor. En un entorno de servidor compartido, las áreas SQL privadas están
ubicadas en el SGA.
La gestión de áreas SQL privadas es responsabilidad del proceso de usuario. El número de
áreas SQL privadas que puede asignar un proceso de usuario está siempre limitado por el
parámetro de inicialización OPEN_CURSORS. El valor por defecto de este parámetro es 50.
• Memoria de Sesión: Consta de memoria asignada para retener las variables de una sesión y
otra información relacionada con la sesión. En un entorno de servidor compartido, la
memoria de sesión es compartida y no privada.
• Áreas de Trabajo SQL: Utilizadas en operaciones con uso intensivo de la memoria como:
Ordenación, Unión de Comprobación Aleatoria, Fusión de Bitmaps y Creación de Bitmaps.
El tamaño del área de trabajo se puede controlar y ajustar.
A partir de Oracle9i, se puede gestionar de forma automática y global el tamaño del área de
trabajo. Esta característica se activa definiendo el parámetro WORKAREA_SIZE_POLICY
en AUTO, que es el valor por defecto, y el parámetro de inicialización
PGA_AGGREGATE_TARGET. El parámetro PGA_AGGREGATE_TARGET se define con el
objetivo de especificar la cantidad de memoria PGA de destino agregada disponible para la
instancia. Dicho parámetro es sólo un destino y se puede modificar de manera dinámica en el
nivel de la instancia. Acepta un número de bytes, kilobytes, megabytes o gigabytes. Cuando
se definen estos parámetros, la especificación del tamaño de las áreas de trabajo se hace de
manera automática y con *_AREA_SIZE.
En las versiones anteriores a Oracle9i, el DBA controlaba el tamaño máximo de las áreas de
trabajo SQL definiendo los siguientes parámetros: SORT_AREA_SIZE,
HASH_AREA_SIZE, BITMAP_MERGE_AREA_SIZE y
CREATE_BITMAP_AREA_SIZE. La definición de estos parámetros puede resultar difícil
puesto que el tamaño máximo del área de trabajo se selecciona de forma óptima en función
del tamaño de entrada de datos y el número total de áreas de trabajo activas en el sistema.
Estos dos factores varían en gran medida de un área de trabajo a la siguiente y de un
momento a otro.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-26


Área Global de Programas (continuación)
Diferencias en la Asignación de Memoria entre Servidores Dedicados y Servidores
Compartidos
El contenido de la memoria PGA varía en función de si la instancia se ejecuta en una
configuración de servidor dedicado o de servidor compartido. Por regla general, la memoria
PGA incluye los siguientes componentes:

Área de Memoria Servidor Servidor Compartido


Dedicado

Naturaleza de la Memoria de Sesión Privado Compartido

Ubicación del Área Persistente PGA SGA


Ubicación del Área de PGA SGA
Tiempo de Ejecución
(SELECT)
Ubicación del Área de Tiempo de PGA PGA
Ejecución (DML/DDL)

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-27


Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-28
Procesos de Usuario
Cualquier usuario de base de datos que necesite solicitar información a la base de datos debe
establecer primero una conexión con Oracle Server. La conexión se solicita con una
herramienta de interfaz de base de datos, como SQL*Plus, e iniciando el proceso de usuario.
El proceso de usuario no interactúa directamente con Oracle Server. En su lugar, genera
llamadas mediante la UPI (Interfaz de Programa de Usuario), que crea una sesión e inicia un
proceso de servidor.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-29


Procesos de Servidor
Una vez que el usuario ha establecido una conexión, se inicia un proceso de servidor para
gestionar las solicitudes de los procesos de usuario. Un proceso de servidor puede ser de dos
tipos: un proceso de servidor dedicado o un proceso de servidor compartido. En un entorno de
servidor dedicado, el proceso de servidor gestiona la solicitud de un único proceso de usuario.
Una vez que el proceso de usuario se desconecta, el proceso de servidor termina. En un
entorno de servidor compartido, el proceso de servidor gestiona la solicitud de varios procesos
de usuario. El proceso de servidor se comunica con Oracle Server mediante la OPI (Interfaz
de Programa Oracle).
Nota: Las diferencias entre la asignación del proceso de servidor en un entorno dedicado y en
un entorno compartido se cubren en mayor profundidad en el curso Oracle9i Database
Performance Tuning.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-30


Procesos en Segundo Plano
La arquitectura Oracle tiene cinco procesos en segundo plano obligatorios, que se analizan
posteriormente en esta lección. Además de la lista obligatoria, Oracle tiene muchos procesos
en segundo plano opcionales que se inician cuando se utiliza su opción. Estos procesos
opcionales no forman parte del ámbito de este curso, a excepción del proceso en segundo
plano ARCn. En la lista siguiente se incluyen algunos procesos en segundo plano opcionales:
• ARCn: Archiver
• CJQ0: Proceso en segundo plano de Cola de Trabajos de Coordinador
• Dnnn: Distribuidor
• LCKn: Gestor de Bloqueos RAC –Bloqueos de Instancia
• LMDn: Monitor de DLM de RAC–Bloqueos Remotos
• LMON: Monitor de DLM de RAC–Bloqueos Globales
• LMS: Servicio de Caché Global de RAC
• Pnnn: Esclavos de Consulta en Paralelo
• QMNn: Gestión de Colas Avanzada
• RECO: Recuperador
• Snnn: Servidor Compartido

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-31


DBWn (Escritor de Base de Datos)
El proceso de servidor registra los cambios que hay que deshacer y los bloques de datos en la
caché de buffers de base de datos. El proceso DBWn escribe los buffers sucios desde la caché
de buffers de base de datos en los archivos de datos. Esto asegura que hay un número
suficiente de buffers libres (buffers que se pueden sobrescribir cuando los procesos de
servidor necesiten leer bloques en los archivos de datos) disponibles en la caché de buffers de
base de datos. De esta manera, se mejora el rendimiento de la base de datos porque los
procesos de servidor sólo realizan cambios en la caché de buffers de base de datos.
DBWn aplaza la escritura en los archivos de datos hasta que se produce uno de los siguientes
eventos:
• Punto de control normal o incremental
• El número de buffers sucios alcanza un valor umbral
• Un proceso explora un número determinado de bloques cuando realiza una exploración en
busca de buffers libres y no puede encontrar ninguno
• Se produce un timeout
• Se produce una solicitud de sondeo en un entorno RAC (Real Application Clusters)

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-32


DBWn (Escritor de Base de Datos) (continuación)
• Se coloca un tablespace normal o temporal offline
• Se coloca un tablespace en modo de sólo lectura
• Borrado o truncamiento de una tabla
• ALTER TABLESPACE nombre del tablespace BEGIN BACKUP

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-33


LGWR (Escritura de Logs)
LGWR realiza escrituras secuenciales desde el buffer de redo log al archivo redo log en las
siguientes situaciones:
• Cuando se valida una transacción
• Cuando el buffer de redo log se encuentra a un tercio de su capacidad
• Cuando existe más de un megabyte de cambios en el buffer de redo log
• Antes de que DBWn escriba los bloques modificados de la caché de buffers de base de
datos en los archivos de datos
• Cada tres segundos
Puesto que es necesario rehacer los cambios para la recuperación, LGWR sólo confirmará la
operación de validación (COMMIT) una vez que se haya escrito el redo en el disco.
LGWR también puede llamar al proceso DBWn para escribir en los archivos de datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-34


SMON (Monitor del Sistema)
Si falla la instancia Oracle, se perderá toda la información del SGA que no se haya escrito en
el disco. Por ejemplo, el fallo del sistema operativo produce el fallo de una instancia. Una vez
que se haya perdido la instancia, el SMON de proceso en segundo plano realiza
automáticamente una recuperación de la instancia cuando la base de datos se vuelve a abrir.
La recuperación de la instancia consta de los siguientes pasos:
1. Se aplican transacciones pendientes para recuperar los datos que no se hayan registrado
en los archivos de datos, pero sí en el archivo redo log online. Estos datos no se han
escrito en el disco debido a la pérdida del SGA durante el fallo de la instancia. Durante
este proceso, SMON lee los archivos redo log online y aplica los cambios registrados en el
archivo redo log online a los bloques de datos. Como todas las transacciones validadas se
han escrito en los archivos redo log online, este proceso recupera completamente estas
transacciones.
2. Se abre la base de datos para que los usuarios se puedan conectar. Cualquier dato que no
se haya bloqueado por las transacciones no recuperadas está disponible inmediatamente.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-35


SMON (Monitor del Sistema) (continuación)
3. Se hace un rollback en las transacciones no validadas. SMON o los procesos de servidor
individual se encargan de hacer rollback en ellas a medida que acceden a los datos
bloqueados.
SMON también realiza ciertas funciones de mantenimiento de espacio:
• Combina, o fusiona, las áreas adyacentes de espacio libre en los archivos de datos.
• Libera segmentos temporales para devolverlos como espacio libre en los archivos de
datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-36


PMON (Monitor de Procesos)
El proceso en segundo plano PMON realiza una limpieza después de los procesos fallidos de
la siguiente forma:
• Realizando rollback en la transacción actual del usuario
• Liberando todos los bloqueos de tablas o filas actuales
• Liberando otros recursos que están reservados en ese momento por el usuario
• Reiniciando distribuidores interrumpidos
Los distribuidores se explican en mayor profundidad en el curso Administración de la Base de
Datos Oracle9i: Conceptos Básicos II.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-37


CKPT (Punto de Control)
Cada tres segundos, el proceso CKPT almacena datos en el archivo de control para identificar
el punto del archivo redo log online en el que se debe iniciar la recuperación, que se llama
punto de control. El objetivo de un punto de control es garantizar que todos los buffers de la
caché de buffers de base de datos que se han modificado antes de un punto en el tiempo se
hayan escrito en los archivos de datos. Este punto en el tiempo (llamado posición del punto de
control) es el punto en el que se debe iniciar la recuperación de la base de datos en caso del
fallo de una instancia. El proceso DBWn ya habrá escrito todos los buffers de la caché de
buffers de base de datos que se han modificado antes de dicho punto. En versiones anteriores
a Oracle9i, este proceso se realizaba al final del archivo redo log online. En caso de que se
produzca un cambio de log, el proceso CKPT también escribe esta información de punto de
control en las cabeceras de los archivos de datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-38


CKPT (Punto de Control) (continuación)
Los puntos de control se inician por los siguientes motivos:
• Para garantizar que los bloques de datos modificados en la memoria se escriben en el
disco con frecuencia, de forma que no se pierdan en caso de que se produzca el fallo de un
sistema o de una base de datos.
• Para reducir el tiempo necesario de recuperación de una instancia. Para la recuperación,
sólo es necesario procesar las entradas del archivo redo log online posteriores al último
punto de control.
• Para garantizar que todos los datos validados se han escrito en los archivos de datos
durante el cierre.
La información de punto de control que escribe el proceso CKPT incluye la posición del
punto de control, el número de cambio del sistema, la ubicación en el archivo redo log online
desde la que iniciar la recuperación, la información sobre logs, etc.
Nota: CKPT no escribe bloques de datos en el disco ni bloques de redo en los archivos redo
log online.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-39


ARCn (Archiver)
ARCn es un proceso en segundo plano opcional, no obstante, es crucial para recuperar una
base de datos después de la pérdida de un disco. Cuando se llena un archivo redo log online,
Oracle Server comienza a escribir en el siguiente. El proceso de cambio de un archivo redo
log online a otro se llama cambio de log. El proceso ARCn inicia una copia de seguridad, o
archivado, del grupo de logs llenos en cada cambio de log. Archiva automáticamente el
archivo redo log online antes que se pueda volver a utilizar el log, con el fin de proteger todos
los cambios realizados en la base de datos. Esto permite recuperar la base de datos hasta el
punto en que se produjo el fallo, incluso aunque esté dañada una unidad de disco.
Archivado de los Archivos Redo Log Online
Una de las decisiones importantes que debe tomar un DBA es si debe configurar la base de
datos para que funcione en modo ARCHIVELOG o en modo NOARCHIVELOG.
Modo NOARCHIVELOG: En este modo, los archivos redo log online se sobrescriben cada vez
que se produce un cambio de log. LGWR no sobrescribirá un grupo de archivos redo log
online hasta que el punto de control se haya terminado para ese grupo. Esto asegura que los
datos validados se puedan recuperar si se produce un error de instancia. Durante el error de
instancia, sólo se pierde el SGA. No hay pérdida de discos, sólo de memoria. Por ejemplo, un
error del sistema operativo provoca un error de instancia.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-40


ARCn (Archiver) (continuación)
Archivado de Archivos Redo Log Online (continuación)
Modo ARCHIVELOG: En caso de que la base de datos se configure para que se ejecute en
modo ARCHIVELOG, será necesario archivar los grupos inactivos de archivos redo log online
llenos antes de que se puedan volver a utilizar de nuevo. Dado que los cambios efectuados en
la base de datos se registran en los archivos redo log online, el administrador de la base de
datos puede utilizar la copia de seguridad física de los archivos de datos y los archivos redo
log online archivados para recuperar la base de datos sin perder ninguno de los datos validados
debido a un solo punto de fallo, incluida la pérdida de un disco. Normalmente, se suele
configurar una base de datos de producción para que se ejecute en modo ARCHIVELOG.
Los modos de archive log se explican en mayor profundidad en el curso Administración de la
Base de Datos Oracle9i: Conceptos Básicos II.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-41


Estructura Lógica
Existe la siguiente jerarquía de estructuras lógicas:
• Una base de datos Oracle contiene como mínimo un tablespace.
• Un tablespace contiene uno o más segmentos.
• Cada segmento está formado por extensiones.
• Una extensión está formada por bloques lógicos.
• Un bloque es la unidad más pequeña para las operaciones de lectura y escritura.
La arquitectura de la base de datos Oracle incluye las estructuras físicas y lógicas que
conforman la base de datos.
• La estructura física incluye archivos de control, archivos redo log online y archivos de
datos que conforman la base de datos.
• La estructura lógica incluye tablespaces, segmentos, extensiones y bloques de datos.
Oracle Server permite un control preciso del uso del espacio de disco mediante estructuras de
almacenamiento lógicas y de tablespaces, incluidos segmentos, extensiones y bloques de
datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-42


Estructura Lógica (continuación)
Tablespaces
Los datos de una base de datos Oracle se almacenan en tablespaces.
• Una base de datos Oracle se puede agrupar de forma lógica en áreas lógicas más pequeñas
de espacio conocidas como tablespaces.
• Un tablespace sólo puede pertenecer a una base de datos a la vez.
• Cada tablespace está formado por uno o más archivos del sistema operativo, que reciben el
nombre de archivos de datos.
• Un tablespace puede tener uno o más segmentos.
• Los tablespaces se pueden poner en línea mientras se está ejecutando la base de datos.
• Excepto en el caso del tablespace SYSTEM o un tablespace con un segmento de deshacer
activo, los tablespaces se pueden poner offline y dejar que la base de datos se siga
ejecutando.
• Los tablespaces pueden cambiar entre un estado de lectura y escritura y de sólo lectura.
Archivos de Datos (Estructura No Lógica):
• Cada tablespace de una base de datos Oracle está formado por uno o más archivos
llamados archivos de datos. Se trata de estructuras físicas que se ajustan al sistema
operativo en el que se ejecuta Oracle Server.
• Un archivo de datos sólo puede pertenecer a un tablespace.
• Oracle Server crea un archivo de datos para un tablespace asignando la cantidad
especificada de espacio en disco más una pequeña cantidad de sobrecarga.
• El administrador de la base de datos puede cambiar el tamaño de un archivo de datos una
vez creado, o bien puede especificar que un archivo debería aumentar dinámicamente a
medida que aumentan los objetos en el tablespace.
Segmentos
• Un segmento es el espacio asignado a una estructura de almacenamiento lógica específica
dentro de un tablespace.
• Un tablespace puede estar formado por uno o más segmentos.
• Un segmento no puede abarcar tablespaces; sin embargo, un segmento puede abarcar
múltiples archivos de datos que pertenezcan al mismo tablespace.
• Cada segmento está formado por una o más extensiones.
Extensiones
El espacio se asigna a un segmento mediante extensiones.
• Una o más extensiones componen un segmento.
- Cuando se crea un segmento, éste está formado, como mínimo, por una extensión.
- A medida que el segmento va creciendo, se le agregan extensiones.
- El DBA puede agregar extensiones a un segmento manualmente.
• Una extensión es un juego de bloques Oracle contiguos.
• Una extensión no puede abarcar archivos de datos y, por tanto, debe existir en un archivo
de datos.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-43


Estructura Lógica (continuación)
Bloques de Datos
Oracle Server gestiona el espacio de almacenamiento de los archivos de datos en unidades
llamadas bloques Oracle o bloques de datos.
• Con el mayor nivel de granularidad posible, los datos de una base de datos Oracle se
almacenan en bloques de datos.
• Los bloques de datos Oracle son las unidades de almacenamiento más pequeñas que Oracle
Server puede asignar, leer o escribir.
• Un bloque de datos se corresponde con uno o más bloques del sistema operativo asignados
desde un archivo de datos existente.
• El tamaño de bloque de datos estándar de cada base de datos Oracle lo especifica el
parámetro de inicialización DB_BLOCK_SIZE cuando se crea la base de datos.
• El tamaño del bloque de datos debería ser múltiplo del tamaño del bloque del sistema
operativo para evitar operaciones de E/S innecesarias.
• El tamaño máximo del bloque de datos depende del sistema operativo.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-44


Procesamiento de Sentencias SQL
Procesamiento de una Consulta
• Análisis:
- Buscar una sentencia idéntica
- Comprobar la sintaxis, los nombres de objetos y los privilegios
- Bloquear los objetos que se utilizan durante el análisis
- Crear y almacenar el plan de ejecución
• Enlace: Obtener valores para variables
• Ejecución: Procesar la sentencia
• Recuperación: Devolver filas al proceso de usuario

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-45


Procesamiento de Sentencias SQL (continuación)
Procesamiento de una Sentencia DML
• Análisis: La fase de análisis es la misma que la utilizada para procesar una consulta
• Enlace: La misma fase de enlace que la utilizada para procesar una consulta.
• Ejecución:
- Si los bloques de datos y de deshacer no están todavía en la caché de buffers de
base de datos, el proceso de servidor los lee desde los archivos de datos en la caché
de buffers de base de datos.
- El proceso de servidor coloca bloqueos en las filas que se van a modificar. El
bloque de deshacer se utiliza para almacenar la imagen anterior de los datos, de
forma que se pueda hacer rollback en los cambios de las sentencias DML si fuera
necesario.
- Los bloques de datos registran los nuevos valores de los datos.
- El proceso de servidor registra la imagen anterior en el bloque de deshacer y
actualiza el bloque de datos. Estos dos cambios se llevan a cabo en la caché de
buffers de base de datos. Todos los bloques cambiados en la caché de buffers de
base de datos se marcan como buffers sucios. Es decir, los buffers que no se
corresponden con los bloques del disco.
- El procesamiento de un comando DELETE o INSERT utiliza pasos similares. La
imagen anterior de un comando DELETE contiene los valores de columna de la fila
suprimida, mientras que la imagen anterior de un comando INSERT contiene la
información de ubicación de filas.
Procesamiento de una Sentencia DDL
La ejecución de una sentencia DDL (Lenguaje de Definición de Datos) es distinta a la
ejecución de las sentencias y las consultas DML (Lenguaje de Manipulación de Datos), ya que
una sentencia DDL correcta requiere acceso de escritura al diccionario de datos. Para este tipo
de sentencias, el análisis comprende en realidad el análisis, la consulta del diccionario de datos
y la ejecución. Las sentencias SQL de gestión del sistema , gestión de sesiones y gestión de
transacciones se procesan en las etapas de análisis y ejecución. Para volver a ejecutarlas, sólo
tiene que realizar otra ejecución.

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-46


Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-47
Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-48
Práctica 1: Componentes de la Arquitectura de Oracle
1 ¿Cuál de las siguientes afirmaciones es correcta?
a Oracle Server es un conjunto de datos formado por tres tipos de archivos.
b Un usuario establece una conexión a la base de datos iniciando una instancia Oracle.
c Una conexión es una ruta de comunicación entre Oracle Server y la instancia Oracle.
d Se inicia una sesión cuando Oracle Server valida un usuario.
2 ¿Cuál de las siguientes áreas de memoria no forma parte de la memoria SGA?
a Caché de buffers de base de datos
b PGA
c Buffer de redo log
d Conjunto compartido
3 Entre las siguientes afirmaciones sobre el conjunto compartido, dos son correctas.
¿Cuáles son?
a El conjunto compartido está formado por la caché de biblioteca, la caché del
diccionario de datos, el área SQL compartido, el conjunto Java y el conjunto grande.
b El conjunto compartido se utiliza para almacenar las últimas sentencias SQL
ejecutadas.
c El conjunto compartido se utiliza para un objeto que se puede compartir de forma
global.
d La caché de biblioteca está formada por las áreas SQL compartido y PL/SQL
compartido.
4 ¿Cuál de las siguientes áreas de memoria se utiliza para almacenar en caché la
información del diccionario de datos?
a Caché de buffers de base de datos
b PGA
c Buffer de redo log
d Conjunto compartido
5 El principal fin del buffer de redo log es registrar todos los cambios en los bloques de
datos de la base de datos.
a Verdadero
b Falso
6 La región de memoria PGA contiene datos e información de control para varios procesos
de servidor o para varios procesos en segundo plano.
a Verdadero
b Falso
7 ¿Cuál de los siguientes elementos está disponible cuando se inicia una instancia Oracle?
a Proceso de usuario
b Proceso de servidor
c Procesos en segundo plano

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-49


Práctica 1: Componentes de la Arquitectura de Oracle (continuación)
8 Identifique cinco procesos en segundo plano obligatorios.
________________________________________
________________________________________
________________________________________
________________________________________
________________________________________
9 Una el proceso con su tarea.
a Escritor de base de datos 1 Ayuda a escribir en las cabeceras de los archivos de
datos
b Escritura de logs 2 Responsable de la recuperación de instancias
c Monitor del sistema 3 Realiza una limpieza cuando los procesos han fallado
d Monitor de procesos 4 Registra los cambios de la base de datos con fines de
recuperación
e Punto de control 5 Escribe en los buffers sucios para los archivos de
datos
10 La estructura física de una base de datos Oracle está formada por los siguientes tipos
de archivos: archivos de control, archivos de datos y archivos redo log online.
a Verdadero
b Falso
11 Coloque las siguientes estructuras por orden de jerarquía empezando por la base de
datos.
a Tablespaces
b Extensión
c Segmento
d Base de datos
e Bloque
12 Identifique los componentes de Oracle Server.
________________________________________
________________________________________

13 Identifique los componentes de una instancia Oracle.


________________________________________
________________________________________
14 Identifique tres tipos de archivos que componen una base de datos Oracle.
________________________________________
________________________________________
________________________________________

Administración de la Base de Datos Oracle9i: Conceptos Básicos I 1-50

También podría gustarte