I Tablespace in Oracle sono definizioni di spazio fisico sul disco , la loro gestione è molto comoda dato che ad esempio per un database è possibile creare più tablespace anche su unità disco diverse.
Il codice per creare un nuovo file e allocarlo su un server oracle è semplicissimo :
CREATE TABLESPACE
LOGGING
DATAFILE /*ad esempio: '/usr/lib/oracle/xe/oradata/XE/vendordata.dbf' */
SIZE 256m
AUTOEXTEND ON
NEXT 32m MAXSIZE 2048m
EXTENT MANAGEMENT LOCAL;
ad esempio per creare una tabella in un table space definito è sufficiente specificarlo alla fine dello script di creazione della stessa come si può facilmente intuire dallo script che segue :
create table subjects (
subject_id number not null,
subject_name varchar2(30) not null,
description varchar2(4000)
)
tablespace [table space name];
la stessa cosa vale anche per la creazione di indici e quant’altro.
Nel caso si voglia rimuovere invece un table space la sintassi per rimuoverlo è :
DROP TABLESPACE
INCLUDING CONTENTS
CASCADE CONSTRAINTS;
in questo caso però il file fisico precedentemente creato rimarrà sul filesystem il che significa che sarà ancora ripristinabile.
Per permettere ad un utente di accedere al table space :
ALTER USER QUOTA UNLIMITED ON ;
invece per essere sicuri che un utente non possa accedere a tale table space :
ALTER USER QUOTA 0 ON ;