jueves, 22 de abril de 2010

¿QUE ES UN DATAFILE?

Un datafile es la representación física de un tablespace. Son los "ficheros de datos" donde se almacena la información físicamente. Un datafile puede tener cualquier nombre y extensión (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro.

su localización típica suele ser $ORACLE_HOME/Database. Un datafile tiene un tamaño predefinido en su creación (por ejemplo 100Mb) y este puede ser alterado en cualquier momento Cuando creemos un datafile, este ocupará tanto espacio en disco como hayamos indicado en su creación, aunque internamente esté vacío. Oracle hace esto para reservar espacio continuo en disco y evitar así la fragmentación. Conforme se vayan creando objetos en ese tablespace, se irá ocupando el espacio que creó inicialmente.

Un datafile está asociado a un solo tablespace y, a su vez, un tablespace está asociado a uno o varios datafiles. Es decir, la relación lógica entre tablespaces y datafiles es de 1-N

Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si está activa, se encarga de que el datafile crezca automáticamente (según un tamaño indicado) cada vez que se necesite espacio y no exista. Al igual que los tablespaces, los datafiles también puede estar en línea o fuera de ella.


Manipulación de Datafiles

Mediante el manejo de los archivos físicos de una base de datos (datafiles) podemos redimensionar los tablespaces, permitiendo la asignación de más espacio.

Para aumentar el tamaño de un tablespace se puede optar por alguno de estos dos caminos, representados por las instrucciones que permiten implementar la medida:

  • Agregar un datafile (por ejemplo, al tablespace datos_prueba):

alter tablespace datos_prueba add datafile ‘c:\oracle81\oradata\mkt\tb_mkt02.dbf’ size 50M;

  • aumentar el tamaño de un datafile ya existente:

alter datafile ‘c:\oracle81\oradata\mkt\tb_mkt01.dbf’ resize 150M;

La primera instrucción indica que se va a crear un nuevo datafile para el tablespace que se ha quedado pequeño, aumentando su capacidad en 50 megabytes.

En el segundo ejemplo, no se menciona el tablespace porque lo que se hace es redimensionar un datafile, cuyo nombre es único en la ruta mencionada y que Oracle ya conoce que está asociado a algún tablespace (datos_prueba en el ejemplo). Su tamaño se debe escribir de nuevo, por lo que realmente no se han añadido 150 megabytes como dice la instrucción, sino sólo 50, porque ya tenía 100 megabytes al inicio.


No hay comentarios:

Publicar un comentario