32
Por : Mauro Patiño 16/01/2011 ADMINISTRACIÓN DE BASE DE DATOS Semana I ARQUITECTURA BD

M patino abds1

Embed Size (px)

Citation preview

Page 1: M patino abds1

Por : Mauro Patiño16/01/2011

ADMINISTRACIÓN DE BASE DE DATOS Semana I

ARQUITECTURA BD

Page 2: M patino abds1

Administración de Base de Datos CONTENIDO Introducción Tareas del Administrador de la Base de Datos Visión General de los Componentes Principales Establecimiento de una Conexión y Creación de una

Sesión Base de Datos Oracle. Estructura Física. Estructura Lógica.

Page 3: M patino abds1

Tareas del Administrador de la Base de Datos

Los administradores de bases de datos son los responsables de mantener Oracle Server con el fin de que pueda procesar las solicitudes de usuario. Entre las actividades principales que un DBA tiene a cargo están:

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

Page 4: M patino abds1

Visión General de los Componentes Principales 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 .

Instancia Oracle.- Una instancia Oracle es un medio de acceso a una base de datos Oracle por la que siempre abre una única base de datos, la cual está formada por estructuras de procesos en segundo plano y de memoria.

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.

Page 5: M patino abds1

Visión General de los Componentes Principales 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

Page 6: M patino abds1

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. Conexión.- Una conexión no es más que una ruta de comunicación entre un proceso de usuario y Oracle Server .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.

Page 7: M patino abds1

Base de Datos Oracle

Page 8: M patino abds1

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. 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.

Page 9: M patino abds1

Estructura Física

La estructura física incluye tres tipos de archivos: Archivos de control Archivos de datos Archivos redo log online

Page 10: M patino abds1

Estructura físicaEstructura de la memoria

La estructura de la memoria de Oracle está formada por dos áreas de memoria llamadas: SGA (Área Global del Sistema): Asignada al iniciar la

instancia y componente fundamental de una instancia Oracle PGA (Área Global de Programas): Asignada al iniciar el

proceso de servidor.

Page 11: M patino abds1

Estructura física

Área Global del Sistema 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 bloqueos internos, datos estadísticos).

Page 12: M patino abds1

Estructura física

SGA DinámicaA 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.

Page 13: M patino abds1

Estructura física Área Global del Sistema.- Esta área es dinámica, su tamaño

definido por el parámetro SGA_MAX_SIZE, asignada y con seguimiento en gránulos por componentes del SGA

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.

Shared pool - Conjunto compartido .- Se utiliza para almacenar: Las últimas sentencias SQL ejecutadas y las últimas definiciones de datos utilizadas. Se encuentra formado por dos estructuras de memoria clave relacionadas con el rendimiento: Caché de Biblioteca y Caché del Diccionario de Datos; Y su Tamaño está definido por el parámetro SHARED_POOL_SIZE

Page 14: M patino abds1

Estructura física 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 (utilizado menos recientemente).

Data Diccionary cache - Caché del Diccionario de Datos.- En este espacio de memoria se almacena el conjunto de las definiciones utilizadas más recientemente en la base de datos, dentro de ellas incluye información acerca de archivos de base de datos, tablas, índices, columnas, usuarios, privilegios y otros objetos de base de datos. La caché del diccionario de datos también se llama caché del diccionario o caché de filas.

Database buffer cache - Caché de Buffers de Base de Datos. 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, esto lo realiza gestionado un algoritmo LRU, el tamaño del bloque primario está determinado por DB_BLOCK_SIZE

Page 15: M patino abds1

Estructura física Database buffer cache - Caché de Buffers de Base de Datos.-

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, esto lo realiza gestionado un algoritmo LRU, el tamaño del bloque primario está determinado por DB_BLOCK_SIZE.

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.

Page 16: M patino abds1

Estructura física Redo log buffer - Buffer de Redo Log.- En este espacio se registra todos

los cambios realizados en los bloques de datos de la base de datos, su finalidad principal es la recuperación, los cambios registrados dentro de éste se llaman registros de redo, los registros de redo contienen información que permite reconstruir o rehacer cambios, el tamaño está definido por LOG_BUFFER. 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, ALTERo DROP.

Page 17: M patino abds1

Estructura física 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

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.

Page 18: M patino abds1

Estructura física

Área Global de Programas Esta memoria está reservada para cada proceso de usuario que se conecte a una base de datos Oracle, se asigna cuando se crea un proceso y se libera cuando se termina un proceso, sólo la utiliza un proceso.

Page 19: M patino abds1

Estructura físicaContenido 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. - 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.

Page 20: M patino abds1

Estructura física 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:

Page 21: M patino abds1

Estructura físicaEstructura de Procesos : Oracle se beneficia de varios tipos de procesos: Procesos de usuario: Se inician cuando un usuario de base

de datos solicita una conexión a Oracle Server Procesos de servidor: Se conectan a la instancia Oracle y

se inician cuando un usuario establece una sesión. Procesos en segundo plano: Se inician al iniciar una

instancia Oracle

Page 22: M patino abds1

Estructura físicaProcesos de Usuario

Programa que solicita interacción con Oracle Server, donde se debe establecer primero una conexión y que no interactúa directamente con Oracle Server.

Page 23: M patino abds1

Estructura física

Procesos de Servidor Son Programas que interactúan directamente con Oracle Server, que cumplen las llamadas generadas y devuelven resultados, que pueden ser un servidor dedicado o compartido.

Page 24: M patino abds1

Estructura físicaProcesos en Segundo Plano.

Mantienen y fuerzan las relaciones entre las estructuras físicas y de memoria:

Procesos en segundo plano obligatorios: DBWn PMON CKPT LGWR SMON La arquitectura Oracle tiene cinco procesos en segundo plano

obligatorios, que se analizan 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.

Page 25: M patino abds1

Estructura físicaDBWn (Escritor de Base de Datos) 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

Page 26: M patino abds1

Estructura físicaLGWR (Escritura de Logs) 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 LGWR realiza escrituras secuenciales

desde el buffer de redo log al archivo redo log .

LGWR también puede llamar al proceso DBWn para escribir en los archivos de datos.

Page 27: M patino abds1

Estructura físicaSMON (Monitor del Sistema) 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

Page 28: M patino abds1

Estructura físicaSMON (Monitor del Sistema) 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

Page 29: M patino abds1

Estructura físicaPMON (Monitor de Procesos) Hace una limpieza cuando los procesos han fallado:

Haciendo un rollback en las transacciones Liberando los bloqueos Liberando otros recursos Reiniciando distribuidores interrumpidos

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

Page 30: M patino abds1

Estructura físicaCKPT (Punto de Control) Responsable de:

Señalar a DBWn en los puntos de control Actualizar las cabeceras de archivos de datos con información del punto de

control Actualizar los archivos de control con información del 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.

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.

Page 31: M patino abds1

Estructura LógicaEstablece el modo de uso del espacio físico de una base de datos respetando la Jerarquía formada por tablespaces, segmentos, extensiones y bloques .

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.

Page 32: M patino abds1

URL: