Conceptos y manejo básico de tablespaces en Oracle

Estándar

* Conceptos básicos:
Un tablespace es un almacén lógico de los ficheros de la base de datos. Cada tablespace posee uno o varios ficheros (datafiles) donde almacena toda la información; estos ficheros deben tener una estructura lógica.
Cuando se crea una base de datos, hay que crear al menos un tablespace, que por defecto es SYSTEM. Igualmente, cuando se crea un tablespace, se debe indicar al menos un datafile que formará parte de este datafile (posteriormente se pueden añadir más datafiles al tablespace). El datafile es un fichero físico al que tendremos que asignar un directorio, un nombre y un tamaño inicial que posteriormente se podrá ampliar según las necesidades (y de las limitaciones) de la instalación. Este tablespace es el que contendrá la información de los usuarios SYS y SYSTEM que son los usuarios que tienen la información necesaria para que funcione la base de datos.
Por tanto, el tablespace SYSTEM es una pieza clave para el buen funcionamiento de nuestra base de datos, por lo que es una buena práctica crear el menos otro tablespace donde almacenar el resto de usuarios que vayamos creando en nuestra base de datos. Podría ahorrarnos:
– Un bloqueo completo de la base de datos si ocurre algo grave al tablespace SYSTEM.
– Llenar el tablespace SYSTEM pudiendo provocar la parálisis de toda la base de datos.

* Manipulando tablespaces (como usuario system):
– Crear un tablespace TEST, de 100MB, en el directorio /users/oradata/orcl:

create tablespace TEST datafile '/users/oradata/orcl/test01.dbf' size 100M;

– Aumentar de tamaño un tablespace modificando su tamaño:

alter datafile '/users/oradata/orcl/test01.dbf' resize 150M;

– Aumentar de tamaño un tablespace añadiendo más datafiles:

alter tablespace TEST add datafile '/users/oradata/orcl/test02.dbf' size 50M;

– Borrar un tablespace:

drop tablespace TEST;

* Otros usos de tablespace:
– Estado de un tablespace:
Un tablespace puede estar online u offline, esto indica si se puede operar con él o no. Para conocer el estado de un tablespace se puede consultar con la siguiente sentencia:

select tablespace_name, status from dba_tablespaces;

Esta característica es muy útil para labores de mantenimiento, como por ejemplo para realizar un backup asegurándonos de que nadie está operando sobre ese tablespace, etc.
Una cosa a tener en cuenta para poner un tablespace a offline es si tiene o no segmentos de rollback activos. En ese caso, primero habría que desactivarlos.
– De sólo lectura:
Existe la posibilidad de crear un tablespace en el que sólamente permita consultar los datos de los objetos, y no permita insertar ni eliminar nada. Esta característica puede ser útil para algún tipo de aplicaciones en las que sólamente sea necesario realizar cierta clase de consultas.
– Temporales:
Sólamente puede contener objetos temporales, no se pueden crear en él objetos permanentes como índices, tablas o segmentos de rollback. Están preparados para optimizar las operaciones de ordenación. Es una buena práctica tener al menos un tablespace de este tipo en nuestra base de datos.

create tablespace TEST datafile '/users/oradata/orcl/test01.dbf' size 100M temporary;

Otros enlaces de interés:
http://docs.oracle.com/cd/B19306_01/server.102/b14231/tspaces.htm
http://databaseandtech.wordpress.com/2008/03/24/controlar-espacio-de-los-tablespaces-en-oracle/

Anuncios

»

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s