Esquema Arquitectura Oracle

10
5/14/2018 EsquemaArquitecturaOracle-slidepdf.com http://slidepdf.com/reader/full/esquema-arquitectura-oracle 1/10  Esquema arquitectura Oracle. Alejandro Alonso Taratiel. 2º ASIR. Base de datos. Prof.: Santiago Blanco.

Transcript of Esquema Arquitectura Oracle

Page 1: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 1/10

 

Esquema arquitecturaOracle.

Alejandro Alonso Taratiel.2º ASIR.

Base de datos.Prof.: Santiago Blanco.

Page 2: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 2/10

Página - 1 - de 10

ÍNDICE

Esquema Oracle. ........................................................................................................... - 2 - Instancia Oracle. ....................................................................................................... - 3 - Estructuras de memoria. ........................................................................................... - 3 - Los procesos. ............................................................................................................ - 4 - Archivos. .................................................................................................................. - 5 - 

Proceso de una consulta SQL. ...................................................................................... - 7 - Introducción SQL. .................................................................................................... - 7 - Ciclo de una consulta SQL. ...................................................................................... - 7 - Fases de una consulta SQL. ...................................................................................... - 7 - 

Referencias. .................................................................................................................. - 9 - Imágenes. .................................................................................................................. - 9 - Texto. ........................................................................................................................ - 9 - 

Page 3: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 3/10

Bases de Datos. Alejandro Alonso Taratiel 21/03/2012

Página - 2 - de 10

Esquema Oracle.La Arquitectura de Oracle consiste de varios procesos corriendo en la máquina dondereside la instancia, más los espacios de memoria dedicados a ejecutar procesosespecíficos o al almacenaje de información de cada proceso y la base de datos físicapropiamente tal, con sus archivos de control, de datos y de transacciones.

[1] 

SMON (system monitor )DBWR (database writer )PMON ( process monitor )CKPT (checkpoint )LGWR (log writer )

ARCH (archiver )

Page 4: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 4/10

Página - 3 - de 10

Instancia Oracle.

Es un conjunto de estructuras de memoria y procesos que acceden a los archivos debases de datos. Se puede acceder con múltiples instancias a una misma base de datos

residiendo cada una de ellas en una máquina diferente, es la opción de servidoresparalelos de Oracle.

[2] 

Cuando el sistema de bases de datos Oracle se inicia realiza los siguientes pasos:  

Iniciar la instanciaOracle lee el archivo de parámetros y configura la instancia de acuerdo con ellos. Secrea el SGA y se activan los procesos de base.

Montar la base de datosSe prepara el sistema para su uso, cargando en RAM el diccionario de datos.

Abrir la base de datosSe abren los archivos y los usuarios tienen acceso a los datos.

La instancia Oracle se define a partir de sus parámetros que se definen en el archivoINIT.ORA, donde también se especifica el número de usuarios y los nombres dearchivos de control para la base de datos.

Estructuras de memoria.Sirve para almacenar los datos y el código ejecutable.Hay dos clases de memoria, una dedicada al trabajo de cada uno de los usuarios y otracompartida por los usuarios conectados llamada área global del sistema o SGA (systemglobal área), y ésta última se divide en 3 partes:

Page 5: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 5/10

Bases de Datos. Alejandro Alonso Taratiel 21/03/2012

Página - 4 - de 10

Fondo común compartido (Shared pool): En ella mantiene el diccionario de datos ylas áreas compartidas de las órdenes SQL que se solicitan para su procesamiento.

Área de memoria rápida (Database buffer cache): Donde mantiene los datos traídospor las órdenes SQL de los usuarios conectados a la base de datos.

Área de registros de rehacer (Redo log buffer): Aquí se registran los cambios hechosa la base de datos.Por cada sesión de usuario también se crea en memoria, un área específica llamada áreaglobal de programa o PGA ( program global area); esta área no se comparte con lasotras sesiones de usuario.

Los procesos.

Son lo que hacen que funcione el sistema de bases de datos y las tareas de cada usuario

conectado a la base de datos. Se ejecutan para permitir el acceso a los datos; se carganen memoria y son transparentes para los usuarios, y se clasifican en 3 grupos:

Los procesos de Base o de Soporte:

Los procesos de base (background), se encargan de traer datos desde y hacia la SGA;mejorando el desempeño al consolidar las tareas impartidas por todos los usuarios. Cadaproceso de base tiene su propia área de memoria. Tipos de base:

•  DBWR (Data-base writer): Maneja los “buffers” de memoria caché para quelos procesos del usuario siempre encuentren unos de ellos disponibles. Es unproceso obligatorio que además escribe los bloques de datos modificados por losusuarios, en los archivos de datos que componen la base de datos cuando elproceso LGWR le envía el mensaje de hacerlo.

