La tarea de añadir un nuevo datafile a un tablespace existente es una labor habitual de la administración de las bases de datos en Oracle. ¿Cuando es necesario añadir un datafile? obviamente cuando el o los datafiles que componen el tablespace en cuestión no se pueden extender más, bien porque hemos llegado a la máxima capacidad del disco donde este ubicado o por que hemos llegado el máximo permitido por Oracle.
Lo primero que haremos es ver el estado de nuestro tablespace, por ejemplo tenemos el tabelspace DATOS de la base de datos PREUBA01 que esta por encima del 90% de ocupación y necesitamos ampliarlo, desde sqlplus tecleamos los siguiente,
SQL>SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='DATOS';
FILE_NAME Tamaño en MB
-------------------------------------------------------------- -----------------
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_01.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_02.dbf 32768
El tablespace DATOS tiene ya 2 datafiles de 32GB que no podemos extender por loque vamos a añadirle un tercer datafile, vamos a añadir el datafile PRUEBA01_DATOS_03.dbf de 5GB, nos aseguramos que tenemos el espacio libre el filesytem y realizamos la siguiente operación en sqlplus:
SQL> ALTER TABLESPACE DATOS ADD DATAFILE '/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_03.dbf’ SIZE 5120M;
Una vez hemos añadido el datafile comprobamos como ha quedado nuestro tablespace DATOS, en sqlplus tecleamos de nuevo la query,
SQL>SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='DATOS';
FILE_NAME Tamaño en MB
-------------------------------------------------------------- -----------------
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_01.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_02.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_03.dbf 5120
Nota: Esta operaci'on se puede utilizar tanto en Oracle 10g como en Oracle 11g.