Vous êtes sur la page 1sur 18

Manuel Vergaz.

La gestin de los espacios de tablas

Introduccin ................................................................................................. 2
Creacin de espacios de tablas ........................................................................ 3
El espacio de tablas UNDO .............................................................................. 4
La gestin automtica de undo ..................................................................... 4
undo_retention ........................................................................................... 4
Crear espacios de tablas undo ...................................................................... 4
Opciones del espacio de tablas undo ............................................................. 5
Eliminacin de un espacio de tablas undo ...................................................... 5
Consultar informacin sobre los espacios de tablas undo ................................. 6
Los segmentos de rollback ........................................................................... 6
Ejercicios con espacios de tablas undo ........................................................... 6
Espacios de tablas temporales ......................................................................... 9
Crear un espacio de tablas temporal ............................................................. 9
Modificar un espacio de tablas temporal......................................................... 9
Crear grupos de espacio temporal ................................................................10
Espacios de tablas permanentes .....................................................................11
Default storage ..........................................................................................12
Tablas de flashback ....................................................................................13
Tablas enormes .........................................................................................13
Espacios de tabla de slo lectura .................................................................13
Eliminacin de los espacios de tablas............................................................13
Ficheros de datos .......................................................................................14
Informacin de los ficheros .........................................................................14
Ejercicios con espacios de tablas regulares ....................................................16
Documentacin ............................................................................................18
Manuel Vergaz. La gestin de los espacios de tablas

Introduccin
Los espacios de tablas han sido diseados para el almacenamiento de tablas,
ndices, vistas materializadas y otros componentes de almacenamiento del sistema
como los segmentos de rollback. De forma predeterminada el propio sistema
guarda su informacin en el espacio de tablas system. El resto de los datos deben
residir en espacios separados y bien definidos con el objetivo de implementar
correctamente polticas de seguridad.

Uso de mltiples espacios de tablas


El uso de mltiples espacios de tablas permite una mayor flexibilidad en la
ejecucin de las operaciones de base de datos. Dotar a una base de datos de
mltiples espacios de tablas permite:
- Reducir el acceso al dispositivo de almacenamiento,
- Dirigir a las aplicaciones hacia sus datos de forma segura y exclusiva
- Gestionar redundancias funcionales con respecto al almacenamiento,
- Optimizar los espacios de tablas al tipo de tablas que va a albergar

Hay sistemas operativos que tienen lmites al nmero de ficheros abiertos de forma
simultnea. Tenga esto es cuenta cuando planifique su poltica de espacios de
tablas.

-2-
Manuel Vergaz. La gestin de los espacios de tablas

Creacin de espacios de tablas


Antes de crear un espacio de tablas, se debe crear una base de datos que
contienen. El principal espacio de tablas en cualquier base de datos es el espacio de
tablas del sistema, que contiene informacin bsica para el funcionamiento del
servidor de base de datos, tales como el diccionario de datos y el segmento de la
restauracin del sistema. El espacio de tablas del sistema es el primer espacio de
tablas creado. Es administrado como cualquier otro espacio de tablas, pero requiere
un mayor nivel de privilegios y est limitado en algunos aspectos. Por ejemplo, no
puede renombrar ni eliminar el espacio de tablas SYSTEM o desconectarlo.
El espacio de tablas SYSAUX, que acta como un espacio de tablas auxiliares para
el espacio de tablas del sistema, es creado al mismo tiempo que la base de datos.
Contiene informacin acerca de los esquemas y viene a ser utilizado por diversos
productos de Oracle con el objetivo de que estos productos no requieran sus
propios espacios de tabla. Al igual que en el caso de las tablas de sistema la gestin
del espacio de tablas SYSAUX requiere un mayor nivel de seguridad y no se le
puede cambiar el nombre ni desconectar.
Para poder crear espacios de tablas se necesita contar con el privilegio create
tablespace. Este privilegio slo afecta a los espacios de tabla regulares. Existen
otros privilegios especficos para los espacios de tablas undo y temporales.
El espacio de tablas undo est especialmente diseado para contener registros de
deshacer. Entre estos se encuentran los de retroceder, o deshacer, los cambios en
la base de datos para la recuperacin, leer la coherencia, o la peticin de un
comando ROLLBACK.

