viernes, 11 de septiembre de 2015

¿QUE ES UN TABLESPACE?

Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos oracle.Es un puente entre el sistema de ficheros del sistema operativo y la base de datos.
Cada tablespace se compone de, al menos, un datafile y un datafile solo puede pertenecer a un tablespace.

Los tablespace son estructuras donde se almacenan los objetos del esquema de la base de datos, tales como tablas, índices, etc. con la particularidad de poderse repartir en varios ficheros. Por tanto, las bases de datos tienes varios tablespaces y estos a su vez varios datafiles. Un datafile sólo pertenece a un tablespace y un tablespace sólo pertenece a una Base de Datos.

El Tablespace SYSTEM se crea automáticamente al hacer la instalación de Oracle o al crear una Base de Datos.Contiene el diccionario de datos.

miércoles, 9 de septiembre de 2015

Mover usuarios de tablespace 

El tablespace temporal contiene datos en transito que permanecen unicamente por la duracion de la sesion, esto significa que una vez que la sesion termina, estos datos dejan de existir. Un tablespace temporal ayuda a mejorar la concurrencia de multiples operaciones tipo SORT que no caben en la memoria.

Un tablespace temporal se usa para guardar lo siguiente:

  • Tablas temporales e indices temporales
  • LOBs temporales
  • Resultados temporales de tipo SORT
  • Arboles B temporales


Para mover usuarios de un tablespace temporal al TEMP default y borrar el que no necesitamos podemos hacer lo siguiente:

SQL> select username from  dba_users where TEMPORARY_TABLESPACE='TEMP02';

user_uno

SQL> alter user "user_uno" temporary tablespace TEMP;

User altered.

SQL> select username from  dba_users where TEMPORARY_TABLESPACE='TEMP02';

no rows selected


SQL> drop tablespace temp02 including contents and datafiles;

miércoles, 2 de septiembre de 2015


DATAFILE NO ENCONTRADO
ORA-01116
ORA-01110


Si tratas de abrir una base de datos pero no abre porque falta un datafile. por ejemplo:
Database Mounted
ORA-01116: Error in opening database file 15
ORA-01110: Datafile 15 : '/ruta/datafile1.dbf'
ORA-27041: Unable to open file.

Propongo que intentar lo siguiente:
abrir una sesión sqlplus / as sysdba
1. STARTUP NOMOUNT;
2. ALTER DATABASE MOUNT;
3. ALTER DATABASE DATAFILE '/ruta/datafile1.dbf' OFFLINE DROP;
4. ALTER DATABASE OPEN;