Configuracion de Espacio en Oracle

64
Unidad 3. “Configuración y Administración del espacio en disco” 1 1. ESTRUCTURA LÓGICA DE ALMACENAMIENTO Estructura de una BD Oracle. Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente. • La estructura física se corresponde a los ficheros del sistema operativo: de datos (datafiles), de redo log y de control (controlfiles). • La estructura lógica está formada por los tablespace y los objetos de un esquema de BD (tablas, vistas, índices,...). Estructura lógica. Una BD se divide en unidades de almacenamiento lógicas: Tablespaces. Contienen distintos objetos relacionados (p.ej. todas las tablas de una aplicación).

Transcript of Configuracion de Espacio en Oracle

Unidad 3. Configuracin y Administracin del espacio en disco

44

1. ESTRUCTURA LGICA DE ALMACENAMIENTO Estructura de una BD Oracle. Una BD Oracle tiene una estructura fsica y una estructura lgica que se mantienen separadamente. La estructura fsica se corresponde a los ficheros del sistema operativo: de datos (datafiles), de redo log y de control (controlfiles). La estructura lgica est formada por los tablespace y los objetos de un esquema de BD (tablas, vistas, ndices,...).

Estructura lgica. Una BD se divide en unidades de almacenamiento lgicas: Tablespaces. Contienen distintos objetos relacionados (p.ej. todas las tablas de una aplicacin).

Figura 1. Estructura lgica del gestor.

Cada BD estar formada por uno o ms tablespaces (al menos existe el tablespace SYSTEM catlogo del sistema). Cada tablespace se corresponde con uno o ms ficheros de datos. Objetos: tablas, vistas, ndices asociados a una tabla, clsteres,... Oracle define esquema como la coleccin de objetos o estructuras lgicas que corresponden directamente a los datos almacenados, y crea un nuevo esquema por cada usuario que crea objetos en la base de datos. No hay ninguna relacin directa entre tablespace y esquema, objetos del mismo esquema pueden estar en diferentes tablespaces y un mismo tablespace puede almacenar distintos esquemas.

Figura 2. Fichero de datos del sistema.El control del uso del espacio del disco se obtiene mediante las estructuras lgicas de almacenamiento: bloque de datos, extensin y segmento. El nivel ms pequeo de granularidad es el del bloque de datos: nmero especfico de bytes contiguos de espacio fsico en el disco. (Tamao mnimo de 2K, el bloque fsico del disco y que depende el sistema operativo no tiene por qu coincidir con ste). El siguiente nivel es el de extensin, que es un nmero especfico de bloques de datos contiguos en el disco. Por ltimo el segmento es un conjunto de extensiones utilizadas para almacenar alguna estructura lgica. Tendremos segmentos de datos para tablas o clster, segmentos de ndices para ndices, segmentos de rollback para poder deshacer / rehacer cambios por transacciones y segmentos temporales.Hay varios tipos de sentencias en las que Oracle se ve en la obligacin de utilizar los segmentos temporales: ordenaciones. SELECT ... ORDER BY... CREATE INDEX. SELECT ... GROUP BY... SELECT ... UNION ... SELECT DISTINCT ... SELECT INSERSEC ... SELECT ... MINUS ...Oracle va incrementando el espacio para los segmentos mediante extensiones. Cuando una extensin est llena y necesita ms espacio el sistema busca otra extensin, que podr estar o no estar contigua a la anterior en el disco (depender simplemente del estado de ste).2. DEFINICIN DE ESPACIO DE ALMACENAMIENTO

Concepto de Tablespace (espacio de tablas)Una base de datos se divide en unidades lgicas denominadas TABLESPACES. Un tablespace no es un fichero fsico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de almacenamiento que se aplican a los objetos (tablas, secuencias) que se van a crear en la base de datos bajo el tablespace indicado (tablas, secuencias). Un objeto en base de datos debe estar almacenado obligatoriamente dentro de un tablespace.

Las propiedades que se asocian a un tablespace son: Localizacin de los ficheros de datos. Especificacin de mximas cuotas de consumo de disco. Control de la disponibilidad de los datos (en lnea o fuera de lnea). Backup de datos.Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.

Figura 3. Ejemplo del Tablespace.En este esquema podemos ver que, por ejemplo, la tabla ARTCULO se almacena dentro del tablespace A, y que por lo tanto tendr todas las propiedades del tablespace A que pueden ser: Sus ficheros de datos estn en $ORACLE_HOME/datos/datos_tablespace_A.

Los objetos no pueden ocupar ms de 10Mb de espacio de base de datos. En cualquier momento se puede poner fuera de lnea todos los objetos de un cierto tablespace. -Se pueden hacer copiar de seguridad slo de ciertos tablespaces.Si nos fijamos, se puede apreciar que es posible tener una tabla en un tablespace, y los ndices de esa tabla en otro. Esto es debido a que los ndices no son ms que objetos independientes dentro de la base de datos, como lo son las tablas. Y al ser objetos independientes, pueden ir en tablespaces independientes. El tablespace SYSTEM es uno de los que se crear por defecto en todas las bases de datos Oracle. En l se almacenan todos los datos de sistema, el catlogo y todo el cdigo fuente y compilado de procedimientos PL/SQL. Tambin es posible utilizar el mismo tablespace para guardar datos de usuario. En el esquema tambin vemos que hay un tablespace Temporal (en gris oscuro). Este representa las propiedades que tendrn los objetos que la base de datos cree temporalmente para sus clculos internos (normalmente para ordenaciones y agrupaciones). Su creacin difiere en una de sus clusulas de creacin. El tablespace RO (en gris claro) difiere de los dems en que es de solo lectura (Read Only), y que por lo tanto todos los objetos en l contenidos pueden recibir rdenes de consulta de datos, pero no de modificacin de datos. Estos puede residir en soportes de slo lectura, como pueden ser CDROMs, DVDs, etc. Cuando se crea un tablespace, ste se crea de lectura/escritura. Despus se puede modificar para que sea de solo lectura. Un tablespace puede estar en lnea o fuera de ella (Online o OffLine), esto es que todos los objetos contenidos en l estn a disposicin de los usuarios o estn inhabilitados para restringir su uso. Cualquier objeto almacenado dentro de un tablespace no podr ser accedido si este est fuera de lnea.