-3-
Manuel Vergaz. La gestin de los espacios de tablas

El espacio de tablas UNDO


El espacio de tablas UNDO contiene los segmentos de rollback (deshacer) de
todas las transacciones. Los espacios de tabla undo permiten, entre otras cosas:
- realizar operaciones de rollback
- recuperar la base de datos
- aumentar la consistencia de lecturas
- recuperacin efectiva de datos corruptos tras un flashback.

La gestin automtica de undo


El sistema, durante su lanzamiento, tratar de conectar y usar un espacio de tablas
undo de forma predeterminada. Si desea que la gestin de ese espacio de tablas
undo se realice de forma automtica debe configurar el parmetro
undo_management del fichero init.ora as:
undo_management=auto;

undo_retention
Se trata de un valor dinmico que indica en segundos -por defecto 900-, cunto
tiempo ha de permanecer la informacin de undo disponible. Si se necesita espacio
para las transacciones activas y no hay existe el suficiente, se reutiliza el existente
y puede provocar el fallo de consultas muy largas.
Para establecer un periodo de retencin undo use la siguiente sintaxis:
- En el fichero init.ora:
undo_retention = 1800
- Con alter system:
alter system set undo_retention = 2400;

Crear espacios de tablas undo


Hay dos maneras de crear un espacio de tablas undo. Desde el fichero de
parmetros de inicio (init.ora) o con la sentencia create undo tablespace.

Creacin de espacios de tablas undo en el fichero init.ora


Edite el fichero init.ora de la siguiente manera:
undo_management = auto
undo_tablespace = undo_rbs1
Cuando haya iniciado el gestor use esta sintaxis para comprobar los cambios en
init.ora:
select * from v$system_parameters where name like '%undo%';
Puede averiguar cuntos espacios de undo estn definidos en la base de datos
(nombre, caractersticas de almacenamiento, ...) con la siguiente sintaxis:
select tablespace_name, initial_extent, next_extent, min_extents,
max_extents, status, contents from dba_tablespaces where
contents='UNDO';

-4-
Manuel Vergaz. La gestin de los espacios de tablas

Puede conocer el nombre de los ficheros fsicos de sus espacios de uno con la vista
dba_data_files:
select tablespace_name, file_name, file_id, bytes from dba_data_files
where tablespace_name='UNDO_RBS1';

Creacin de espacios de tablas undo con create undo tablespace


Puede crear su espacio de tablas undo con la siguiente sentencia:
create undo tablespace undotbs_02
datafile 'ruta\undo02.dbf' size 2m reuse autoextend on;

Compatibilidad entre espacios de tablas undo


Puede tener cuantos espacios de tablas undo quiera pero slo uno puede estar
activo en un momento dado.
Para intercambiar entre espacios de tabla use:
alter system set undo_tablespace = undotbs_02;

Opciones del espacio de tablas undo


Ficheros asociados
Puede asociar ficheros al espacio de tablas undo que desee:
alter tablespace undotbs_01
add datafile 'ruta\undo0102.dbf' autoextend on next 1m
maxsize unlimited;
o retirar:
alter tablespace undotbs_01 drop datafile 'ruta\undo0102.dbf'

Crecimiento del fichero


Puede establecer el crecimiento del fichero con la sintaxis siguiente:
create undo tablespace undo03
datafile 'ruta\undo03.dbf' size 1M
default storage (initial 100k next 100k maxextents 50);
Si lo que quiere es modificar el tamao de un espacio de tablas undo ya establecido
use la sentencia alter database:
alter database datafile 'ruta\undo03.dbf' resize 100m;

Eliminacin de un espacio de tablas undo


Puede eliminar tantos espacios de tablas como quiera menos uno. Para poder
eliminarlo no debe estar activo en ese momento.
Para comprobar si un espacio de tablas undo est activo (on line) use la siguiente
sentencia:
select tablespace_name, contents, status
from dba_tablespaces where
contents='UNDO';
Si el espacio de tablas activo es el que va a eliminar, active otro:
alter system set undo_tablespace = undotbs_02;
Luego, use drop tablespace as:
drop tablespace undo03;

-5-
Manuel Vergaz. La gestin de los espacios de tablas

Si adems desea eliminar los ficheros fsicos use:


