Actualizado el 21 de Marzo del 2018 (Publicado el 24 de Noviembre del 2017)
1.471 visualizaciones desde el 24 de Noviembre del 2017
293,7 KB
16 paginas
Creado hace 16a (29/11/2007)
Administración Básica de Oracle10g
PRACTICAS TEMA 5.
TABLESPACES.
5.1. Consultar los tablespaces que componen la BD. Comprobar los ficheros que tiene cada
uno de ellos. ¿Cuáles son 'locales' y cuáles no? Ver qué contiene el tablespace SYSAUX y
el tamaño de cada uno de sus “ocupantes”.
5.2. Crea el tablespace DATACURSOxy, NO manejado localmente, con el fichero
/u02/oradata/CURSOxy/datacursoXY01.dbf, con un tamaño de 1M. Créalo de nuevo,
manejado localmente. Crea 3 tablas (TABLA01, TABLA02, TABLA03) de 256K sobre dicho
tablespace. Borra la tabla TABLA02 y crea una tabla TABLA04 de 352K. ¿Qué ocurre y por
qué?.
5.3. Pon el tablespace DATACURSOxy en modo READONLY. Inserta una fila en alguna de
sus tablas, ¿qué ocurre y por qué?. Borra la tabla TABLA01, ¿por qué se puede borrar?.
Deja el tablespace DATACURSOxy en modo READWRITE. Repite el insert sobre
TABLA02.
5.4. Crea una tabla TABLA04 de 256K en el tablespace DATACURSOxy, ¿qué ocurre y por
qué?. Activa el autoextend de su fichero, ajustando next 256K y maxsize 2M. Vuelve a crear
la tabla TABLA04.
5.5.
Crea el
'/u02/oradata/CURSOxy/indcursoXY01.dbf'. Muévelo al directorio '/u03/oradata/CURSOxy'.
5.6. Redimensionar el tablespace DATACURSOxy a 1M ¿qué ocurre y por qué?.
Redimensionar el tablespace INDCURSOxy a 512K, y añadirle otro fichero de 512K.
5.7. Crear un tablespace de “undo” UNDO_CURSOxy. Convertirlo en el tablespace de “undo”
activo. Crear una tabla TABLA05 en el nuevo tablespace, ¿qué ocurre? Consultar la vista
V$UNDOSTAT.
5.8. Crear un tablespace temporal TEMP_CURSOxy de 1M. ¿Qué ocurre al ponerlo read
only? ¿y al moverlo? Haz que sea el tablespace temporal por defecto de la base de datos
¿que pasa al ponerlo offline? ¿y si lo borramos?
5.9. Comprobar el tablespace por defecto y tb el temporal que tiene definido cada usuario que
existe en la BD. Modificar el tablespace por defecto de la BD por DATACURSOxy y volver a
hacer la comprobación anterior.
5.10. Crear los tablespaces TEMP01CURSOxy Y TEMP02CURSOxy de 4M cada uno y
asignarlos al grupo GTEMP. Asignar al usuario scott el tablespace temporal GTEMP.
5.11. Consultar la estadística “DB time” en V$SYS_TIME_MODEL. Generar un informe de
ADDM (Automatic Database Diagnostic Monitor). Generar tb un informe de AWR.
INDCURSOxy de 1M con el
tablespace
fichero
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
1
Administración Básica de Oracle10g
5.1. Consultar los tablespaces que componen la BD. Comprobar los ficheros
que tiene cada uno. ¿Cuales son 'locales' y cuales no? Ver qué contiene el
tablespace SYSAUX y el tamaño de cada uno de sus “ocupantes”.
En el DD disponemos de vistas para consultar información sobre tablespaces
(DBA_TABLESPACES, V$TABLESPACE) y los ficheros que los componen (DBA_DATA_FILES,
DBA_TEMP_FILES, V$DATAFILE, V$TEMPFILE)
SQL> select tablespace_name,extent_management from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN
SYSTEM LOCAL
UNDO_RBS LOCAL
SYSAUX LOCAL
TEMP LOCAL
USERS LOCAL
(Todos los tablespaces son locales. En este caso no puede haber ninguno manejado por
diccionario pq el SYSTEM es local.)
SQL> SELECT rpad(a.TABLESPACE_NAME,10) tablespace,rpad(a.FILE_NAME,40) fichero,
to_char(a.BYTES/1024/1024,'999.99') MB,
to_char(a.increment_by*b.value/1024/1024,'99.99') nextmb,
to_char(a.MAXBYTES/1024/1024,'9999.99') maxmb
FROM DBA_DATA_FILES a, v$parameter b
where b.name='db_block_size';
TABLESPACE FICHERO MB NEXTMB MAXMB
USERS /u02/oradata/CURSOxy/users01.dbf 1.00 1.00 20.00
SYSAUX /u03/oradata/CURSOxy/sysaux01.dbf 140.00 10.00 400.00
UNDO_RBS /u03/oradata/CURSOxy/undo_rbs01.dbf 20.00 1.00 20.00
SYSTEM /u02/oradata/CURSOxy/system01.dbf 260.00 10.00 400.00
(En la sentencia anterior se muestran los ficheros q forman parte de cada tablespace, con
sus tamaños actuales, así como los parámetros de crecimiento dinámico.)
SQL> select rpad(name,40) name,CHECKPOINT_CHANGE#,
to_char(CHECKPOINT_TIME,'dd/mm/yyyy hh24:mi') CHECKPOINT_TIME
from v$datafile;
NAME CHECKPOINT_CHANGE# CHECKPOINT_TIME
/u02/oradata/CURSOxy/system01.dbf 1172753 07/11/2006 09:51
/u03/oradata/CURSOxy/undo_rbs01.dbf 1172753 07/11/2006 09:51
/u03/oradata/CURSOxy/sysaux01.dbf 1172753 07/11/2006 09:51
/u02/oradata/CURSOxy/users01.dbf 1172753 07/11/2006 09:51
Para ver los “ocupantes” del tablespace SYSAUX, y cuánto ocupa cada uno consultaremos V$
SQL> select rpad(occupant_name,30), space_usage_kbytes from v$sysaux_occupants;
RPAD(OCCUPANT_NAME,30) SPACE_USAGE_KBYTES
LOGMNR 6080
LOGSTDBY 896
STREAMS 512
XDB 0
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
2
Administración Básica de Oracle10g
AO 768
XSOQHIST 768
XSAMD 0
SM/AWR 52672
SM/ADVISOR 8000
SM/OPTSTAT 14784
SM/OTHER 4864
...
EM_MONITORING_USER 1600
TSM 256
JOB_SCHEDULER 384
26 filas seleccionadas.
5.2. Crea el tablespace DATACURSOxy, NO manejado localmente, con el
fichero /u02/oradata/datacursoXY01.dbf, con un tamaño de 1M. Créalo de nuevo,
manejado localmente. Crea 3 tablas (TABLA01, TABLA02, TABLA03) de 256K
sobre dicho tablespace. Borra las tabla TABLA02 y crea una tabla TABLA04 de
352K. ¿Qué ocurre y por qué?.
Los tablespaces 'manejados localmente' gestionan mejor los huecos libres, eliminando la
fragmentación que, en el caso de tablespaces tradicionales, provoca el borrado de objetos. El
espacio libre inicial en los 'tablespaces locales' es algo menor que en los 'tradicionales', ya que se
pierde espacio para el bitmap.
Si el tablespace SYSTEM ha sido creado como LOCAL, ya no se podrá crear ningún
tablespace manejado por DICCIONARIO en la BD.
(¡¡¡ OJO !!! sustituye “xy” por el número de tu usuario de prácticas)
SQL> create tablespace DATACURSOxy
datafile '/u02/oradata/CURSOxy/datacursoXY01.dbf' size 1M reuse
extent management dictionary;
ORA12913: No se puede crear un tablespace gestionado por el diccionario
SQL> Create tablespace DATACURSOxy
datafile '/u02/oradata/CURSOxy/datacursoXY01.dbf' size 1M reuse
extent management local uniform size 128K;
Tablespace creado.
SQL> select tablespace_name,extent_management from dba_tablespaces
where tablespace_name='DATACURSOxy';
TABLESPACE_NAME EXTENT_MAN
DATACURSOxy LOCAL
SQL> create table TABLA01 (C1 VARCHAR2(4000))
tablespace DATACURSOxy storage (initial 256K minextents 1);
Tabla creada.
SQL> create table TABLA02 (C1 VARCHAR2(4000))
tablespace DATACURSOxy storage (initial 256K minextents 1);
Tabla creada.
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
3
Administración Básica de Oracle10g
SQL> create table TABLA03 (C1 VARCHAR2(4000))
tablespace DATACURSOxy storage (initial 256K minextents 1);
Tabla creada.
SQL> drop table tabla02 purge;
Tabla borrada.
SQL> select bytes from dba_free_space where tablespace_name='DATACURSOxy';
BYTES
262144
131072
SQL> create table TABLA02 (C1 VARCHAR2(4000))
tablespace DATACURSOxy storage (initial 352K minextents 1);
Tabla creada.
SQL> select bytes from dba_free_space where tablespace_name='DATACURSOxy';
ninguna fila seleccionada
Como se observa, siendo el tablespace local, se aprovechan los huecos que se generan con el
borrado de tablas. La cuestión clave, en este caso, es encontrar un tamaño adecuado para “uniform
size”. Una posibilidad es tener varios tablespaces: pequeño, mediano y grande con uniform size, por
ejemplo, de 8K, 256K y 8M:
• DATOS8K: para guardar tablas de menos de 1M de tamaño.
• DATOS256K: para tablas de entre 1M hasta 32M.
• DATOS8M: para aquellas mayores de 32M.
5.3. Pon el tablespace DATACURSOxy en modo READONLY. Inserta una fila en
alguna de sus tablas, ¿qué ocurre?. Borra la tabla TABLA01, ¿por qué se puede
borrar?. Deja el tablespace DATACURSOxy en modo READWRITE. Repite el
insert, ahora sobre TABLA03.
En un tablespace read only no se pueden actualizar datos (insert, update, delete), pero sí se pueden
borrar objetos (drop table), ya que el borrado de objetos sólo afecta al DD (y no al tablespace).
SQL> alter tablespace DATACURSOxy read only;
Tablespace modificado.
SQL> insert into tabla01 values ('PRIMERA FILA');
ORA00372: el fichero 5 no puede ser modificado en este momento
ORA01110: fichero de datos 5: '/u02/oradata/CURSOxy/datacursoXY01.dbf'
SQL> DROP TABLE TABLA01 purge;
Tabla borrada.
SQL> alter tablespace DATACURSOxy read write;
Tablespace modificado.
SQL> insert into tabla03 values ('PRIMERA FILA');
1 fila creada.
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
4
Administración Básica de Oracle10g
SQL> commit;
Comentarios de: Practicas Tema5 - Tablespaces (0)
No hay comentarios