Concepto de Datafile (fichero de datos)Undatafilees la representacin fsica de un tablespace. Son los "ficheros de datos" donde se almacena la informacin fsicamente. Un datafile puede tener cualquier nombre y extensin (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro, aunque su localizacin tpica suele ser $ORACLE_HOME/Database. Undatafiletiene un tamao predefinido en su creacin (por ejemplo 100Mb) y este puede ser alterado en cualquier momento. Cuando creemos undatafile, este ocupar tanto espacio en disco como hayamos indicado en su creacin, aunque internamente est vaco. Oracle hace esto para reservar espacio continuo en disco y evitar as la fragmentacin. Conforme se vayan creando objetos en ese tablespace, se ir ocupando el espacio que cre inicialmente. Undatafileest asociado a un solo tablespace y, a su vez, un tablespace est asociado a uno o varios datafiles. Es decir, la relacin lgica entre tablespaces y datafiles es de 1-N, maestro-detalle.

FIGURA 4. Esquema fsico de cmo est divido Tablespace.En el esquema podemos ver como el Tablespace A est compuesto (fsicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA y DATOS_3.ORA). Estos tres datafiles son los ficheros fsicos que soportan los objetos contenidos dentro del tablespace A. Aunque siempre se dice que los objetos estn dentro del tablespace, en realidad las tablas estn dentro del datafile, pero tienen las propiedades asociadas al tablespace.Cada uno de los datafiles utilizados est ocupando su tamao en disco (50 Mb los dos primeros y 25 Mb el ltimo) aunque en realidad slo contengan dos objetos y estos objetos no llenen el espacio que est asignado para los datafiles. Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si est activa, se encarga de que el datafile crezca automticamente (segn un tamao indicado) cada vez que se necesite espacio y no exista. Al igual que los tablespaces, los datafiles tambin pueden estar en lnea o fuera de ella.

Concepto de Segment (segmento, trozo, seccin)Un segment es aquel espacio reservado por la base de datos, dentro de un datafile, para ser utilizado por un solo objeto. As una tabla (o cualquier otro objeto) est dentro de su segmento, y nunca podr salir de l, ya que si la tabla crece, el segmento tambin crece con ella. Fsicamente, todo objeto en base de datos no es ms que un segmento (segmento, trozo, seccin) dentro de un datafile. Se puede decir que, un segmento es a un objeto de base de datos, lo que un datafile a un tablespace: el segmento es la representacin fsica del objeto en base de datos (el objeto no es ms que una definicin lgica).

Figura 5. Representacin de los segmentos como objetos en ORACLE.

Podemos ver cmo el espacio que realmente se ocupa dentro del datafile es el segment y que cada segmento pertenece a un objeto.

Existen cuatro tipos de segmentos (principalmente): Segmentos de TABLE: aquellos que contienen tablas Segmentos de INDEX: aquellos que contienen ndices Segmentos de ROLLBACK: aquellos se usan para almacenar informacin de la transaccin activa. Segmentos TEMPORALES: aquellos que se usan para realizar operaciones temporales que no pueden realizarse en memoria, tales como ordenaciones o agrupaciones de conjuntos grandes de datos.

Concepto de Extent (extensin)Para cualquier objeto de base de datos que tenga cierta ocupacin en disco, es decir, cualquier objeto que tenga un segment relacionado, existe el concepto deextent. Extent es un espacio de disco que se reserva de una sola vez, un segmento que se reserva en un momento determinado de tiempo. El concepto de extent es un concepto fsico, unos estn separados de otros dentro del disco. Ya dijimos que todo objeto tiene su segmento asociado, pero lo que no dijimos es que este segmento, a su vez, se compone de distintas extensiones. Un segmento, puede ser reservado de una sola vez (10 Mb de golpe), o de varias veces (5 Mb hoy y 5 Mb maana). Cada una de las veces que se reserva espacio se denomina extensin.

FIGURA 6. Reservaciones de espacio.

En el esquema vemos como el objeto (tabla) FACTURA tiene un segmento en el datafile A-1, y este segmento est compuesto de 3 extensiones. Una de estas extensiones tiene un color distinto. Esto es porque existen dos tipos de extensiones:

INITIAL (extensiones iniciales): estas son las extensiones que se reservan durante la creacin del objeto. Una vez que un objeto est creado, no se puede modificar su extensin inicial.

NEXT (siguientes o subsiguientes extensiones): toda extensin reservada despus de la creacin del objeto. Si el INITIAL EXTENT de una tabla est llena y se est intentando insertar ms filas, se intentar crear un NEXT EXTENT (siempre y cuando el datafile tenga espacio libre y tengamos cuota de ocupacin suficiente).

Sabiendo que las extensiones se crean en momentos distintos de tiempo, es lgico pensar que unas extensiones pueden estar fragmentadas de otras. Un objeto de base de datos no reside todo junto dentro del bloque, sino que residir en tantos bloque como extensiones tenga. Por eso es crtico definir un buen tamao de extensin inicial, ya que, si es lo suficientemente grande, el objeto nunca estar fragmentado. Si el objeto tiene muchas extensiones y stas estn muy separadas en disco, las consultas pueden retardarse considerablemente, ya que las cabezas lectoras tienes que dar saltos constantemente.

El tamao de las extensiones (tanto las INITIAL como las NEXT), se definen durante la creacin del objeto y no puede ser modificado despus de la creacin. Oracle recomienda que el tamao del INITIAL EXTENT sea igual al tamao del NEXT EXTENT. La mejor solucin es calcular el tamao que tendr el objeto (tabla o ndice), multiplicando el tamao de cada fila por una estimacin del nmero de filas.

Cuando hemos hecho este clculo, debemos utilizar este tamao como extensin INITIAL y NEXT, y tendremos prcticamente la certeza de que no se va a producir fragmentacin en ese objeto. En caso de detectar ms de 10 extensiones en un objeto (consultando el catlogo de Oracle, como veremos), debemos recrear el objeto desde cero (aplicando el clculo anterior) e importar de nuevo los datos. Ciertas operaciones, necesitan de espacio en disco para poder realizarse. El espacio reservado se denomina segmentos temporales. Se pueden crear segmentos temporales cuando:

Se crea un ndice Se utiliza ORDER BY, DISTINTC o GROUP BY en un SELECT. Se utilizan los operadores UNION, INTERSECT o MINUS. Se utilizan joins entre tablas. Se utilizan subconsultas.Concepto de Data block (bloque de datos)

Undata blockes el ltimo eslabn dentro de la cadena de almacenamiento. El concepto deData blockes un concepto fsico, ya que representa la mnima unidad de almacenamiento que es capaz de manejar Oracle. Igual que la mnima unidad de almacenamiento de un disco duro es la unidad de asignacin, la mnima unidad de almacenamiento de Oracle es eldata block.

En un disco duro no es posible que un fichero pequeo ocupe menos de lo que indique la unidad de asignacin, as si la unidad de asignacin es de 4 Kb, un fichero que ocupe 1 Kb, en realidad ocupa 4 Kb. Siguiendo con la cadena, cada segmento (o cada extensin) se almacena en uno o varios bloques de datos, dependiendo del tamao definido para el extensin, y del tamao definido para eldata block.

Figura 7. Almacenamiento en bloques de datos.(*) Espacio ocupado en el data block por la primera NEXT EXTENSION. (#) Espacio ocupado en unidades de asignacin del sistema operativo por los data blocks anteriores. El esquema muestra toda la cadena de almacenamiento de Oracle. Desde el nivel ms fsico al ms lgico: Unidades de asignacin del sistema operativo (El ms fsico. No depende de Oracle) Data blocks de Oracle Extents Segments DataFiles Tablespaces (El ms lgico)El tamao de las unidades de asignacin del sistema operativo se define durante el particionado del disco duro (FDISK, FIPS), y el espacio de los data blocks de Oracle se define durante la instalacin y no puede ser cambiado. Como es lgico, el tamao de un data block tiene que ser mltiplo del tamao de una unidad de asignacin, es decir, si cada unidad de asignacin ocupa 4 K, los data blocks pueden ser de 4K, 8K, 12K para que en el sistema operativo ocupen 1, 2, 3 unidades de asignacin.

Figura 8. Unidades de asignacin en los bloques de datos.Estructuras de memoria

Todas las estructuras que hemos visto se refieren a cmo se almacenan los datos en el disco. Sin embargo, y como es lgico, Oracle tambin utiliza la memoria del servidor para su funcionamiento. Oracle utiliza dos tipos de memoria: Memoria local y privada para cada uno de los procesos: PGA (Process Global Area o Program Global Area). Memoria comn y compartida por todos los procesos SGA (System Global Area o Shared Global Area).Cada vez que se conecta un cliente al servidor, se ejecuta un subproceso que atender sus peticiones (a travs delforken Unix o con CreateThread en el mundo Windows), y este subproceso crear un nuevo bloque de memoria de tipo PGA. El tamao de este bloque de memoria depender del sistema operativo, y permanece invariable, aunque se puede configurar cambiando el valor de la variable SORT_AREA_SIZE del archivo de inicializacin INIT.ORA.Por cada instancia de base de datos, tendremos una zona de memoria global, el SGA, donde se almacenan aquellos datos y estructuras que deben se compartidos entre distintos procesos de la base de datos, como los procesos propios de Oracle y cada uno de los subprocesos que gestionan la conexin. El tamao del SGA es uno de los puntos ms crticos a la hora de mejorar el rendimiento de una base de datos, ya que, cuanto mayor memoria se reserve (mientras no sea memoria virtual), ms rpidas se realizarn ciertas operaciones. Por ejemplo, las ordenaciones (una de las operaciones que ms rpido deben hacerse) se realizan en el SGA si hay espacio suficiente. En caso contrario, se realizarn directamente en el disco, utilizando segmentos temporales.

El SGA se divide en cuatro grandes zonas:

Database buffer cache:almacena los bloques que se han ledo de los datafiles. Cada vez que es necesario acceder a un bloque, se busca el bloque en esta zona, y en caso de no existir, se lee de nuevo del datafile correspondiente. Cuantos ms bloques quepan en esta zona de memoria, mejor ser el rendimiento.

SQL Area:es la zona de memoria se almacenan compiladas las ltimas sentencias SQL (y bloques PL/SQL) ejecutadas. Adems se almacenan las variables acopladas (bind), el rbol de parsing, los buffer de ejecucin y el plan de ejecucin. Es importante que siempre que se utilice la misma sentencia, sea exactamente igual, para poder aprovechar sentencias previas almacenadas en el SQL Area. Es decir, las siguientes sentencias:SELECT * FROM TABLASELECT * FROM TABLA SELECT * FROM TABLA SELECT * FROM TABLA

Se consideran distintas y no se aprovecha el SQL Area. Debe coincidir el texto exactamente, considerando maysculas y minsculas, espacios, retornos de carro, nombre de parmetros, etc. Esto es debido a que se buscan dentro del SQL Area utilizando un hash de la sentencia, y un simple espacio (o cambiar una letra a maysculas) hace que el hash resultante sea distinto, por lo que no encontrar la sentencia dentro del SQL Area. Cuanto mayor sea el espacio del SQL Area, se realizarn menos compilaciones, planes de ejecucin y anlisis lxicos, por lo que la ejecucin de las consultas ser ms rpida.

Redo cache:almacena los registros de redo de las ltimas operaciones realizadas. Estos registros se almacenan en los archivos de redo, que sirven para recomponer la base de datos en caso de error.

Dictionary cache:almacena datos del diccionario de Oracle, para utilizarlos en los planes de ejecucin, optimizacin de consultas, etc. Cuantos ms datos quepan en esta zona, mayor probabilidad habr de que el dato que necesitamos ya est en memoria, y no sea necesario acceder a las tablas del diccionario para leerlo.

Archivos de inicializacinAdems de estructuras de disco y de memoria, un servidor Oracle necesita ciertos archivos para poder ejecutarse. Estos archivos se establecen durante la creacin de la base de datos, y se consultarn cada vez que se arranque la base de datos, por lo que deben estar disponibles. Bsicamente podemos diferencias los tipos de archivos: Control files:son archivos de control que se consultan cada vez que se arranca la base de datos. Indica datos como la localizacin de los datafiles, nombre de la base de datos.

Init file:es el archivo que contiene el parmetro de inicio de la base de datos (tamao del bloque, tamao del SGA, etc.)). Normalmente tiene el nombre INIT.ORA.

Redo logs:estos archivos contienen un historial de todas las instrucciones que han sido lanzadas a la base de datos, para poder recuperarla en caso de fallo. No se utilizan durante la inicializacin, sino durante toda la ejecucin de la base de datos.

3. DEFINICIN Y CREACIN DEL ESPACIO ASIGNADO PARA CADA BASE DE DATOSCreacin de una nueva cuenta de usuario.

Cree un usuario de base de datos con la sentencia CREATE USER. Para crear un usuario, debe tener el privilegio del sistema CREATE USER. Debido a que es un privilegio de gran alcance, un administrador de base de datos o administrador de seguridad suele ser el nico usuario que tiene el privilegio CREATE sistema USUARIO.Ejemplo: Creacin de una cuenta de usuario con los privilegios CREATE SESSION

CREATE USER jward IDENTIFIED BY password DEFAULT TABLESPACE data_ts QUOTA 100M ON test_ts QUOTA 500K ON data_ts TEMPORARY TABLESPACE temp_ts PROFILE clerk;GRANT CREATE SESSION TO jward;

Un usuario recin creado no se puede conectar a la base de datos hasta que se le conceda al usuario los privilegios del sistema CREATE SESSION. As, inmediatamente despus de crear la cuenta de usuario, use la instruccin SQL GRANT para otorgar al usuario estos privilegios. Si el usuario debe acceder a Oracle Enterprise Manager, tambin se debe otorgar al usuario el privilegio SELECT ANY DICTIONARY.

Especificar un nombre de usuario.

Dentro de cada base de datos, el nombre de usuario debe ser nico con respecto a otros nombres de usuario y funciones. El usuario y el esquema no pueden tener el mismo nombre. Adems, cada usuario tiene un esquema asociado. Dentro de un esquema, cada objeto de esquema debe tener un nombre nico. A continuacin, el texto en negrita se muestra cmo crear el nombre de usuario.El usuario Jward se almacena en la base de datos con letras maysculas. Por ejemplo:CREATE USER jward IDENTIFIED BY password DEFAULT TABLESPACE data_ts QUOTA 100M ON test_ts QUOTA 500K ON data_ts TEMPORARY TABLESPACE temp_ts PROFILE clerk CONTAINER = CURRENT;SELECT USERNAME FROM ALL_USERS;

Asignacin de una contrasea al usuario.El nuevo usuario debe autenticarse utilizando la base de datos. En este caso, el usuario que se conecta debe proporcionar la contrasea correcta a la base de datos para conectar con xito. Para especificar una contrasea para el usuario, utilice la clusula IDENTIFIED BY en la sentencia CREATE USER.CREATE USER jward IDENTIFIED BY password DEFAULT TABLESPACE data_ts QUOTA 100M ON test_ts QUOTA 500K ON data_ts TEMPORARY TABLESPACE temp_ts PROFILE clerk;Asignacin de un espacio de tabla predeterminado del usuario.Cada usuario debe tener un espacio de tabla por defecto. Cuando se crea un objeto esquema en el esquema del usuario y la declaracin DDL no especifica un espacio de tablas para contener el objeto, Oracle Database almacena el objeto en el espacio de tablas de usuario por defecto. La configuracin predeterminada para los espacios de tabla por defecto de todos los usuarios es el espacio de tablas SYSTEM. Si un usuario no crear objetos, y no tiene privilegios para hacerlo, entonces este ajuste por defecto estria bien. Sin embargo, si existe la posibilidad de crear cualquier tipo de objeto de un usuario, debe asignar especficamente al usuario un espacio de tabla predeterminado, como el espacio de tabla USERS. El uso de un espacio de tabla que no sea SYSTEM reduce la contencin entre los objetos del diccionario de datos y objetos de usuario para los mismos archivos de datos. En general, no se debe almacenar datos de usuario en el tablespace SYSTEM.

Al separar los datos de usuario de los datos del sistema, se reduce la probabilidad de problemas con el espacio de tablas SYSTEM, que puede en algunos casos provocar que toda la base de datos deje de funcional. Este espacio de tabla permanente por defecto no es utilizado por los usuarios del sistema, es decir, SYS, SYSTEM, y OUTLN, cuyo valor predeterminado tablas permanentes es SYSTEM. Un espacio de tablas designado como el espacio de tablas permanentes por defecto no se puede quitar. Para lograr este objetivo, primero debe designar a otro espacio de tabla como el espacio de tabla por defecto permanente. Usted puede utilizar la sentencia ALTER TABLESPACE SQL para modificar el tablespace permanente por defecto por otro espacio de tablas. Tenga en cuenta que esto afectar a todos los usuarios u objetos creados despus de la instruccin ALTER DDL. Cuando se especifica el espacio de tabla por defecto para un usuario, especifique tambin una cuota en ese espacio de tablas.

Asignacin de una cuota de espacio de tabla para el usuario.Ud. puede asignar a cada usuario una cuota de espacio de tabla para cualquier espacio de tabla (excepto un espacio de tabla temporal). La asignacin de una cuota se logra de la forma siguiente: Los usuarios con privilegios al crear cierto tipo de objetos pueden crear estos objetos en la tablaspace especfica. Oracle Database limita la cantidad de espacio que se puede asignar para el almacenamiento de objetos de usuario en el espacio de tabla especificando el monto de la cuota.

De forma predeterminada, el usuario no dispone de cuota en cualquier espacio de tablas en la base de datos. Si el usuario tiene el privilegio para crear un objeto de esquema, debe asignar una cuota para permitir al usuario crear objetos. Como mnimo, asignar a los usuarios una cuota para el espacio de tabla por defecto, y las cuotas adicionales para otros espacios de tabla en la que ellos puedan crear objetos.La siguiente sentencia CREATE USER asigna las siguientes cuotas para los test_ts y data_ts espacios de tabla:

CREATE USER jward IDENTIFIED BY password DEFAULT TABLESPACE data_ts QUOTA 100M ON test_ts QUOTA 500K ON data_ts TEMPORARY TABLESPACE temp_ts PROFILE clerk;Puede asignar a un usuario o bien cuotas individuales de una determinada cantidad de espacio en disco en cada espacio de tabla o una cantidad ilimitada de espacio de disco en todos los espacios de tabla. Las cuotas especficas impiden que los objetos de un usuario puedan utilizar demasiado espacio en la base de datos.

La restriccin de los lmites de cuota para objetos de usuario en un espacio de tabla.Se puede restringir los lmites de cuota para los objetos de usuario en un espacio de tabla mediante la instruccin SQL ALTER USER, para cambiar la cuota actual del usuario a cero. Despus de que se le asigna una cuota de cero, los objetos del usuario en el espacio de tablas se mantienen, y el usuario todava puede crear nuevos objetos, pero los objetos existentes no se asignarn a cualquier nuevo espacio. Por ejemplo, no se puede insertar datos en una de las tablas existentes de este usuario. La operacin fallar enviando el mensaje ORA-1536 error de espacio.

4. BITACORAS EN ORACLEPermite guardar las transacciones realizadas sobre una base de datos en especfico, de tal manera que estas transacciones puedan ser auditadas y analizadas posteriormente. Pueden obtenerse datos especficos de la transaccin como son la Operacin que se realiz, el Usuario de BD y Windows, Fecha, Maquina y Programa.

FIGURA 9. Proceso de las transacciones en la BD.

AlertasRegistro y envo de notificaciones al momento en que se produzca un evento de modificacin de datos en los sistemas de acuerdo a los criterios definidos por el usuario. Envi de las notificaciones al correo electrnico de los usuarios especificados para cada alerta, con posibilidad de envo de mensaje a un telfono mvil.DiccionariosFacilita la Documentacin de las Tablas y Atributos de los Sistemas. Apoyo en el control de cambios del Sistema, al proporcionar diferencias entre la Base de Datos (BD) y Diccionario de Datos (DD) en relacin a estructura de tablas y tablas que existen en el DD pero ya no existen en la BDs y viceversa. Permite comparar bases de datos entre diferentes ambientes de Produccin, Pruebas y Desarrollo. Generacin de los Scripts necesarios para mantener la consistencia entre la Base de Datos y el Diccionario de Datos.

FIGURA 10. Ejemplo de una bitcora con diccionario de datos.

La estructura ms ampliamente usada para grabar las modificaciones de la base de datos es la Bitcora. Cada registro de la bitcora escribe una nica escritura de base de datos y tiene lo siguiente:1. Nombre de la transaccin: Nombre de la transaccin que realiz la operacin de escritura.2. Nombre del dato: El nombre nico del dato escrito.3. Valor antiguo: El valor del dato antes de la escritura.4. Valor nuevo: El valor que tendr el dato despus de la escritura.

Existen otros registros de bitcora especiales para grabar sucesos importantes durante el proceso de transaccin, tales como:< T1, inicio >< T1, x, v1, v2 >< T1, commit >

Es fundamental que siempre se cree un registro en la bitcora cuando se realice una escritura antes de que se modifique la base de datos. Tambin tenemos la posibilidad de deshacer una modificacin que ya se ha escrito en la base de datos, esto se realizar usando el campo del valor antiguo de los registros de la bitcora. Los registros de la bitcora deben residir en memoria estable como resultado el volumen de datos en la bitcora puede ser exageradamente grande.

Ejemplo de una bitcora de instruccionesCREATE TABLE [dbo].[Bitacora] ([BitacoraID] [int] IDENTITY (1, 1) NOT NULL ,[EventType] [char] (14) NOT NULL ,[Status] [int] NOT NULL ,[EventInfo] [varchar] (1000) NOT NULL ,[Usuario] [varchar] (20) NOT NULL ,[Fecha] [smalldatetime] NOT NULL) ON [PRIMARY]GOALTER TABLE [dbo].[Bitacora] WITH NOCHECK ADDCONSTRAINT [DF_Bitacora_Usuario] DEFAULT (suser_sname()) FOR [Usuario],CONSTRAINT [DF_Bitacora_Fecha] DEFAULT (getdate()) FOR [Fecha]Y, por otro lado, el trigger en la tabla lo definira de la siguiente manera:/* Trigger de Monitoreo */CREATE TRIGGER trig_tablabitacoraON TABLAFOR DELETE, INSERT, UPDATEASBEGINDECLARE @NUMERO INTINSERT INTO Bitacora (EventType,Status,EventInfo)exec sp_executesql NDBCC INPUTBUFFER( @i ), N@i int,@i=@@spidEND5. PARTICIONESBeneficios Del Particionamiento El particionamiento puede brindar grandes beneficios a una amplia variedad de aplicaciones al mejorar la capacidad de administracin, el desempeo y la disponibilidad. No es inusual que el particionamiento mejore mucho ms el desempeo de ciertas operaciones de mantenimiento y consultas. Adems, el particionamiento puede reducir enormemente el costo total de propiedad de los datos, al utilizar un enfoque de archivo por niveles para mantener la informacin relevante ms antigua an online en dispositivos de almacenamiento de bajo costo. Oracle Partitioning brinda un enfoque simple, efectivo, e incluso ms avanzado al momento de considerar la Administracin del Ciclo de Vida de la Informacin para grandes entornos. El particionamiento tambin permite a los diseadores y administradores de base de datos abordar algunos de los problemas ms difciles planteados por las aplicaciones de vanguardia. Es una herramienta clave para crear sistemas de mltiples terabytes o sistemas con requisitos de disponibilidad extremadamente altos.

Fundamentos del Particionamiento El particionamiento permite subdividir una tabla, un ndice o una tabla organizada por ndices en partes ms pequeas. Cada parte del objeto de base de datos se denomina particin. Cada particin tiene su propio nombre, y puede, opcionalmente, tener sus propias caractersticas de almacenamiento. Desde la perspectiva de un administrador de base de datos, un objeto particionado tiene mltiples partes que pueden administrarse ya sea de manera conjunta o individual. Esto da al administrador una flexibilidad considerable en la administracin del objeto particionado. No obstante, desde la perspectiva de la aplicacin, una tabla particionada es idntica a una tabla no particionada; no se necesitan modificaciones cuando se accede a una tabla particionada utilizando comandos SQL DML.

FIGURA 11. Perspectiva del DBA y la aplicacin de una tabla particionada.

Los objetos de base de datos - tablas, ndices y tablas organizadas por ndices son particionadas utilizando una 'clave de particin', un grupo de columnas que determinan en qu particin residir una fila determinada. Por ejemplo, la tabla de ventas mostrada en la figura 1 se particiona por fecha de ventas utilizando una estrategia de particionamiento mensual; las tablas aparecen ante la aplicacin como tablas nicas y normales. No obstante, el DBA puede administrar cada particin mensual individualmente, posiblemente utilizando distintos niveles de almacenamiento, aplicando la compresin de la tabla en los datos ms antiguos, o almacenar todos los rangos de datos ms antiguos en espacios de tabla con modo solo lectura. Independientemente de la estrategia de particionamiento de ndices seleccionada, un ndice puede acoplarse o no a la estrategia de particionamiento subyacente de la tabla subyacente. La estrategia de particionamiento de ndices adecuada es elegida sobre la base de los requisitos comerciales, haciendo que el particionamiento se ajuste perfectamente para soportar cualquier clase de aplicacin. Oracle Database 11g distingue tres tipos de ndices particionados. ndices locales: Un ndice local es un ndice en una tabla particionada que se acopla con la tabla particionada subyacente, 'heredando' la estrategia de particin de la tabla. Consecuentemente, cada particin de un ndice local corresponde a una y solo una particin de la tabla subyacente. El acoplamiento permite el mantenimiento optimizado de la particin; por ejemplo, cuando se da de baja una particin de tabla, Oracle simplemente debe dar de baja tambin la particin del ndice correspondiente. No se requiere ningn mantenimiento costoso de ndices. Los ndices locales son ms comunes en los entornos de depsito de datos. ndices Particionados Globales: Un ndice particionado global es un ndice en una tabla particionada o no particionada que se particiona utilizando una clave de particin o estrategia de particin distinta de la de la tabla. Los ndices globales particionados pueden particionarse utilizando un rango de particionamiento o un particionamiento aleatorio y no se acoplan a la tabla subyacente. Por ejemplo, una tabla podra estar particionada por rangos, por mes y tener doce particiones, mientras que un ndice en esa tabla puede estar particionado por rangos utilizando una clave de particin diferente y tener una cantidad de particiones distintas. Los ndices globales particionados son ms comunes para OLTP que para los entornos de depsito de datos.

ndices Globales No Particionados: Un ndice global no particionado es esencialmente idntico a un ndice en una tabla no particionada. La estructura del ndice no est particionada y no se acopla con la tabla subyacente. En los entornos de depsito de datos, el uso ms frecuente de los ndices no particionados es imponer restricciones clave primarias. Los entornos OLTP, por otra parte, dependen mayormente de los ndices globales no particionados. Asimismo, Oracle brinda un grupo integral de comandos SQL para administrar las tablas de particionamiento. Estos incluyen comandos para incorporar nuevas particiones, extraer, dividir, mover, fusionar, truncar y posiblemente comprimir particiones. Particionamiento para la Capacidad de Administracin Oracle Partitioning permite que las tablas y lo ndices se particionen en unidades ms pequeas y administrables, brindando a los administradores de bases de datos la capacidad de focalizarse en el enfoque de "dividir y conquistar " para la administracin de datos. Con el particionamiento, las operaciones de mantenimiento pueden focalizarse a partes particulares de tablas. Por ejemplo, un administrador de base de datos podra comprimir una sola particin que contenga los datos de una tabla del ao 2006, en lugar de comprimir toda la tabla. Para las operaciones de mantenimiento en todo un objeto de la base de datos, es posible realizar estas operaciones por particin, dividiendo as el proceso de mantenimiento en partes ms manejables. Un uso tpico del particionamiento para la capacidad de administracin es soportar el proceso de carga de 'ventanas rotativas' en el depsito de datos. Supongamos que un DBA carga nuevos datos en una tabla semanalmente. Esa tabla podra ser particionada por rangos de manera que cada particin contenga una semana de datos. El proceso de carga consiste simplemente en la incorporacin de una nueva particin. Agregar una sola particin es mucho ms efectivo que modificar toda la tabla, ya que el DBA no necesita modificar ninguna otra particin. Otra ventaja de utilizar el particionamiento surge al momento de eliminar datos; se puede extraer una particin completa, lo cual es ms efectivo y rpido que eliminar cada fila individualmente. Particionamiento para el Desempeo Al limitar la cantidad de datos a ser examinados o sobre los cuales se trabajar, el particionamiento ofrece una cantidad de beneficios de desempeo. Estas caractersticas incluyen: Depuracin por Particionamiento: La depuracin por particionamiento (es decir, eliminacin de particionamiento) es la manera ms simple y tambin la ms sustancial de mejorar el desempeo utilizando el particionamiento. La depuracin por particionamiento a menudo puede mejorar mucho ms el desempeo de las consultas. Por ejemplo, supongamos que una aplicacin contiene una tabla ORDERS con un historial de pedidos, y esta tabla ha sido particionada por semana. Una consulta que solicita los pedidos de una sola semana solo tendra acceso a una sola particin de la tabla ORDERS. Si la tabla tuviera 2 aos de datos histricos, esta consulta accedera a solo una particin, en vez de 140 particiones. Esta consulta posiblemente podra ejecutarse 100 veces ms rpido debido simplemente a la depuracin por particionamiento. La depuracin por particionamiento trabaja con todas las dems caractersticas de desempeo de Oracle. Oracle utilizar la depuracin por particionamiento junto con cualquier tcnica de indexacin, tcnica de unin o mtodo de acceso paralelo.

Uniones por particin: El particionamiento tambin puede mejorar el desempeo de las uniones de mltiples tablas utilizando una tcnica conocida como uniones por particin. Las uniones por particin pueden aplicarse en dos tablas que se unirn, y al menos una de estas tablas se particiona con la clave de unin. Las uniones por particin dividen las uniones ms grandes en uniones ms pequeas de grupos de datos 'idnticos para las tablas unidas. El trmino 'idntico' aqu se utiliza para definir exactamente el mismo grupo de valores para las claves de particionamiento en ambos lados de la unin, garantizando as que solo la unin de estos grupos de datos 'idnticos' producir un resultado y que el otro grupo de datos no deber ser considerado. Oracle utiliza la tcnica de tablas (fsicas) que ya se encuentran igualmente particionadas para la unin o redistribuye de manera transparente (reparticin) una sola tabla en tiempo de ejecucin para crear grupos de datos igualmente particionados y relacionar el particionamiento de la otra tabla, completando toda la unin en menos tiempo. Esto ofrece importantes beneficios de desempeo tanto para una ejecucin paralela como en serie. Particionamiento para la Disponibilidad Los objetos de base de datos particionadas ofrecen independencia de particiones. Esta caracterstica de independencia de particiones puede ser una parte importante de una estrategia de alta disponibilidad. Por ejemplo, si una particin de una tabla particionada no est disponible, todas las dems particiones de la tabla permanecen en lnea y estn disponibles. La aplicacin puede continuar ejecutando consultas y realizando transacciones frente a esta tabla particionada, y estas operaciones de base de datos se ejecutarn exitosamente si no necesitan acceder a la particin que no se encuentra disponible. El administrador de base de datos puede especificar que cada particin se almacene en un espacio de tabla separado; esto permitira al administrador realizar operaciones de backup y recuperacin en cada particin individual, independientemente de otras particiones en la tabla. Por consiguiente, en caso de que ocurra un desastre, la base de datos podra recuperarse solo con las particiones que incluyen los datos activos, y luego los datos inactivos de las dems particiones podran recuperarse a su debido tiempo, reduciendo as el tiempo de baja del sistema. Asimismo, el particionamiento puede reducir el tiempo de baja programado. Las ventajas de desempeo brindadas por el particionamiento pueden permitir a los administradores de base de datos completar las operaciones de mantenimiento sobre los objetos de grandes bases en ventanas relativamente pequeas. Particionamiento Modelo Para Su Empresa Oracle Database 11g ofrece el conjunto ms completo de estrategias de particionamiento, permitiendo al cliente alinear de manera ptima la subdivisin de datos con los actuales requerimientos de negocio. Todas las estrategias de particionamiento dependen de mtodos fundamentales de distribucin de datos que pueden ser utilizados para una sola tabla (un solo nivel) o un conjunto de tablas particionadas. Asimismo, Oracle brinda una variedad de extensiones de particionamiento, aumentando la flexibilidad para la seleccin de la clave de particin, brindando caractersticas para la creacin de particin automtica a medida que sea necesario, y ofreciendo asesoramiento de estrategias de particin para objetos no particionados.6. ESPACIOS PRIVADOSUn espacio privado permite que los administradores y redactores gestionen el conjunto de datos del sitio. Algunas bases de datos tienen estos espacios privados llamados comnmente paneles de control, que son formularios que aparecen al abrir la base de datos. Los paneles de control sirven de "puerta principal" o "recibidor" de una base de datos en el sentido de que dirigen a las personas hacia determinadas tareas, como introducir o buscar datos. Sirven tambin para mantener alejados a los usuarios de las tablas que contienen los datos en tiempo real.Cuando reciba una base de datos, debe adentrarse ms all del panel de control para averiguar cmo estn estructurados los datos, pero merece la pena echar un vistazo inicial al panel de control. Le puede ofrecer algn indicio sobre las tareas que el diseador de la base de datos consider que realizaran los usuarios habitualmente con los datos. Puede hacer clic en los vnculos del panel de control para ver qu objetos, como formularios e informes, abren.Los DBMS se basan en archivos para almacenar datos, y estos archivos, o conjuntos de datos, residen en medios de almacenamiento, o dispositivos. Una buena parte del trabajo del DBA implicar la planificacin para el almacenamiento real de la base de datos.Algunas tecnologas de almacenamiento son ms adecuadas que otras. Sin embargo, la naturaleza mecnica de la unidad de disco los hace ms vulnerables al fracaso de los componentes de otro equipo. Adems, las formas en que las unidades de disco son utilizados por las bases de datos pueden hacer que la gestin del almacenamiento impredecibles, como la barra lateral "Modern DBMS de uso de disco Puede usarse RAID para mejorar la seguridad de los datos.Para aplicaciones de misin crtica la integridad de los datos puede ser ms importante que la disponibilidad de datos. Si el soporte es poco fiable y un fallo de las causas de corrupcin de datos, los datos perdidos puede ser ms de un problema que el tiempo de inactividad. Es imperativo, por tanto, que las soluciones de almacenamiento de base de datos para protegerlos a toda costa. La recuperacin de datos desde medios de almacenamiento lleva mucho ms tiempo en completarse que la recuperacin de datos desde la memoria cach o la memoria.El rendimiento de la base de datos depende de la entrada y salida a disco. La cantidad de datos almacenados es mayor que nunca antes, y los datos se almacenados por ms tiempo.Algunos DBMS permiten al tamao de los archivos temporales de expandirse y contraerse de forma automtica. Dependiendo del tipo y la naturaleza de las operaciones de base de datos en proceso, esta fluctuacin puede provocar picos de uso del discoEl crecimiento de la capacidad de almacenamiento aumenta an ms la complejidad de la gestin de datos y bases de datos. Muchas organizaciones estn implementando nuevas tecnologas de almacenamiento, tales como almacenamiento en red (NAS) y redes de rea de almacenamiento (SAN), para ayudar a controlar la cantidad cada vez mayor de almacenamiento necesario para los usos modernos. La gestin del almacenamiento en el entorno dinmico de hoy es una tarea difcil DBA.Hay muchos problemas de almacenamiento que deben ser resueltos antes de que un DBA pueda crear una base de datos. Uno de los temas ms importantes es la cantidad de espacio para permitir la base de datos.El clculo espacial debe tener en cuenta no slo tablas, ndices, sino tambin, y dependiendo del DBMS, el registro de transacciones. Cada una de estas entidades probablemente requerir un archivo separado o conjunto de datos, para el almacenamiento persistente.El DBA debe separar en diferentes discos a los archivos para:

7. SEGMENTOS

Descripcin de los SegmentosUn segmento es un conjunto de extensiones que contiene todos los datos para un espacio de tabla., dentro de una estructura de almacenamiento lgico. Por ejemplo, Base de Datos de Oracle asigna una o ms extensiones para formar el segmento de datos para una tabla. La base de datos tambin asigna una o ms extensiones para formar el segmento de ndice de una tabla.

Como se explica en "Gestin del espacio lgico", Base de Datos Oracle gestiona el espacio segmento de forma automtica o manual. En esta seccin se asume el uso de ASSM.

Segmentos de usuarios Un segmento de datos individual en una base de datos almacena los datos para un objeto de usuario Hay diferentes tipos de segmentos. Ejemplos de segmentos de usuarios incluyen:

Tabla, tabla de particiones, o clster mesa Particin LOB LOB o Particin de ndice o un ndice

Cada objeto sin particiones y particin objeto se almacena en su propio segmento. Por ejemplo, si un ndice tiene cinco particiones, luego cinco segmentos contener los datos de ndice.

Creacin del Segmento Usuario De forma predeterminada, la base de datos utiliza la creacin de segmentos diferida para actualizar slo los metadatos de base de datos al crear tablas e ndices. A partir de Oracle Database 11g Release 2 (11.2.0.2), la base de datos tambin remite creacin segmento al crear particiones. Cuando un usuario inserta la primera fila en una tabla o particin de la base de datos crea segmentos de la tabla o particin, sus columnas LOB, y sus ndices. Creacin de segmentos diferido le permite evitar el uso de recursos de base de datos sin necesidad. Por ejemplo, la instalacin de una aplicacin puede crear miles de objetos, el consumo de espacio en disco. Muchos de estos objetos nunca podran utilizarse. Usted puede utilizar el paquete DBMS_SPACE_ADMIN para manejar segmentos de objetos vacos. A partir de Oracle Database 11g Release 2 (11.2.0.2), puede utilizar este paquete PL / SQL para hacer lo siguiente:

materializarse manualmente segmentos de mesas vacas o particiones que no tienen segmentos creados Retirar los segmentos de mesas vacas o particiones que actualmente tienen un segmento vaco asignado

Para ilustrar mejor la relacin entre la creacin de objetos y la creacin de segmentos, se supone que la creacin de segmentos diferido est deshabilitada. Se crea una tabla de la siguiente manera:

CREATE TABLE test_table (my_column NUMBER);

Figura 12. Creacin de un segmento del usuario.

Cuando se crea una tabla con una clave PRIMARY KEY o UNIQUE, Oracle Database crea automticamente un ndice para esta clave. Una vez ms se supone que la creacin de segmentos diferido est deshabilitada. Se crea una tabla de la siguiente manera:

CREATE TABLE lob_table (my_column NUMBER PRIMARY KEY, clob_column CLOB);

Figura 13 muestra que los datos para lob_table se almacenan en un segmento, mientras que el ndice creado implcitamente est en un segmento diferente. Adems, los datos CLOB se almacenan en su propio segmento, al igual que su ndice CLOB asociado (consulte "Los LOB internas"). Por lo tanto, la CREATE TABLE sentencia tiene como resultado la creacin de cuatro segmentos diferentes.

Figura 13. Mltiples segmentos.

La base de datos asigna una o ms extensiones cuando se crea un segmento. Parmetros de almacenamiento para el objeto de determinar la asignacin de las extensiones para cada segmento (ver "Parmetros de almacenamiento de Extensin"). Los parmetros afectan a la eficiencia de recuperacin de datos y de almacenamiento para el segmento de datos asociado con el objeto.

Los segmentos temporales Cuando se procesa una consulta, Oracle Database menudo requiere espacio de trabajo temporal para las etapas intermedias de la ejecucin de la sentencia SQL. Las operaciones tpicas que pueden requerir un segmento temporal incluyen la clasificacin, el hash y combinacin de mapas de bits. Durante la creacin de un ndice, de base de datos Oracle tambin coloca los segmentos de ndice en segmentos temporales y luego los convierte en segmentos permanentes cuando el ndice es completo. Base de datos de Oracle no crea un segmento temporal si una operacin se puede realizar en la memoria. Sin embargo, si el uso de la memoria no es posible, entonces la base de datos asigna automticamente un segmento temporal en el disco.

La asignacin de segmentos temporales para consultas Base de datos Oracle asigna segmentos temporales para las consultas, segn sea necesario durante una sesin de usuario y los deja caer cuando la consulta completa. Los cambios en los segmentos temporales no se registran en el registro de rehacer en lnea, a excepcin de las operaciones de gestin de espacio en el segmento temporal (vase "Visin general de la Redo Log Online").La base de datos crea segmentos temporales en el espacio de tablas temporal asignado al usuario. Las caractersticas de almacenamiento predeterminadas del espacio de tabla determinan las caractersticas de las extensiones en el segmento temporal. Debido a la asignacin y cancelacin de asignacin de segmentos temporales se produce con frecuencia, lo mejor es crear por lo menos un espacio de tabla especial para segmentos temporales. La base de datos distribuye E / S en disco y evita la fragmentacin del sistema y otros espacios de tabla con segmentos temporales.

La asignacin de segmentos temporales para tablas e ndices temporalesBase de datos Oracle tambin puede asignar segmentos temporales para las tablas temporales y sus ndices. Las tablas temporales tienen datos que existen slo para la duracin de una transaccin o sesin. Cada sesin tiene acceso slo las extensiones asignadas para la sesin y no se puede acceder a las extensiones asignadas para otras sesiones.Oracle Database asigna segmentos de una tabla temporal cuando se produce el primer INSERT en la tabla. La insercin se puede producir de forma explcita o por CREATE TABLE COMO SELECT. La primera INSERT en una tabla temporal asigna a los segmentos de la tabla y sus ndices, crea la pgina raz de los ndices, y asigna los segmentos LOB.Segmentos para una tabla temporal se asignan en un espacio de tablas temporal del usuario actual. Supongamos que la tabla temporal asignado a usuario1 es temp1 y el espacio de tablas temporal para user2 es temp2. En este caso, usuario1 almacena datos temporales en los segmentos Temp1, mientras user2 almacena datos temporales en los segmentos TEMP2.

Deshacer Segmentos Oracle Database mantiene un registro de las acciones de las transacciones, conocidos colectivamente como datos de deshacer. Oracle Database utiliza deshacer para hacer lo siguiente:

Retrotraer una transaccin activa Recuperar una transaccin terminada Proporcionar coherencia leer Llevar a cabo algunas operaciones de flashback lgicas

Oracle base de datos almacena datos de deshacer el interior de la base de datos en lugar de en los registros externos. Deshacer los datos se almacenan en bloques que se actualizan al igual que los bloques de datos, con los cambios a estos bloques de generacin de redo. De esta manera, puede acceder a la base de datos Oracle de manera eficiente datos de deshacer sin necesidad de leer los registros externos. Deshacer los datos se almacenan en un espacio de tabla undo. Oracle Database proporciona un mecanismo completamente automatizado, conocido como automtica deshacer modo de gestin, para la gestin de segmentos de deshacer y el espacio en un tablespace de deshacer.

Deshacer Segmento y Operaciones Cuando se inicia una transaccin, la base de datos se une (asigna) la transaccin a un segmento de deshacer, y por lo tanto a una tabla de transacciones, en el espacio de tablas deshacer actual. En raras ocasiones, si la instancia de base de datos no tiene un espacio de tabla deshacer designado, entonces la transaccin se une al sistema de deshacer segmento.

Transacciones activas mltiples pueden escribir al mismo tiempo para el mismo segmento de deshacer o a diferentes segmentos. Por ejemplo, las transacciones T1 y T2 pueden tanto escribir para deshacer segmento U1, T1 o pueden escribir a U1, mientras que T2 escribe deshacer segmento de U2.Conceptualmente, la extensin de un segmento de deshacer, forma un anillo. Transacciones de escritura a uno deshacer medida, y luego a la siguiente medida en el anillo, y as sucesivamente en forma cclica. La figura 12-20 muestra dos transacciones T1 y T2, que comienzan por escrito en el tercer grado (E3) de un segmento de deshacer y continuar escribiendo hasta el cuarto grado (E4).

Figura 14. Anillo de extensiones asignadas en un segmento Deshacer.La memoria compartida contiene todos los datos intervenidos, como: Grupo de memorias intermedias. Tabla de bloqueos. Memoria intermedia del registro, que contiene las entradas del registro que esperan a ser volcadas en el almacenamiento estable. Planes de consulta en cach, que se pueden reutilizar si se enva de nuevo la misma consulta.

La exclusin mutua se puede implementar por medio de funciones del sistema operativo llamadas semforos. Implementaciones alternativas, con menos sobrecargas, utilizan instrucciones atmicas especiales soportadas por el hardware de la computadora; un tipo de instruccin atmica comprueba una posicin de la memoria y la establece a uno automticamente. Los mecanismos de exclusin mutua tambin se utilizan para implementar pestillos.

Figura 15. Funcionamiento de una PGA.

8. MEMORIA COMPARTIDA

No toda la memoria RAM en Oracle es de memoria compartida. Cuando se inicia un proceso de usuario, este proceso tiene un rea privada de RAM, que se utiliza para ordenar los resultados de SQL y la gestin se une especial llamado "hash" se une. Esta RAM privada que se conoce como el rea de Programa Global (PGA). Cada individuo rea de PGA se asigna la memoria cada vez que un nuevo usuario se conecta a la base de datos.

Oracle Database 10g se encargar de la PGA para usted si se establece el parmetro pga_aggregate_target. Le recomendamos que permita a Oracle para configurar estas zonas, y slo configurar el parmetro pga_aggregate_target. El PGA puede ser fundamental para el rendimiento, especialmente si la aplicacin est haciendo un gran nmero de clases. Operaciones de ordenacin producirse si utiliza ORDER BY y GROUP BY comandos en las instrucciones SQL.

9. MULTIPLES INSTANCIASLa instancia en Oracle describe varios procesos residentes en la memoria del computador(es) y un rea de memoria compartida por aquellos procesos. En arquitecturas de bases de datos tales como, Microsoft SQL Server y IBM BD2, la palabra instancia indica una coleccin de bases de datos que comparten recursos de memoria en comn, o sea, la relacin entre instancia y bases de datos es 1 a N. Pero la relacin entre la instancia de Oracle y la base de datos es 1 a 1 o n a 1. Cuando hay una relacin N a 1, la configuracin es llamada RAC (Real Application CLuster), donde la base de datos reside en discos compartidos y las instancias en mltiples computadores anexados a la base de datos.La instancia de Oracle es el motor que procesa los requerimientos de datos desde la base de datos. Est compuesta por procesos en primer plano, en segundo plano y un rea de memoria compartida (SGA). Una instancia de Oracle es un conjunto de estructuras de memoria queestnasociadas con los archivos de datos (datafiles) en una mquina. Una base de datos (database) es una coleccin de archivosfsicos.Instancia De Oracle La integran los procesos background y la SGA Abre una y slo una BDO, y permite acceder a ella. Nota: con Oracle Real Application Cluster (RAC), ms de una instancia usarnla misma BD. En la mquina donde reside el servidor Oracle, la variableORACLE_SID identifica a la instancia con la que estamos trabajando.Vistas: V$DATABASE (Base de datos). V$INSTANCE (Instancia). V$SGA (SGA). V$SGAINFO (Gestin dinmica de la SGA). V$SGASTAT (SGA detallada). V$BUFFER_POOL (Buffers en la cach de datos) V$SQLAREA (Sentencias SQL). V$PROCESS (Procesos). V$BGPROCESS (Procesos background). V$DATAFILE (Ficheros de datos de la BD). V$CONTROLFILE (Ficheros de control de la BD). V$LOGFILE (Ficheros redo log de la BD). DBA_TABLESPACES (Tablespaces de la BD).10. CONCLUSIONES

11. REFERENCIAS

Gmez Mendoza, Anglica (2004). Bitacora. Consultado el 18 de noviembre del 2013. Recuperado de: http://www.estructurayprogramacion.com/Serios Gmez, Rodrigo (2008). Ciencias y tecnologias. Consultado el 17 de noviembre de 2013. Disponible en: http://www.jorgesanchez.net/bd/abd/abd1.pdfSnchez, Jorge (2003). Particionamiento de Oracle Database 11g. Consultado el 17 de noviembre de 2013. Disponible en: http://www.jorgesanchez.net/bd/arquOracle.pdfA. Sanabria O, John. (2010). Notas sobre la instalacin de ORACLE. Consultado el 19 de noviembre del 2013. Recuperado de: ftp://ftp.inf.utfsm.cl/pub/Linux/Docs/LuCaS/Otros/00-CAOS/porrevisar/notas-instalaci%F3n-oracle.html Negrete Snchez, Claudia (2004). Estructuras y programacin. Consultado el 16 de noviembre del 2013. Recuperado de: http://www.estructurayprogramacion.com/