drop tablespace undo03 including contents;

Consultar informacin sobre los espacios de tablas undo


A continuacin se muestra una tabla de vistas en las que puede consultar todo lo
referente a los espacios de tablas undo:
Vista Descripcin
V$UNDOSTAT Contiene estadsticas para afinar los espacios de tablas
undo.
V$ROLLSTAT Informacin del comportamiento automtico de los
segmentos de rollback.
V$TRANSACTION Contiene informacin de los segmentos de rollback
DBA_UNDO_EXTENTS Muestra el espacio usado por cada extensin del
tablespace.
DBA_HIST_UNDOSTAT Contiene instantteas de V$UNDOSTAT

Los segmentos de rollback


Se puede crear segmentos de rollback y asociarlos a un espacio de tablas:
create public rollback segment rollback_segment1
tablespace undots01;
Opcionalmente se puede establecer sus opciones de crecimiento:
create public rollback segment rollback_segment1
(initial 1M next 1M minextents 20)
tablespace undots01;
Ponga en lnea su nuevo segmento de rollback:
alter rollback segment rollback_segment1 online;
Para asignar al segmento de rollback rollback_segment1 la transaccin actual use:
set transaction use rollback segment rollback_segment1;
Si el sistema no lo permite, intente conectar el comportamiento undo suppress
errors:
alter system set undo_suppress_errors =TRUE;
System altered.
set transaction use rollback segment r01;
Transaction set.

Ejercicios con espacios de tablas undo


Crear un segundo espacio de almacenamiento de undo con las siguientes
caractersticas:
- Nombre ... UNDO02
- Localizacin ... ruta\undo02.dbf
- Tamao ... 1M
- Autoextensible ... 2M, hasta 3M
create undo tablespace undo02
datafile '/home/u03/oradata/CURSO01/undo02.dbf' 3 size 1M
autoextend on next 2M maxsize 3M;

-6-
Manuel Vergaz. La gestin de los espacios de tablas

- Comprobar su creacin.
select tablespace_name, file_name from dba_data_files where
tablespace_name like 'UNDO%';

Crear un espacio de almacenamiento de undo con las siguientes


caractersticas. Debe dar un error
- Nombre ... UNDO03
- Localizacin ... /home/u03/oradata/CURSOxx/undo03.dbf
- Tamao ... 1M
- storage por defecto: initial 100k, next 100k y maxextents 50.
create undo tablespace undo03
datafile '/home/u03/oradata/CURSO01/undo03.dbf' size 1M
default storage (initial 100k next 100k maxextents 50);

Modificar el espacio de undo por defecto, de forma que sea a partir de este
momento UNDO02. Comprobarlo antes y despus de hacerlo.
select * from v$system_parameters where name like '%undo%';
/
alter system set undo_tablespace=undo02;
/
select * from v$system_parameters where name like '%undo%'

Modificar el fichero de inicializacin comentando la lnea correspondiente a


la variable undo_tablespace. Cul es el espacio de undo que se habilita?
(recuerde que al cerrar la base de datos era UNDO02, ver ejercicio
anterior).
sqlplus /nolog
SQL> connect / as sysdba;
SQL> shutdown immediate
...(aqu modificar)
SQL> startup
SQL> show parameters undo

Modificar el fichero de inicializacin y asignar a la variable undo_tablespace


el valor 'UNDO02'. Parar y arrancar la base de datos.
- Borrar el espacio de undo UNDO02. Por qu no deja?
drop tablespace undo02;
Obtener la descripcin completa de las vistas siguientes.
- DBA_UNDO_EXTENTS
- V$UNDOSTAT
- V$ROLLSTAT
- DBA_SEGMENTS
- DBA_ROLLBACK_SEGS
- V$ROLLNAME

-7-
Manuel Vergaz. La gestin de los espacios de tablas

Averiguar cuntos espacios de undo dedicados a gestin automtica


existen en la base de datos y ponerlos fuera de lnea (comprobar este
punto).
select tablespace_name, contents, status from dba_tablespaces where
contents='UNDO';

Averiguar de cuntos segmentos de rollback dispone la base de datos y