•  LGWR (Log writer): Este proceso escribe datos desde la SGA a los archivos derehacer (redo log files) que sirven en caso de fallos en la instancia. Este procesoes obligatorio y es el que se encarga de escribir y leer en estos archivos. Elproceso de llenado de estos archivos es circular, antes de empezar a sobrescribiren uno de ellos, se marca un punto de verificación y LGWR envía la orden deescritura en los data-files al proceso DBWR.

•  LCKn, Lock (lock processes): El bloqueo es un proceso opcional. Efectúa losbloqueos entre instancias, en caso de ambientes con servidores paralelos.

•  CKPT (Check point): El punto de comprobación es un proceso opcional queocurre cuando los usuarios conectados a la base de datos, hacen solicitudes deexámenes de datos.

•  SMON (System monitor): Recupera el sistema ante un fallo de la instancia.

•  RECO (Recovery): Recupera ente los fallos, en una transacción en ambientesdistribuidos.

Page 6: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 6/10

Página - 5 - de 10

•  ARCH (Archive): Copia los registros de rehacer (redo log files) de la RAM enarchivos de datos que permiten la recuperación cuando se presentan fallos de losmedios magnéticos.

•  PMON (Process Monitor): Recupera ante un fallo de un proceso del usuario;

libera los recursos del proceso que falló.

Los procesos del Usuario:

Cuando un usuario se conecta a la base de datos, se crea un proceso de usuario que seencarga de ejecutar el código de aplicación del usuario y manejar el perfil del usuariocon sus variables de ambiente. Los procesos de usuario no se pueden comunicardirectamente con la base de datos, únicamente lo hacen a través de procesos servidores.

Los procesos Servidores

Ejecutan las órdenes SQL de los usuarios y llevan los datos al “data-base buffer cache”,para que los procesos del usuario puedan tener acceso a los datos. Se pueden tenerdistintas arquitecturas para trabajar en Oracle, según los tipos de servidores (dedicadoso multi-hilos).

Archivos.

Sirven para el almacenamiento físico, en disco, de la información de la base de datos, yse clasifican en 4 grupos:

•  Los archivos de datos (Datafiles):

Sirven para el almacenamiento físico de las tablas, índices o agrupamientos(clusters) y procedimientos. Estos archivos, son los únicos que contienen losdatos de los usuarios de la base de datos.

Las unidades lógicas más grandes manejadas por Oracle, para elalmacenamiento de los datos, son llamadas espacios de tablas (table-spaces) quele permiten manejar o controlar el espacio en los discos.

Se recomiendan varios espacios de tablas. Como mínimo, se debe tener unespacio de tablas del sistema, uno por cada aplicación, uno para los usuarios yotro para los índices.

El espacio de tablas SYSTEM se crea automáticamente cuando se crea una basede datos; ahí se crean los archivos de control y el diccionario de datos y toda lainformación de los procedimientos almacenados.

Los archivos de datos (data-files) almacenan los datos del usuario. Solo serequiere de uno para una base de datos, pero los archivos de datos son fijos entamaño e inalterables; cuando no haya espacio se deben adicionar más para

incrementar el espacio de almacenamiento.

Page 7: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 7/10

Bases de Datos. Alejandro Alonso Taratiel 21/03/2012

Página - 6 - de 10

* Cuando se agota el espacio en un DBA:

+ Adicionará un nuevo archivo de datos, con la orden ALTERTABLESPACE.+ Creará un nuevo espacio de tablas.

El DBA puede crear varios espacios de tablas (table-spaces) en discosseparados para planear el crecimiento de la base de datos y hacer unamejor administración de la base de datos.

Un objeto de datos es una estructura lógica que puede ser una tabla, unarchivo de índice, uno temporal, uno de deshacer o un clúster. Estosobjetos se almacenan en segmentos que se componen de extensiones(extents).

Una extensión está hecha de bloques que puede tener un número

determinado de bytes y que el DBA especifica, cuando se crea la base dedatos. El tamaño del bloque depende del S.O. y no puede ser menor alque éste maneja.

•  Los archivos de control (Control Files): 

Tienen la descripción física y dirección de los archivos de la base de datos y delos archivos de rehacer (redo log files), para el arranque correcto de la base dedatos. En ellos se especifican cuáles (data-files) conforman la base de datos parapoder tener acceso a los datos o para poder recuperar la base de datos ante unfallo. Se crean automáticamente cuando se da una orden CREATE DATABASE yno son editables, se actualizan automáticamente.

•  Los archivos de rehacer (Redo Log Files): 

Tienen los cambios hechos a la base de datos para la recuperación ante fallos opara el manejo de las transacciones, también tienen los valores antes de unatransacción, la orden ejecutada y, opcionalmente, el valor después de latransacción.

