RAQUEL JARAMILLO PALADINES
1
UNIVERSIDAD TECNOLOGIA DE
ISRAEL
Particionamiento: Proporciona utilidades para implementaraplicaciones de gran tamaño y escalables. Permite controlar lastablas y los índices con un nivel de granularidad inferior al quesería posible con la versión básica de Enterprise Edition.
• Real Application Clusters: Mejora la escalabilidad y disponibilidadde una base de datos.
• Paquetes de Oracle Enterprise Manager: Están creados sobreOracle Enterprise Manager, Complementarios que proporcionana los administradores un juego de herramientas para unagestión de cambios, un ajuste, un control y un diagnósticoavanzados de los entornos de Oracle.
• Seguridad avanzada: Proporciona seguridad de red de servidor aservidor y de cliente a servidor mediante el cifrado y lacomprobación de la integridad de datos.
2
Planificar y crear bases de datos
Gestionar la disponibilidad de la base de datos
Gestionar las estructuras físicas y lógicas
Gestionar el almacenamiento basándose en el
diseño
Gestionar la seguridad
Administración de la red
Copia de seguridad y recuperación
Ajuste de la base de datos
3
Oracle Server: Es un sistema de gestión de bases de
datos que proporciona un enfoque abierto, global e
integrado de la gestión de información que se
encuentra formado por una instancia Oracle y una base
de datos Oracle
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 4
Es la combinación de los procesos en segundoplano y las estructuras de memoria. Es necesarioiniciar la instancia para acceder a los datos de labase de datos, es un medio de acceso a una basede datos Oracle por la que siempre abre una únicabase de datos, la cual está formada por estructurasde procesos en segundo plano y de memoria, secompone de la estructura de la memoria SGA (ÁreaGlobal del Sistema) y de los procesos en segundoplano que se utilizan para gestionar una base dedatos, La identificación de una instancia se realizamediante los métodos específicos de cada sistemaoperativo, La instancia sólo podrá abrir y utilizaruna base de datos a la vez.
5
El usuario inicia una herramienta como SQL*Plus, o bien ejecuta una
aplicación que se haya desarrollado con una herramienta como Oracle
Forms. 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.
Conexión.- No es más que una ruta de comunicación entre un proceso de
usuario y Oracle Server. Se puede conectar 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.
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 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.6
Sesiones
Una sesión es una conexión específica de unusuario a Oracle Server. La sesión se iniciacuando Oracle Server valida al usuario, yfinaliza cuando el usuario se desconecta ocuando se produce una terminación anormal.Un usuario de base de datos determinadopuede realizar muchas sesiones simultáneas sidicho usuario se conecta desde distintasherramientas, aplicaciones o terminales almismo tiempo.
7
Una base de datos Oracle está formada por archivos del sistemaoperativo, también llamados archivos de base de datos, queproporcionan el almacenamiento físico real para la informaciónde la base de datos.
El objetivo general de una base de datos es el de almacenar yrecuperar la información relacionada, tiene una estructura lógicay una física. La estructura física de la base de datos es el juegode archivos del sistema operativo en la base de datos.
Consta de tres tipos de archivos.
Los archivos de datos que contienen los datos reales de la basede datos
Los archivos redo log que contienen un registro de los cambiosefectuados en la base.
Los archivos de control que contienen la información necesariapara mantener y verificar la integridad de la base.
8
Los archivos que no son de base de datos seutilizan para configurar la instancia, autenticar losusuarios con privilegios y recuperar la base dedatos
El archivo de parámetros define las característicasde una instancia Oracle.
El archivo de contraseñas autentica los usuarioscon privilegios para iniciar y cerrar una instanciaOracle.
Los archivos redo log archivados son copias offlinede los archivos redo log online que pueden sernecesarios para recuperarse de los fallos del mediofísico.
9
La estructura física incluye tres tipos de archivos:
Archivos de control
Archivos de datos
Archivos redo log online
La estructura de la memoria de Oracle estáformada por dos áreas de memoria llamadas:
SGA (Área Global del Sistema): Asignada aliniciar la instancia y componente fundamentalde una instancia Oracle
PGA (Área Global de Programas): Asignada aliniciar el proceso de servidor
10
El área SGA está formada por varias estructuras de la memoria:
– Conjunto Compartido
– Caché de Buffers de Base de Datos
– Buffer de Redo Log
– Otras estructuras (por ejemplo, gestión de bloqueos y bloqueosinternos, datos estadísticos)
Existen dos estructuras de la memoria adicionales que se puedenconfigurar desde el SGA:
– Conjunto Grande
– Conjunto Java
El área SGA también se llama área global compartida. Se utilizapara almacenar información de base de datos que compartenlos procesos de base de datos.
11
Esta área es dinámica, su tamaño definido por elparámetro SGA_MAX_SIZE, asignada y conseguimiento en gránulos por componentes del SGA
Unidad de Asignación
Un gránulo es una unidad de asignación dememoria virtual contigua. El tamaño de un gránulodepende del tamaño del SGA total estimado cuyocálculo se basa en el valor del parámetroSGA_MAX_SIZE.
• 4 MB si el tamaño del SGA estimado es < 128 MB
• 16 MB, en caso contrario
12
Se utiliza para almacenar:
– Las últimas sentencias SQL ejecutadas
– Las últimas definiciones de datos utilizadas
Se encuentra formado por dos estructuras de memoria clave
relacionadas con el rendimiento:
– Caché de Biblioteca
– Caché del Diccionario de Datos
Y su Tamaño está definido por el parámetro
SHARED_POOL_SIZE. 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.13
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
Library cache - Caché de Biblioteca.- Permite almacenar información acerca de las
sentencias SQL y PL/SQL utilizadas más recientemente, también permite compartir las
sentencias utilizadas con mayor frecuencia, esto se lo realiza por medio de un algoritmo
LRU. Está formado por dos estructuras:
– Área de SQL compartido
– Área de PL/SQL compartido
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.14
En este espacio de memoria se almacena el conjuntode las definiciones utilizadas más recientemente en labase de datos, dentro de ellas incluye informaciónacerca de archivos de base dedatos, tablas, índices, columnas, usuarios, privilegios yotros objetos de base de datos
Especificación del tamaño del diccionario de datos.-El tamaño total depende del tamaño del conjuntocompartido y lo gestiona de forma interna la base dedatos. Si la caché del diccionario de datos esdemasiado pequeña, la base de datos tiene queconsultar las tablas del diccionario de datos repetidasveces para obtener la información que necesita elservidor.
15
En este espacio de memoria se almacena copias de
bloques de datos que se han recuperado de archivos
de datos lo que permite grandes mejoras de
rendimiento al obtener y actualizar 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.
16
El tamaño de cada buffer de la caché de buffers de basede datos equivale al tamaño de un bloque Oracle, y loespecifica el parámetro DB_BLOCK_SIZE. La caché debuffers de base de datos está formada por dos subcachésindependientes para conjuntos de buffers y para múltiplestamaños de bloque. El parámetro DB_BLOCK_SIZEdetermina el tamaño del bloque primario, que se usa parael tablespace SYSTEM.
Hay tres parámetros que definen los tamaños de lascachés de buffers de base de datos:
DB_CACHE_SIZE:
DB_KEEP_CACHE_SIZE:
DB_RECYCLE_CACHE_SIZE:
17
La función Asesor de Caché de Buffers activa ydesactiva la recopilación de estadísticas parapredecir el comportamiento de los distintostamaños de caché. La información del Asesorde Caché de Buffers se recopila y se muestramediante la vista V$DB_CACHE_ADVICE.
La función Asesor de Caché de Buffers seactiva mediante el parámetro de inicializaciónDB_CACHE_ADVICE, que es un parámetrodinámico y se puede modificar con ALTERSYSTEM
18
El tamaño del buffer de redo log está definido por el parámetro de inicialización LOG_BUFFER.
Large pool - Conjunto Grande
Es un área opcional de memoria en el SGA que permite liberar al conjunto compartido de su carga, se utiliza para:
– Memoria de sesión (UGA) para el servidor compartido
– Procesos de servidor de E/S
– Operaciones de copia de seguridad y recuperación o RMAN
– Buffers de mensajes de ejecución en paralelo: PARALLEL_AUTOMATIC_TUNING se define como TRUE
El tamaño se lo define por LARGE_POOL_SIZE y se puede cambiar de tamaño de forma dinámica.
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.
19
Copia de Seguridad y Recuperación.
RMAN (Oracle Recovery Manager) utiliza el conjunto grande cuando se definen los parámetrosBACKUP_DISK_IO=n y BACKUP_TAPE_IO_SLAVE= TRUE.
Ejecución en Paralelo.
Si el parámetro PARALLEL_AUTOMATIC_TUNING se define en TRUE, se utiliza el conjunto grande.
Especificación del Tamaño del Conjunto Grande.
El tamaño del conjunto grande se especifica en bytes definidos por el parámetroLARGE_POOL_SIZE. Este parámetro se puede modificar dinámicamente con el comandoALTER 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 conjuntocompartido, que utiliza una lista LRU.
Conjunto Java
Requisitos de análisis de servicios para comandos Java, es necesario si se instala y se utilizaJava, su tamaño está definido por el parámetro JAVA_POOL_SIZE.
Área Global de Programas
Esta memoria está reservada para cada proceso de usuario que se conecte a una base de datosOracle.
20
El contenido de la memoria PGA varía en función de si lainstancia se ejecuta en una configuración de servidor dedicadoo de servidor compartido. Por regla general, la memoria PGAincluye los siguientes componentes:
Área SQL privada: Contiene datos, como información ligada yestructuras de memoria de tiempo de ejecución.
El área SQL privada de un cursor se divide en dos áreas:
Área persistente: Contiene información ligada y sólo se liberacuando se cierra el cursor.
Área de tiempo de ejecución: Creada como primer paso de unasolicitud de ejecución.
Para los comandos INSERT, UPDATE y DELETE, esta área selibera una vez ejecutada la sentencia. En el caso de lasconsultas, esta área se libera sólo cuando se han recuperadotodas las filas o se ha cancelado la consulta.
21
El contenido de la memoria PGA varía en función de si lainstancia se ejecuta en una configuración de servidordedicado o de servidor compartido. oracle se beneficia devarios tipos de procesos:
Procesos de usuario: Programa que solicita interaccióncon Oracle Server, donde se debe establecer primero unaconexión y que no interactúa directamente con OracleServer
Procesos de servidor: Son Programas que interactúandirectamente con Oracle Server, que cumplen lasllamadas generadas y devuelven resultados, que puedenser un servidor dedicado o compartido.
Procesos en segundo plano: Mantienen y fuerzan lasrelaciones entre las estructuras físicas y de memoria:
22
DBWn escribe así:
Se produce un punto de control
Los buffers sucios alcanzan el umbral
No hay ningún buffer libre
Se produce un timeout
Se realiza un solicitud de sondeo RAC
Tablespace OFFLINE
Tablespace READ ONLY
Tabla DROP o TRUNCATE
Tablespace BEGIN BACKUP
23
LGWR escribe:
En la validación
Si se llena a un tercio de su capacidad
Si hay 1 MB de redo
Cada tres segundos
Antes de que escriba DBWn
24
Responsabilidades:
Recuperación de instancias
› Aplica los cambios pendientes en los archivos
redo log online.
› Abre la base de datos para que acceda el
usuario.
› Deshace las transacciones no validadas.
Fusiona el espacio libre
Libera los segmentos temporales
25
Hace una limpieza cuando los procesos han
fallado:
Haciendo un rollback en las transacciones
Liberando los bloqueos
Liberando otros recursos
Reiniciando distribuidores interrumpidos
26
Responsable de:
Señalar a DBWn en los puntos de control
Actualizar las cabeceras de archivos de datos con informacióndel punto de control
Actualizar los archivos de control con información del punto decontrol
Los puntos de control se inician por los siguientes motivos:
Para garantizar que los bloques de datos modificados en lamemoria se escriben en el disco con frecuencia, de forma queno se pierdan en caso de que se produzca el fallo.
Para reducir el tiempo necesario de recuperación de unainstancia. Para la recuperación.
Para garantizar que todos los datos validados se han escrito enlos archivos de datos durante el cierre.
27
Proceso opcional en segundo plano
Archiva automáticamente archivos redo logonline si está definido el modo ARCHIVELOG
Protege el registro contra todos los cambiosrealizados en la base de datos
Archivado de los Archivos Redo LogOnline.-Una de las decisiones importantes quedebe tomar un DBA es si debe configurar labase de datos para que funcione en modoARCHIVELOGo en modo NOARCHIVELOG.
28
Modo ARCHIVELOG: En caso de que la base dedatos se configure para que se ejecute en modoARCHIVELOG, será necesario archivar los gruposinactivos de archivos redo log online llenos antesde que se puedan volver a utilizar de nuevo.Normalmente, se suele configurar una base dedatos de producción para que se ejecute en modoARCHIVELOG.
Estructura Lógica.
Establece el modo de uso del espacio físico de unabase de datos respetando la Jerarquía formada portablespaces, segmentos, extensiones y bloques.
29
Existe la siguiente jerarquía de estructuraslógicas:
Una base de datos Oracle contiene comomínimo un tablespace.
Un tablespace contiene uno o más segmentos.
Cada segmento está formado por extensiones.
Una extensión está formada por bloqueslógicos.
Un bloque es la unidad más pequeña para lasoperaciones de lectura y escritura.
30
• 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, está formado por uno o más archivos del sistema
operativo, que reciben el nombre de archivos de datos, puede tener
uno o más segmentos, se pueden poner en línea mientras se está
ejecutando la base de datos, pueden cambiar entre un estado de
lectura y escritura y de sólo lectura.
Excepto en el caso del tablespace SYSTEMo un tablespace con un
segmento de deshacer activo, los tablespaces se pueden poner
offline y dejar que la base de datos se siga ejecutando.
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.
31
Segmentos
Un segmento es el espacio asignado a una estructura dealmacenamiento lógica específica dentro de un tablespace, puedeestar formado por uno o más segmentos. Un segmento no puedeabarcar tablespaces; sin embargo, un segmento puede abarcarmúltiples archivos de datos que pertenezcan al mismotablespace, cada segmento está formado por una o más extensiones.
Extensiones
El espacio se asigna a un segmento mediante extensiones. Una omás extensiones componen un segmento, cuando se crea unsegmento, éste está formado, como mínimo, por una extensión, amedida que el segmento va creciendo, se le agregan extensiones, esun juego de bloques Oracle contiguos, no puede abarcar archivos dedatos y, por tanto, debe existir en un archivo de datos.
El DBA puede agregar extensiones a un segmento manualmente.
32
Oracle Server gestiona el espacio de almacenamientode los archivos de datos en unidades llamadas bloquesOracle o bloques de datos. Con el mayor nivel degranularidad posible, los datos de una base de datosOracle se almacenan en bloques de datos, los bloquesde datos Oracle son las unidades de almacenamientomás pequeñas que Oracle Server puede asignar, leer oescribir.
Un bloque de datos se corresponde con uno o másbloques del sistema operativo asignados desde unarchivo de datos existente. El tamaño de bloque dedatos estándar de cada base de datos Oracle loespecifica el parámetro de inicializaciónDB_BLOCK_SIZE cuando se crea la base de datos. Eltamaño del bloque de datos debería ser múltiplo deltamaño del bloque del sistema operativo para evitaroperaciones de E/S innecesarias.
33
34