cules de ellos estn activos.
select count(*) from dba_rollback_segs where status='ONLINE';
/
select owner, SEGMENT_NAME, TABLESPACE_NAME,STATUS from
dba_rollback_segs order by owner, segment_name, status;
/
- Averiguar si existe un espacio de almacenamiento para los segmentos de
rollback.
select * from dba_tablespaces;
Genere el siguiente espacio de tablas para los segmentos de rollback
- Nombre: ROLLBACKTS
- Fichero: RBS.dbf'
- Tamao: 1M
- default storage: initial 100k, next 100k, minextents 2, maxextents 5
- Crear un segmento de rollback en el espacio de tablas creado
CREATE ROLLBACK SEGMENT RPR01 TABLESPACE ROLLBACKTS;
Observar los parmetros de almacenamiento con que se ha creado el segmento
RP01. Cules son?, cules son los del espacio de almacenamiento ROLLBACKTS?
- Activar los segmentos de rollback creados anteriormente.
alter rollback segment rp01 online;
Rollback segment altered.
- Averiguar en qu espacios de almacenamiento est definido cada uno de los
segmentos de rollback de la base de datos.
select substr(owner,1,10) prop, substr(segment_name,1,10) nombre,
tablespace_name from dba_rollback_segs order by segment_name;
- Averiguar cules son los parmetros de almacenamiento de los segmentos de
rollback.
select substr(owner,1,10) prop, substr(segment_name,1,10) nombre,
INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS , PCT_INCREASE
from dba_rollback_segs where segment_name like 'R%';
- Desactivar los segmentos de rollback RP01
ALTER ROLLBACK SEGMENT RP01 offline;

-8-
Manuel Vergaz. La gestin de los espacios de tablas

Espacios de tablas temporales


Se utilizan para realizar operaciones o crear tablas de datos no perdurables como
listados u ordenamientos.

Crear un espacio de tablas temporal


Puede crear un espacio de tablas temporal con la clusula default temporary
tablespace del comando create database:
create database
default temporary tablespace temp1
tempfile 'ruta\temp1.dbf' size 100M;
Puede aadir o crear un espacio de tablas temporal con la sentencia create
temporary tablespace:
create temporary tablespace temp2
tempfile 'ruta\temp2.dbf'
size 20m reuse
extent management local uniform size 16M;

Modificar un espacio de tablas temporal


Aadir ficheros al espacio temporal
Para aadir ms ficheros a un espacio de tablas temporal use
alter tablespace temp2
add tempfile 'ruta\temp22.dbf' size 18M reuse;

Poner en lnea o sacer de lnea un espacio de tablas


Para poner en lnea o sacer de lnea un espacio de tablas temporal use:
alter tablespace temp2 tempfile offline;
alter tablespace temp2 tempfile online;

Redimensionar un fichero de un espacio de tablas temporal


Puede redimensionar un fichero de un espacio de tablas temporal:
alter database tempfile 'ruta\temp22.dbf' resize 18M;

Eliminar un fichero del espacio de tablas temporal


alter database tempfile 'ruta\temp22.dbf'
drop including datafiles;

Eliminar un espacio de tablas temporal


drop temporary tablespace including contents.

-9-
Manuel Vergaz. La gestin de los espacios de tablas

Crear grupos de espacio temporal


Es posible agrupar los ficheros de espacio temporal en grupos para gestionarlos
centralizadamente:
create temporary tablespace temp3
tempfile 'ruta\temp3.dbf'
size 50M tablespace group group1;

El grupo se crea implcitamente.

Si el espacio temporal ya est en un grupo puede moverle de grupo con alter


tablespace:
alter tablespace temp3 tablespace group group2;

Puede comprobar la pertenencia de un espacio temporal a un grupo mediante la


vista dba_tablespace_groups

Si desea quitar al tablespace de un grupo pero no asignarle a ningn otro use las
comillas simples:
alter tablespace temp3 tablespace group '';

Asignar un grupo de espacios de tablas como el predeterminado


Use la siguiente sentencia si quiere que un grupo de espacios de tablas concreto
sea el predeterminado:
alter database sample default temporary tablespace group2;

- 10 -
Manuel Vergaz. La gestin de los espacios de tablas

Espacios de tablas permanentes


