(microsoft powerpoint - pr\341ctica 1.- arquitectura l\363gica [modo

32

Upload: vohanh

Post on 03-Jan-2017

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo
Page 2: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-2

Page 3: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-3

Productos y servicios Oracle

• SGBD Oracle: Está disponible en tres ediciones: Enterprise, Standard y Personal.

• Oracle Application Server: Servidor certificado Java 2 Enterprise Edition (J2EE) de Oracle, que integra todo lo necesario

para desarrollar y desplegar aplicaciones basadas en Web. El servidor de aplicaciones genera portales de comercio

electrónico, servicios Web y aplicaciones transaccionales que incluyen aplicaciones basadas en PL/SQL, en Oracle Forms

y en J2EE.

• Aplicaciones Oracle:

- Oracle E-Business Suite es un juego completo de aplicaciones de negocio para gestionar y automatizar los

procesos de la organización.

- Oracle Collaboration Suite: Es un sistema integrado único para todos los datos de comunicaciones de la

organización: voz, correo electrónico, fax, información de calendario, y archivos.

- Oracle Developer Suite: Es un entorno integrado que combina herramientas de desarrollo de aplicaciones y de

Business Intelligence.

Page 4: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-4

Arquitectura de una BD Oracle

El SGBD Oracle está formado por dos elementos:

1. Instancia Oracle: Es el modo de acceder a la BD. Está compuesta por la zona de memoria reservada para la BD y

un conjunto de procesos background que se ejecutan en el servidor y que acceden a un conjunto de archivos de

la BD.

2. BD Oracle: Es un conjunto de archivos sobre disco teniendo cada uno una estructura y cometido particular. Una

BD puede verse desde dos puntos de vista:

a. Punto de vista físico. Hace referencia a los datos realmente almacenados

b. Punto de vista lógico. Corresponde a una representación abstracta de los datos almacenados, de

acuerdo con el esquema conceptual de la BD.

En la siguiente transparencia se presenta la relación entre los elementos que componen la parte física y lógica de

la BD. Posteriormente, se tratan cada uno de ellos con mayor detalle.

Page 5: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-5

Estructuras lógicas y físicas de la BD

Bloque de Datos Oracle: Es el nivel lógico más fino de granularidad, donde se almacenan los datos de la BD. Un bloque de datos se

corresponde con un número concreto de bytes de la BD en disco (i.e, un número de bloques del SO).

Extensiones: Número específico de bloques de datos contiguos (obtenidos a la vez en una única asignación) que se utilizan para

almacenar un tipo concreto de información.

Segmentos: Conjunto de extensiones asignadas a una estructura lógica (tabla, índice) concreta.

La BD Oracle realiza la gestión dinámica del espacio de la BD. Cuando las extensiones de un segmento están ocupadas, se añaden

extensiones adicionales. Dado que las extensiones se asignan cuando son necesarias, las extensiones de un segmento no son

necesariamente contiguas en el disco.

Esquemas: Colección de objetos que son propiedad de un usuario de la BD. Los objetos del esquema son estructuras lógicas como

tablas, vistas, secuencias, procedimientos almacenados, sinónimos o índices. En general, los objetos de los esquemas incluyen todo

lo que la aplicación crea en una BD.

Tablespace: Se compone de uno o más archivos de datos (estructuras físicas que se ajustan al S.O. en el que se está ejecutando

Oracle).

Los datos de una BD se almacenan en conjunto en los archivos de datos que constituyen cada tablespace de la base de datos. Por

ejemplo, la base de datos Oracle más simple tendría un tablespace y un archivo de datos. Otra base de dtos puede tener tres

tablespaces, de modo que uno está compuesto por dos archivos de datos y los otros por tres.

Una única base de datos podría tener hasta 65535 archivos de datos.

Base de datos: Consta de una o más unidades lógicas de almacenamiento denominadas tablespaces, que en conjunto almacenan

todos los datos de la BD.

Page 6: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-6

Segmentos, Extensiones y Bloques

Los objetos de la BD se almacenan como segmentos en tablespaces. Cada segmento contiene una o más extensiones. Una

extensión es un conjunto de bloques de datos contiguos dentro de un fichero de datos. Los bloques de datos son la unidad de

I/O más pequeña en la BD.

Cada segmento tiene un bloque cabecera que describe las características del segmento y sirve como directorio de las

extensiones asociadas y, por tanto, del espacio ocupado por el segmento.

El número de bloques por extensión, y el número mínimo y máximo de extensiones son parametrizables por objeto, de modo

que puede variar de una tabla a otra y de un índice a otro. Generalmente, los bloques de una misma extensión están contiguos

en el disco. Por el contrario, dos extensiones de una misma tabla no estarán contiguas necesariamente.

Cuando la BD necesita un conjunto de bloques de datos realiza la petición al SO, siendo este el encargado de localizarlo en el

dispositivo físico de almacenamiento. De este modo, no es necesario conocer las direcciones físicas de los datos de la BD.

Además, esto permite que los ficheros de datos puedan estar segmentados o duplicados en varios discos.

El tamaño del bloque de datos puede establecerse en el momento de la creación de la BD. El tamaño por defecto de 8KB es

adecuado para la mayoría de la BD. Sin embargo, si la BD soporta una aplicación de data warehouse, con grandes tablas e

índices, puede resultar beneficioso trabajar con un tamaño de bloque mayor. Por otro lado, si la BD soporta una aplicación

transaccional donde las lecturas y escrituras son aleatorias, entonces puede ser más eficiente utilizar un bloque más pequeño. El

tamaño máximo de bloque depende del SO, mientras que el tamaño mínimo es de 2 KB. Es posible tener tablespaces con

diferentes tamaños de bloque.

Page 7: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-7

Cómo se almacena una tabla

Cuando se crea un nuevo objeto (tabla, índice, etc.), se crea un segmento para almacenar sus datos. Para ello, Oracle reserva para

este objeto al menos una extensión, vacía de partida. En el futuro, y a medida que se crean las ocurrencias de este objeto, Oracle

utiliza progresivamente los bloques de la extensión. Cuando todos los bloques de una extensión están utilizados y se tiene

necesidad de espacio, Oracle busca bloques libres en las extensiones ya asignadas a ese objeto. Si no los encuentra, asigna al objeto

una nueva extensión.

Cuando un segmento necesita una extensión adicional se busca en el espacio libre del tablespace asociado (i.e., de sus archivos de

datos), se asigna el primer espacio contiguo de bloques del tamaño requerido, y se actualiza el bloque cabecera. Una vez que el

segmento de datos ha adquirido una extensión la mantiene hasta que dicho segmento se elimina o se trunca (truncate).

Las tuplas de las tablas pueden almacenarse enteramente o a trozos. Esto ocurre cuando las filas son demasiado grandes para

ajustarse a un bloque Oracle o cuando se actualiza una fila existente haciéndola aumentar de tamaño de una forma considerable.

Una extensión asignada a un objeto deja de pertenecerle cuando se borra el objeto (drop). Es decir, si se borran tuplas únicamente

(delete), entonces los bloques libres siguen perteneciendo al objeto, no a los otros objetos del tablespace, y por lo tanto no tiene

ningún efecto sobre la cantidad de espacio asignado a esa tabla. En caso de tratarse de un segmento de índices, este sí se puede

eliminar indirectamente al eliminar las tablas de datos a los que indexan.

Aunque el límite teórico de extensiones en un segmento es prácticamente ilimitado, la mayor parte de las operaciones de

mantenimiento funcionan mejor si se limitan las extensiones por objeto a un número inferior a 4000.

Page 8: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-8

Contenido de un bloque de datos

Los bloques de datos Oracle se componen de las siguientes partes:

• Cabecera de bloque: Contiene información relativa al bloque:

- Dirección del bloque, fecha de creación, tipo (datos / índices / cluster (agrupación de tablas))

- Un slot de 23 bytes por cada una de las transacciones concurrentes que utilizan las tuplas almacenadas en el bloque.

Su función es almacenar las modificaciones.

- Directorio de tablas en cluster: Existe únicamente para los bloques de las tablas en cluster. Contiene el número de

tablas en cluster y el valor de la clave del cluster.

- Directorio de líneas: Contiene, para cada línea del bloque, su dirección en el bloque.

La cabecera crece hacia abajo desde el principio del bloque.

• Líneas de datos: Es el lugar donde se ubican las tuplas de datos. Este espacio crece hacia arriba desde el final del bloque.

• Espacio libre: Se encuentra en el medio del bloque. Permite que la cabecera y las líneas crezcan cuando se precise. Las

líneas ocupan este espacio cuando se insertan nuevas filas o se actualiza el contenido de sus columnas aumentando su

tamaño. La cabecera crece en caso de que aumente el directorio de líneas (al incorporarse una nueva tupla) o existan más

transacciones concurrentes que las inicialmente previstas.

Inicialmente, el espacio libre es contiguo. Sin embargo, los borrados y actualizaciones pueden fragmentarlo. Es posible

desfragmentarlo.

Page 9: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-9

Segmentos

Existen diferentes tipos de segmentos:

• Segmentos de datos: Propio de cada tabla. En caso de tratarse de una tabla particionada, cada partición tiene un

segmento de datos. Cada cluster (agrupación de tablas) tiene un segmento de datos. Los datos de cada tabla en el cluster

se almacenan en el segmento de datos del cluster.

• Segmentos de índices: Cada índice tiene un segmento de índices que almacena sus datos. Si el índice está particionado,

cada partición tiene un segmento de índice.

• Segmentos de trabajo: Ocupan una parte de los bloques de los archivos de datos. Esta parte es utilizada por Oracle para

sus propias necesidades. Pueden ser de 4 tipos:

Page 10: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-10

Segmentos de trabajo1. Segmentos de Rollback: Almacenan la imagen anterior (inicial) de los bloques de datos o índices que se están modificando.

Un elemento de un segmento de Rollback es el conjunto de bloques con la imagen anterior de las tuplas que son

modificadas por una transacción concreta.

Todos los bloques de datos e índices en curso de modificación son copiados con sus valores iniciales en un segmento de

Rollback. Como veremos posteriormente, la copia se hace inicialmente en memoria (en el buffer de Rollback) y, únicamente

en caso de un checkpoint, se llevan los datos al Archivo de Datos (al segmento de Rollback). Si la transacción finaliza

normalmente, estos bloques no son utilizados. Por el contrario, si la transacción es anulada o termina anormalmente, estos

bloques serán utilizados para restituir el estado de la BD al momento anterior al inicio de la transacción, llevándolos a

memoria de nuevo.

Toda BD contiene el segmento de ROLLBACK SYSTEM y, por defecto, se crea un segmento de Rollback por cada nuevo

usuario. En el caso de existir varios segmentos de Rollback, es Oracle quien decide la distribución de los bloques imagen

anterior sobre estos segmentos, y quien “dirige” las transacciones hacia los segmentos de Rollback. El número de

segmentos de Rollback puede influir sobre el rendimiento de la BD.

Los segmentos de Rollback se gestionan con extensiones igual que los segmentos de datos. En este caso, hay dos

extensiones iniciales y, eventualmente, otras extensiones en función de las necesidades.

El mecanismo de asignación de extensiones en los segmentos de rollback es el siguiente: los bloques correspondientes a

varias transacciones pueden estar en una misma extensión. Cuando ésta se llena y una transacción tiene necesidad de más

espacio, Oracle busca si existe una extensión ya asignada pero limpia (conteniendo bloques de transacciones no activas). Si

no la encuentra, asigna una nueva extensión. Cada extensión debería ser lo suficientemente grande como para gestionar los

datos de, al menos, una transacción.

Page 11: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-11

Segmentos de trabajo (continuación)

Comandos SQL asociados a los segmentos de Rollback:

Para la creación de los segmentos de Rollback se utiliza el comando CREATE ROLLBACK SEGMENT, donde:

•PUBLIC indica si puede ser utilizado para todas las instancias de la BD (en otro caso solo podrá ser utilizado por las instancias

especificadas en el archivo de parámetros INIT.ORA)

•TABLESPACE indica el tablespace donde será creado (por defecto en el tablespace SYSTEM)

Para modificar los parámetros de almacenamiento de un segmento de Rollback ya existente, o desactivarlo, se emplea ALTER

ROLLBACK SEGMENT.

DROP ROLLBACK SEGMENT borra el segmento de Rollback. Para ello, el segmento no puede estar en uso. Para saberlo es posible

consultar el atributo STATUS de la tabla del catálogo DBA_ROLLBACK_SEGS.

Page 12: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-12

Segmentos de trabajo (continuación)

2. Segmentos Temporales: Son creados por Oracle para las sentencias SQL que precisan un área de trabajo temporal para

completar su ejecución: la creación de índices, la ordenación y el join sin índices sobre tablas grandes (CREATE INDEX, ORDER

BY, DISTINCT, GROUP BY, UNION, INTERSECT, ...). Cada usuario tiene asignado un espacio de tablas temporal, que se

especifica al crear la cuenta.

Se puede crear un tablespace temporal predeterminado para todos los usuarios (CREATE TEMPORARY TABLESPACE). En caso

contrario, estos segmentos se almacenan en el tablespace SYSTEM o en los tablespaces de usuario.

La asignación de extensiones se hace de la misma forma que para los segmentos de datos. Los parámetros de asignación son

los del tablespace donde se encuentre el segmento temporal. El segmento se amplía por sí mismo cuando es preciso, y se

elimina cuando la operación concluye o encuentra un error. Las diferentes extensiones que ha utilizado una operación son

suprimidas y, por tanto, devueltas a la BD.

Se deben mantener los objetos temporales en su propio tablespace. Haciéndolo así se eliminan los problemas de rendimiento

asociados a la mezcla de segmentos temporales con otros objetos de la BD.

3. Segmentos Rollback Diferidos: Los segmentos diferidos son utilizados por Oracle para colocar los bloques imagen anterior de

un tablespace cuando éste está offline. Estos bloques serán recuperados cuando el tablespace sea puesto de nuevo en

servicio (online) y, por la misma razón, el espacio que ellos ocupaban será liberado.

4. Segmento de Arranque (BOOTSTRAP): El segmento de arranque es un segmento de al menos 50 bloques, creado por Oracle

para sus propias necesidades durante la creación de la BD. Este segmento no crece durante toda la vida de la BD.

Page 13: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-13

Tablespaces y archivos de datos

Un tablespace es una unidad lógica de almacenamiento que se puede utilizar para agrupar estructuras lógicas relacionadas (tablas,

índices, etc.). Es la unidad más pequeña para operaciones de mantenimiento (supresión, puesta en activo (online/offline), copias de

seguridad y restauración, entre otros). Cada base de datos está dividida lógicamente en uno o más tablespaces.

Un tablespace tiene un nombre y consiste en uno o varios archivos de datos que almacenan físicamente los datos de todas sus

estructuras lógicas. Cada archivo de datos puede contener una parte de una tabla o de un índice, una o varias tablas, uno o varios

índices, etc.

Una tabla o un índice se encuentra en un, y sólo en un, tablespace. En el momento de su creación es cuando el usuario decide en

qué tablespace será depositado. El usuario no puede elegir el archivo físico donde se almacenará el objeto.

El DBA puede imponer un tablespace particular para los objetos de un usuario.

El DBA no puede suprimir un archivo de un tablespace si no ha suprimido antes el propio tablespace. Por el contrario, este puede

siempre “aumentar” un tablespace añadiendo en él un archivo físico.

Page 14: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-14

Oracle Managed Files (OMF)

Oracle Managed files (OMF) elimina la necesidad de gestionar los ficheros del S.O. relativos a una BD Oracle. Se especifican

operaciones en términos de objetos de la BD y no de los nombres de los archivos. La BD utiliza internamente interfaces al sistema

de archivos para crear y borrar los archivos correspondientes a tablespaces, archivos redo log, archivos de control, archivado de

logs, backups, …

Una BD puede combinar ficheros gestionados o no por Oracle. El directorio del sistema de archivos debe existir, ya que Oracle no lo

crea. Además, debe tener permisos para que la BD pueda crear archivos en él.

Page 15: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-15

Gestión de Espacio en Tablespaces

Los tablespaces asignan espacio en extensiones. Los tablespaces se pueden crear para utilizar uno de los dos siguientes

métodos de realización de seguimiento de espacio libre o usado:

• Tablespaces gestionados localmente: Las extensiones se gestionan en el tablespace a través de bitmaps. Cada bit

del bitmap corresponde a un bloque o grupo de bloques. Cuando una extensión se asigna o se libera para volver a

utilizarla, el servidor de Oracle cambia los valores del bitmap para mostrar el nuevo estado de los bloques.

• Tablespaces gestionados por diccionario: El diccionario de datos gestiona las extensiones libres. Siempre que se

asigna o se anula la asignación de una extensión el servidor de Oracle actualiza las tablas correspondientes del

diccionario de datos. Este tipo de tablespaces se soportan únicamente por compatibilidad con versiones anteriores;

se recomienda utilizar la gestión local para todos los tablespaces.

Page 16: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-16

Creación de un Nuevo Tablespace

Aspectos a tener en cuenta a la hora de crear un tablespace:

• Para crear un tablespace igual a otro existente, seleccionar el tablespace existente y elegir Create Like en el menú Actions

• Los tablespaces permanentes (Type = Permanent) almacenan objetos de base de datos permanentes creados por el

sistema o por usuarios.

• Seleccionando Status=Read Write los usuarios podrán leer y escribir en el tablespace una vez creado. Es el valor por

defecto.

Para deshabilitar el acceso al tablespace debe elegirse la opción Status=OFFLINE.

Nota: Para conocer el estado de los tablespaces puede consultarse el atributo STATUS de la vista del catálogo

DBA_TABLESPACES.

• Los tablespaces deben tener al menos un archivo de datos. Se añaden en Datafiles. Los tablespaces de archivo grande se

utilizan con BDs muy grandes en las que la Gestión Automática de Almacenamiento (ASM) de Oracle u otros gestores de

volúmenes lógicos soportan la segmentación o RAID, además de volúmenes lógicos extensibles dinámicamente.

Page 17: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-17

Almacenamiento de Tablespaces Gestionados Localmente

Las extensiones de un tablespace (Extent Allocation) gestionado localmente se pueden asignar de uno de los dos modos

siguientes:

• Automatic: Especifica que el tamaño de las extensiones del tablespace lo gestiona el sistema, por lo que no se puede

especificar un tamaño de extensión. No se puede especificar Automatic para un tablespace temporal.

• Uniform: Especifica que el tablespace está gestionado con extensiones uniformes con un tamaño especificado. El tamaño

por defecto es 1 MB. Todas las extensiones de tablespaces temporales tienen un tamaño uniforme, por lo que para este

caso es opcional. No se puede especificar Uniform para un tablespace de deshacer.

Gestión de espacio de segmento (Segment Space Management) en un tablespace gestionado localmente:

• Automatic: Oracle utiliza bitmaps para gestionar el espacio libre en segmentos. Un bitmap, en este caso, es un mapa que

describe el estado de cada bloque de datos de un segmento con respecto a la cantidad de espacio del bloque disponible

para insertar filas. A medida que hay más o menos espacio disponible en un bloque de datos, su nuevo estado se refleja en

el bitmap. Los bitmaps permiten a Oracle gestionar el espacio libre de forma más automática y, por lo tanto, esta forma de

gestión de espacio se denomina gestión automática de espacio de segmento.

• Manual: Indica a Oracle que desea utilizar listas de bloques libre para la gestión de espacio libre en segmentos. Las listas de

bloques libres son listas de bloques de datos que tienen espacio disponible para la inserción de filas. Esta forma de gestión

de espacio en segmentos se denomina gestión manual de espacio de segmento debido a la necesidad de especificar y

ajustar los parámetros de almacenamiento PCTUSED, FREELISTS y FREELIST GROUPS para objetos de esquema creados en

el tablespace.

La gestión manual se soporta para la compatibilidad con versiones anteriores; se recomienda la gestión automática.

Page 18: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Ventajas de los Tablespaces Gestionados Localmente frente a los Gestionados por Diccionario

• Evita operaciones recursivas de gestión de espacio. Esto puede suceder en los tablespaces gestionados por

diccionario si el consumo o la liberación de espacio en una extensión da como resultado otra operación que

consume o libera espacio en un segmento de rollback o en una tabla del diccionario de datos.

• Datos que no registran espacio libre en las tablas del diccionario de datos, se reduce la contención de estas tablas.

• La gestión local de extensiones realiza automáticamente un seguimiento del espacio libre adyacente, que elimina

la necesidad de fusionar extensiones libres.

• El sistema puede determinar automáticamente los tamaños de las extensiones gestionadas localmente.

• Los cambios en los bitmaps de extensiones no generan información de rollback al no actualizar las tablas del

diccionario de datos.

Logging

Los cambios realizados en los objetos del tablespace se registran en los archivos redo log en línea (en memoria) y

se puede escribir en los archivos redo log. Si se desactiva esta opción, lo objetos de este tablespace no se podrán

recuperar en caso de fallo de cualquier tipo.

Block Information

Esta región muestra el tamaño del bloque para el tablespace a crear.

Oracle Database 10g: Taller de Administración I 1-18

Page 19: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-19

Tablespaces por defectoLos siguientes tablespaces se crean automáticamente en la BD preconfigurada:

• SYSTEM: Almacena tablas que soportan las funcionalidades principales de la BD, como las tablas del diccionario de

datos y las que incluyen información administrativa sobre la BD, incluidas en el esquema SYS. Este tablespace no

puede ser suprimido; tampoco pueden suprimirse los archivos que lo constituyen. Se recomienda no utilizar este

tablespace para almacenar datos de usuario para evitar problemas de gestión del espacio, que obligarían a

reconstruir el tablespace. Dado que la única forma de reconstruir el tablespace System consiste en volver a crear la

BD, debe desplazarse de SYSTEM todo aquello que se pueda.

• SYSAUX: Es un tablespace auxiliar al SYSTEM. Almacena muchos componentes de la BD, y debe estar online para

garantizar el correcto funcionamiento de todos los componentes de la BD.

A través de Enterprise Manager, pueden monitorizarse los componentes del tablespace, detectar la existencia de

elementos que crecen rápidamente, y moverlos a otros tablespaces.

• TEMP: Se utiliza para almacenar tablas e índices temporales al procesar sentencias SQL. Todas las BDs deben tener

un tablespace temporal que se asigna a los usuarios.

• UNDOTBS1: Es el tablespace de rollback utilizado por Oracle y se crea en el momento de la creación de la BD. Si la

BD utiliza la Gestión Automática de Deshacer, debe haber exactamente un tablespace de rollback en cada instante.

• USERS: Se utiliza para almacenar objetos y datos de usuarios permanentes. Es el tablespace por defecto para todos

los objetos creados por usuarios que no son del sistema. Para usuarios SYS y SYSTEM (los usuarios del sistema), el

tablespace permanente por defecto es SYSTEM.

• EXAMPLE: Contiene esquemas de ejemplo que se pueden instalar al crear la BD.

Page 20: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-20

El DBA puede crear varios tablespaces para:

• repartir los datos sobre varios discos; esto permite evitar la contención a nivel de disco y mejorar los tiempos de

respuesta.

• establecer cuotas de espacio de usuario

• organizar los datos en unidades lógicas, cada una conteniendo los datos de una aplicación o de un usuario particular.

• facilitar las operaciones de salvaguarda y restauración. Por ejemplo, para hacer una copia de seguridad de los datos de

una aplicación solamente se hará del tablespace que la contiene

• controlar la disponibilidad de los datos, puesto que un DBA no puede poner en activo o desactivar una tabla

directamente, es necesario que lo haga vía su tablespace

• para simplificar la administración, es común crear un tablespace para almacenamiento de índices únicamente.

Page 21: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-21

Modificación de un Tablespace

Además del nombre, en un tablespace es posible modificar su estado:

• Read Write: El tablespace está online y se puede leer y escribir en él.

• Read Only: Las transacciones se pueden terminar (confirmar o abortar), pero no se permite ninguna otra operación DML,

excepto realizar un rollback de las transacciones existentes que modificaron previamente bloques del tablespace. El

tablespace está online mientras mantiene este estado. No es posible hacer que los tablespaces SYSTEM o SYSAUX sean de

sólo lectura.

• Offline: Indica que el tablespace debe desconectarse…

- Normal: Cuando ningún usuario esté accediendo a él. Oracle asegura que todos los datos han sido escritos a disco

estableciendo un checkpoint para todos los archivos de datos del tablespace.

- Temporary: Temporalmente. En este caso, Oracle pone offline los archivos de datos que aún no lo estén, estableciendo

a la vez un checkpoint en los mismos.

Si no hay ningún archivo offline, no es necesaria la recuperación del medio físico para volver a poner el tablespace

online. Sin embargo, si existen archivos offline debido a errores de escritura, el tablespace necesita la recuperación

antes de ponerlo de nuevo online.

- Immediate: De forma inmediata, sin que Oracle establezca un checkpoint en los archivos de datos. En este caso, es

necesaria la recuperación física del tablespace para poder poner online de nuevo el tablespace.

No es posible poner un tablespace offline inmediatamente si la BD se está ejecutando en modo NOARCHIVELOG.

- For Recover: Este valor ya no se utiliza. Se soporta la sintaxis por compatibilidad con versiones anteriores.

Cambio de tamaño: Puede aumentarse o reducirse el espacio del tablespace agregando un nuevo archivo de datos o

aumentando/reduciendo el tamaño de un archivo de datos existente.

Thresholds (umbrales): Permite cambiar las alertas de espacio utilizado por el tablespace. Tiene tres opciones: Use Database Default

Thresholds (valores por defecto, parametrizables), Specify Thresholds (definición de umbrales para el tablespace actual), Disable

Thresholds (desactivación de alertas de uso de espacio para ese tablespace).

Page 22: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-22

Acciones con Tablespaces• Add Datafile

• Create Like: Crear otro tablespace utilizando el actual como plantilla

• Generate DDL: Genera la sentencia DDL que crea el tablespace.

• Make Locally Managed: Si el tablespace actual está gestionado por diccionario, lo convierte en gestionado localmente.

• Make Readonly: Para las escrituras en el tablespace. Espera a que terminen las transacciones actuales, pero no permite

iniciar nuevas sentencias DML ni actividades de escritura en el tablespace.

• Make Writable: Permite iniciar sentencias DML y actividades de escritura en objetos del tablespace.

• Place Online: Activa de nuevo el tablespace

• Reorganize: Inicia el asistente de reorganización, que se puede utilizar para mover objetos en el tablespace con el fin de

reclamar espacio. Esta tarea debe realizarse en los momentos de menor uso de los objetos del tablespace.

• Run Segment Advisor: El Asesor de Segmentos ayuda a determinar si un objeto tiene espacio disponible para la

recuperación en función del nivel de fragmentación de espacio en el objeto. En el nivel de tablespace, se genera un

consejo para cada segmento del tablespace

• Show Dependencies: Muestra objetos de los que depende este tablespace o sus objetos.

• Show Tablespace Contents: Muestra información sobre los segmentos del tablespace, incluyendo un mapa gráfico de

todas las extensiones.

• Take Offline: Desactiva el tablespace. El tablespace no se suprime ni borra, simplemente no está disponible.

Page 23: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-23

Borrado de Tablespaces

Puede borrarse un tablespace y sus contenidos (los segmentos incluidos en el tablespace), para lo cual debe tenerse el

privilegio del sistema DROP TABLESPACE.

Al borrar un tablespace se eliminan los punteros asociados del archivo de control de la BD. Opcionalmente puede

indicarse a Oracle que suprima los archivos de datos del S.O. Si no se elige esta opción, entonces habrá que utilizar

posteriormente los comandos correspondientes del S.O. para suprimirlos.

No se puede eliminar un tablespace activo. En el momento del borrado, el tablespace puede estar online u offline, pero se

recomienda ponerlo offline antes de borrarlo.

Page 24: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-24

Visualización de la información del tablespace

Se puede obtener información del tablespace a través del Enterprise Manager, o consultando lo siguiente:

• Información de tablespaces:

- DBA_TABLESPACES

- V$TABLESPACE

• Información de archivos de datos:

- DBA_DATA_FILES

- V$DATAFILE

• Información de archivos temporales:

- DBA_TEMP_FILES

- V$TEMPFILE

Page 25: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-25

Page 26: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-26

Visualización de los contenidos del tablespace

A través de Enterprise Manager puede obtenerse información detallada sobre el tablespace, incluyendo una lista de los

segmentos del tablespace, el tipo de cada segmento, el tamaño de los segmentos, y el número de extensiones que posee cada

segmento.

En caso de tratarse de una tabla gestionada mediante diccionario, se visualizan además:

• Max Extents

• Next

• Percent Increase

Es posible visualizar las extensiones de forma gráfica, expandiendo el “Extent map”. En este caso se muestra la siguiente

información:

• Nombre del segmento al que pertenece la extensión

• Identificador de la extensión

• Identificador del bloque

• Tamaño de la extensión en bloques

• Archivo de datos en donde se almacena la extensión

Page 27: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-27

Aumentando la BD

Estas actividades pueden realizarse directamente con Enterprise Manager o con sentencias SQL.

Page 28: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-28

¿Qué es un esquema?

Es una colección de objetos de BD propiedad de un usuario concreto. Habitualmente, en una BD de producción, el usuario no

representa una persona, sino una aplicación. El esquema tiene el mismo nombre que su propietario. Los objetos de esquema son

estructuras lógicas que hacen referencia directa a datos de la BD, e incluyen estructuras como tablas, vistas e índices. Los objetos

del esquema se manipulan mediante sentencias SQL o el Enterprise Manager.

Nota: No hay relación entre un tablespace y un esquema. Los objetos del mismo esquema pueden estar en distintos tablespaces, y

un tablespace puede contener objetos de distintos esquemas.

Al crear la BD, se crean dos esquemas:

• SYS: Contiene el diccionario de datos, con información de usuarios, objetos de esquema y estructuras de almacenamiento.

No debe modificarse nunca los objetos de este esquema ni crear nuevas tablas

• SYSTEM: Contiene tablas y vistas adicionales con información administrativa, así como tablas y vistas internas utilizadas por

diferentes herramientas de Oracle. No debe crearse objetos adicionales en este esquema.

• Esquemas de ejemplo:

- HR(Human Resources): es un esquema simple para introducir los conceptos básicos.

- OE(Order Entry) : incluye múltiples tipos de datos. Posee el subesquema OC (Online Catalog) con una colección de

objetos de BD objeto-relacional.

- PM(Product Media): dedicado a tipos de datos multimedia.

- SH(Sales History): posee gran cantidad de datos para mostrar, por ejemplo, el procesamiento analítico avanzado.

Page 29: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-29

Page 30: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-30

Nomenclatura de objetos de Base de Datos

Al asignar un nombre entrecomillado a un objeto de la BD pueden romperse varias de las reglas de nomenclatura

indicadas. Sin embargo, no se recomienda esta operación porque siempre habrá que hacer referencia al objeto con

el nombre entre comillas. Por ejemplo, si se crea una tabla con nombre “Local Temp,” debe realizarse lo siguiente:

SQL> select * from "Local Temp";

TEMP_DATE LO_TEMP HI_TEMP

--------- ---------- ----------

01-DEC-03 30 41

Si se escriben mal las mayúsculas y minúsculas se obtiene un error:SQL> select * from "local temp";

select * from "local temp"

*

ERROR at line 1:

ORA-00942: table or view does not exist

Los nombres sin entrecomillar se almacenan en mayúsculas y no son sensibles a mayúsculas/minúsculas.

Page 31: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-31

Nomenclatura de objetos de Base de Datos

Los identificadores sin entrecomillar sólo pueden incluir caracteres alfanuméricos del juego de caracteres de la BD

y el carácter de subrayado (_), el signo del dólar ($) y el signo de almohadilla numérica (#).

Los enlaces de base de datos también pueden contener puntos (.) y el signo de arroba (@). No se recomienda el

uso de $ y # en identificadores sin entrecomillar.

Los identificadores entre comillas pueden incluir cualquier carácter y signo de puntuación, así como espacios. Sin

embargo, ni los identificadores entre comillas ni los sin entrecomillas pueden contener comillas dobles.

Page 32: (Microsoft PowerPoint - Pr\341ctica 1.- Arquitectura L\363gica [Modo

Oracle Database 10g: Taller de Administración I 1-32