Sirven de respaldo de los datos en la memoria RAM. Este conjunto de archivos

debe estar formado por dos grupos como mínimo y se recomienda que cadagrupo esté almacenado en discos separados. El DBMS sobrescribe sobre lainformación más vieja, cuando se agota el espacio en estos grupos de archivos.

•  Los archivos fuera de línea (Archived Files): 

Son archivos opcionales donde se guarda información vieja de los archivos derehacer, útiles para los respaldos de la base de datos.

Page 8: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 8/10

Página - 7 - de 10

Proceso de una consulta SQL.

Introducción SQL.El SQL es el lenguaje estándar de definición, manipulación y control de bases de datosrelacionales. Es un lenguaje declarativo: sólo hay que indicar qué se quiere hacer. Encambio, en los lenguajes procedimentales es necesario especificar cómo hay que hacercualquier acción sobre la base de datos.

Ciclo de una consulta SQL.

Éste diagrama representa el ciclo de vida de una consulta de SQL Server, desde el

momento en que la consulta llega al servidor hasta que se retorna el resultado al cliente,pasando por las siguientes fases: 

[3]

Fases de una consulta SQL.

•  Parseado: Esta fase evalúa la sentencia T-SQL que se pretende ejecutar y secomprueba que no tenga errores de sintaxis, que la semántica sea correcta.

Como salida del parser, se obtiene una versión de la consulta 'limpia' ynormalizada, que describe, qué datos quiere obtener el usuario.

Los datos que quiere obtener el usuario ya está decidido y comprendido por SQLServer; ahora necesita el cómo obtener los datos, que viene definido por el Plan 

de Ejecución, fundamental en los escenarios de optimización, sobre todo desdeun punto de vista del desarrollo.

El plan de ejecución es una especie de lista que describirá paso a paso comoobtener la información solicitada: que tablas iremos a buscar, que índicesemplearemos, como uniremos los datos de unas tablas con otras, etc.

Page 9: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 9/10

Bases de Datos. Alejandro Alonso Taratiel 21/03/2012

Página - 8 - de 10

En éste punto se comprueba si esa consulta ya se ejecutó anteriormente y si sealmacenó un plan de ejecución para ella. Si es así, SQL Server ejecutadirectamente los pasos dictados por ese plan de ejecución y devuelve losresultados al cliente.

Si no hubiera un plan de ejecución cacheado, pasaríamos a la siguiente etapa.

•  Compilación/Optimización: En SQL le pedimos a la máquina unos resultados,pero la manera de obtener estos resultados es cosa del servidor. Si va a iterar portodos los elementos de la tabla, si va a usar un índice u otro, o ninguno, siprimero va a filtrar por nacionalidad o por edad, son decisiones que SQL Servertoma por nosotros.

SQL Server compila muchas veces cada consulta, generando con cadacompilación un plan de ejecución. Al final, el compilador se decidirá por el máseficiente de los planes generados, y pasará a la siguiente etapa.

SQL Server sabe cual es el plan mas eficiente, porque los planes de ejecuciónestiman determinados parámetros, cómo el número de filas que va a devolvercada operación, el coste estimado de CPU, lecturas y escrituras estimadas, etc.para cada una de las operaciones de lo componen.

Sumando las estimaciones puede obtener un índice que le sirve para identificarque planes son mejores que otros, así la elección se reduce a seleccionar el plancon el índice más bajo.

  Almacenamiento del Plan de Ejecución:Cuando se decide por el plan mas eficiente, se procede a almacenar este plan deejecución en una caché de planes de ejecución para que la próxima vez que selance la consulta no se tenga que recompilar.

Esta caché se almacena en una zona especial del Buffer Pool de SQL Server, yes un recurso finito. Evitar tener demasiados planes de ejecución cacheados paraque no se nos sature y SQL tenga que eliminar planes 'validos' para hacer sitio aplanes de ejecución nuevos. 

Page 10: Esquema Arquitectura Oracle

5/14/2018 Esquema Arquitectura Oracle - slidepdf.com

http://slidepdf.com/reader/full/esquema-arquitectura-oracle 10/10

Página - 9 - de 10

Referencias.

Imágenes.[1]: http://dc102.4shared.com/doc/L8IsJ0Li/preview.html 

[2]: http://dc102.4shared.com/doc/L8IsJ0Li/preview.html 

[3]: http://geeks.ms/blogs/palvarez/archive/2008/05/18/these-days-un-d-237-a-en-la-vida-de-una-consulta.aspx 

Texto.

http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html 

http://www.geocities.ws/vidalreyna/ORACLE.html 

http://dc102.4shared.com/doc/L8IsJ0Li/preview.html