Gestin local del espacio temporal
Puede configurar su gestor para que todos los espacios de tablas sean gestionados
localmente mediante mapas de bits. Entre otros ofrece las siguientes ventajas:
- Rapidez en operaciones concurrentes.
- Mejor rendimiento de lectura. La gestin local de tablas temporales no generan
deshacer o rehacer.
- La asignacin de espacio es simplificada, ya que cuando la clusula
AUTOALLOCATE se especifica, la base de datos selecciona automticamente el
tamao de la medida en que proceda.

Creacin de un espacio de tablas de gestin local


El siguiente comando crea un espacio de tablas de gestin local:
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
extent management local autoallocate;
Aunque en principio todas las nuevas tablas son creadas con este tipo de gestin, la
clusula es necesaria para elegir entre autoallocate y uniform:
- Autoallocate: indicado para espacios de tablas con tablas de diferentes
tamaos
- Uniform: indicado para espacios de tablas con tablas del mismo tamao
De forma predeterminada las extensiones de la gestin local son de 64K. Eso quiere
decir que los segmentos crecern a ese ritmo a no ser que se diga otra cosa:
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
extent management local autoallocate size 128k;

Gestin del segmento del espacio de tablas local


La clusula segment permite determinar el modo de gestin de los segmentos de
este espacio de tablas:
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
extent management local autoallocate
segment space management auto;
Alternativamente se podra haber elegido una gestin manual de las extensiones.
Esto significara que se debe gestionar manualmente la lista de extensiones libres
del fichero de datos para asignarlas a un segmento.
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
extent management local autoallocate
segment space management manual;

Modificar los parmetros de un espacio de tablas


La sentencia alter tablespace permite modificar cualquiera de los parmetros del
espacio de tablas:
- Para aadir un fichero:
alter tablespace localts

- 11 -
Manuel Vergaz. La gestin de los espacios de tablas

add datafile 'ruta\localts02.dbf' size 1m;


- Para poder fuera de lnea un espacio de tablas:
alter tablespace localts offline (immediate | normal | temporary)
- Para modificar el acceso lectura o escritura:
alter tablespace localts read only (read write)
- Para modificar cualquiera de sus otros parmetros

Parmetros de crecimiento de un fichero de espacio de tablas


Los parmetros de crecimiento son:
- size: establece el tamao inicial de los ficheros
- maxsize: establece el tamao mximo de los ficheros. Puede ser unlimited
- next: establece el tamao de crecimiento de un fichero por cada estirn
- autoextend on: establece que el crecimiento sea automtico.
alter alter tablespace users
add datafile 'ruta\users03.dbf' size 10M
autoextend on
next 512k
maxsize 250m;

Gestin del acceso a los ficheros de datos


Se puede sacer de lnea un fichero individual con la sentencia alter database:
alter database datafile 'ruta\users03.dbf' offline;
Si el sistema se encuentra en noarchivelog el mtodo para sacar un fichero del
sistema es:
alter database datafile 'ruta\users03.dbf' offline for drop;

Registro de actividad
Se puede evitar que la actividad sobre este espacio de tablas sea registrada por la
bitcora:
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
nologging;
Sin embargo la clusula por defecto es logging. Como es posible que cada
segmento pueda modificar su clusula tambin, es posible predeterminar para
todos los segmentos un comportamiento de bitcora:
create tablespace localts
datafile '\ruta\localts.dbf' size 50m
force logging;

Default storage
Establece el modo de crecimiento de los segmentos. Esta clausula contiene las
siguientes opciones:
- initial. establece el tamao de la primera extensin
- next: establece el tamao de la segunda extensin
- pctincrease: establece el tamao de la n extensin
- minextents: establece el nmero mnimo de extensiones

- 12 -
Manuel Vergaz. La gestin de los espacios de tablas

- maxextents: establece el nmero mximo de extensiones


- freelist: aade procesos de lectura al encabezado de bloque

Tablas de flashback
Es posible desactivar el comportamiento flashback a cada segmento o a todos los
segmentos de un espacio de tablas:
create tablespace flashbackts
datafile '\ruta\flashbackts.dbf' size 50m
flashback off;
El comportamiento de flashback es el predeterminado.

Tablas enormes
Las tablas de grandes filas pueden ser almacenadas en espacios de tablas
especficos:
create bigfile tablespace bigts
datafile 'big_foot.dat'
size 20m autoextend on;
La limitacin se basa en que slo pueden contener un nico fichero. Puede contener
hasta 4 millones de bloques. Para un sistema de bloques de 8k eso supone 32TB

Otros tipos de bloques


Es posible asignar a los segmentos tamaos de bloque distintos a los
predeterminados por el sistema:
CREATE TABLESPACE lmtbsb DATAFILE 'ruta\raro.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
BLOCKSIZE 16K;
Las opciones de tamao sern: 2, 4, 8, 16 y 32K

Espacios de tabla de slo lectura


Para modificar el acceso a un espacio de tablas a slo lectura se utiliza el comando
alter tablespace:
alter tablespace lecturats read only;
El cierre del acceso espera a que se confirmen todas las transacciones pendientes
Puede devolver el estado de escritura con la misma sentencia:
alter tablespace lecturats read write;

Eliminacin de los espacios de tablas


Puede eliminar espacios de tablas con la sentencia drop tablespace:
drop tablespace efimerots including contents;
En este caso se han eliminado cualquier segmento asociado al espacio de tablas. Si
desea eliminar sus ficheros use:
drop tablespace efimerots including contents and datafiles;

- 13 -
Manuel Vergaz. La gestin de los espacios de tablas

Ficheros de datos
Crear ficheros de datos
Se puede crear un fichero de datos para un espacio de tablas desde un comando
alter database:
alter database create datafile 'ruta\nuevo.dbf'
size 20M autoextend on
next 255K maxsize 250M
offline;

Eliminar ficheros de datos


alter database datafile 'ruta\nuevo.dbf' drop;
Limitaciones:
- No se puede eliminar el ltimo fichero de un espacio de tablas,
- No se puede eliminar un fichero no vaco,
- No se puede eliminar ficheros de un espacio de tablas en modo read only

Informacin de los ficheros


Vista Descripcin
DBA_DATA_FILES Provee de informacin de cada fichero de datos incluyendo
el espacio de tablas al que pertenece.
DBA_EXTENTS Informa de todas las extensiones de cada segmento.
DBA_FREE_SPACE Muestra informacin del espacio libre de cada fichero de
datos.
V$DATAFILE Contiene informacin de los ficheros de datos procedente
del fichero de control.
V$DATAFILE_HEADER Contiene informacin de los encabezados de los ficheros
de datos.

- 14 -
Manuel Vergaz. La gestin de los espacios de tablas

Conocer el espacio total usado


SELECT Total.name "Tablespace",
nvl(Free_space, 0) Free_space,
nvl(total_space-Free_space, 0) Used_space,
total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name(+) = Total.name
ORDER BY Total.name

Conocer el espacio utilizado y libre de cada segmento


SELECT
SUBSTR (df.NAME, 1, 40) file_name, df.bytes / 1024 / 1024
allocated_mb,
((df.bytes / 1024 / 1024) - NVL (SUM (dfs.bytes) / 1024 / 1024, 0))
used_mb,
NVL (SUM (dfs.bytes) / 1024 / 1024, 0) free_space_mb
FROM v$datafile df, dba_free_space dfs
WHERE df.file# = dfs.file_id(+)
GROUP BY dfs.file_id, df.NAME, df.file#, df.bytes
ORDER BY file_name;

Conocer el espacio de tablas que no puede crecer ms


select a.owner||'.'||a.segment_name "Sname",
a.segment_type "Stype",
a.bytes/1024/1024 "Size",
a.next_extent/1024/1024 "Next",
a.tablespace_name "TName"
from sys.dba_segments a
where a.tablespace_name not like 'T%MP%'
and next_extent * 1 > (
select max(b.bytes)
from dba_free_space b
where a.tablespace_name = b.tablespace_name)
order by 3 desc;

Mostrar fragmentacin
SELECT dfsc.tablespace_name tablespace_name,
DECODE (
dfsc.percent_extents_coalesced,
100,
(DECODE (
GREATEST ((SELECT COUNT (1)
FROM dba_free_space dfs
WHERE dfs.tablespace_name = dfsc.tablespace_name), 1),
1,
'No Frag',
'Bubble Frag'
)
),
'Possible Honey Comb Frag'

- 15 -
Manuel Vergaz. La gestin de los espacios de tablas

)
fragmentation_status
FROM dba_free_space_coalesced dfsc
ORDER BY dfsc.tablespace_name;

Ejercicios con espacios de tablas regulares


- Cree los tablespaces permanentes con los siguientes nombres y tamaos de
almacenamiento:
Nombre TS: DATA02
Nombre del Fichero: data02.dbf
Tamao: 1M
Tipo de gestin: Local Uniforme de 100K
Ubicacin: c:\pruebas\u02
*/
/
create tablespace DATA2 datafile 'c:\pruebas\u02\data02.dbf'
size 1M extent management local uniform size 100K;
/
select * from dba_tablespaces where tablespace_name like 'DATA2';
/
drop tablespace data2;
/
Nombre TS: INDEX01
Nombre del Fichero: index01.dbf
Tamao: 1M
Ubicacin: c:\pruebas\u01
Permita una extensin automtica de 500K cuando necesite ms extensiones hasta
un mximo de 2M
create tablespace INDEX01 datafile 'c:\pruebas\u01\index01.dbf'
size 1M autoextend on next 500K maxsize 2M;
/
select * from dba_tablespaces where tablespace_name like 'INDEX1';
/
drop tablespace INDEX1
/
Nombre TS: RONLY
Nombre del Fichero: ronly01.dbf
Tamao: 1M
Ubicacin: c:\pruebas\u02
Almacenamiento por defecto
create tablespace RONLY datafile 'c:\pruebas\u02\ronly01.dbf'
size 1M autoextend off;
/
select * from dba_tablespaces where tablespace_name like 'RONLY';
/
drop tablespace RONLY;
/
--2. Muestre la informacin de los tablespaces existentes hasta el momento:

- 16 -
Manuel Vergaz. La gestin de los espacios de tablas

select * from dba_tablespaces;


- Asigne 500K mas de disco al tablespace DATA02. Verifique el resultado:
create tablespace DATA2 datafile 'c:\pruebas\u02\data02.dbf'
size 1M autoextend off;
/
select bytes/1024/1024 MB from dba_data_files where tablespace_name
like 'DATA2';
/
alter tablespace DATA2 add datafile 'c:\pruebas\u02\data03.dbf' size
500K;
/
drop tablespace data2;
/
- Cambie la ubicacin del Tablespace INDEX01 al directorio c:\pruebas\u06.
Verifique la nueva ubicacin y el estado del Tablespace.
--Paso 1:
alter tablespace INDEX01 offline normal;
/
alter tablespace INDEX01 rename datafile 'c:\pruebas\u01\INDEX01.dbf'
to 'c:\pruebas\u06\INDEX01.dbf';
/
alter tablespace INDEX01 online;
/
select * from dba_data_files where tablespace_name like 'INDEX01';

- Conctese como Usuario SYSTEM y cree una tabla (TABLA1) en el Tablespace


RONLY. Haga que el Tablespace sea slo de lectura. Ejecute una consulta para
verificarlo. Intente crear una tabla adicional llamada Tabla2. Borre la primera
tabla creada (TABLA1) Qu sucede?
connect system/sys
create tablespace RONLY datafile 'c:\pruebas\u02\ronly01.dbf' size 1M
autoextend off;
select * from dba_tablespaces where tablespace_name like 'RONLY';
/
create table tabla1(campo number) tablespace ronly;
select table_name from dba_tables where tablespace_name like 'RONLY';
select tablespace_name from dba_tables where table_name like 'TABLA1';
/
alter tablespace RONLY read only;
/
create table tabla2(campo number) tablespace ronly;
select table_name from dba_tables where tablespace_name like 'RONLY';
select tablespace_name from dba_tables where table_name like 'TABLA2';
/
drop table tabla1;
select table_name from dba_tables where tablespace_name like 'RONLY';
select tablespace_name from dba_tables where table_name like 'TABLA1';
/
drop table tabla2;
/
- Borre el Tablespace RONLY y el archivo de datos correspondiente. Verifique la
operacin
drop tablespace ronly;
select * from dba_data_files where tablespace_name like 'RONLY';

- 17 -
Manuel Vergaz. La gestin de los espacios de tablas

Documentacin
Pgina oficial de Oracle:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tspaces.htm

- 18 -

Vous aimerez peut-être aussi