next Storage Strukturen und Beziehnungen
up Fundamentals
previous Redo Log Files
  Contents   Index

Subsections


Tablespaces, Datafiles

Oracle speichert Daten in Tablespace (logisch) und in Data Files (physisch). Ein Tablespace kann nur zu einer Datenbank gehören. Ein Tablespace kann ein oder mehrere Data Files beinhalten. Ein Data File kann nur zu einem Tablespace und zu einer Datenbank gehören.


Arten von Tablespaces

System Tablespace Non-System Tablespace


Anzeige der Tablespaces

select * from dba_tablespaces;


Tablespace erzeugen

create tablespace testus
  datafile '/var/tablespaces/testus.dbf' 
  size 100M autoextend on next 5M maxsize 500M
;


Locally Managed Tablespace

Der Locally Managed Tablespace ist erst ab 9i Default-Einstellung.
create tablespace testus_l 
  datafile '/var/tablespaces/testus_l.dbf'
  size 100M extent management local
;


Dictionary Managed Tablespace

Der Dictionary Managed Tablespace wird inzwischen sehr selten verwendet.
create tablespace testus_d
  datafile '/var/tablespaces/testus_d.dbf' size 100M 
  extent management dictionary
  default storage 
   (initial 32k next 64k minextents 5 maxextents unlimited pctincrease 50)
;
Wenn der SYSTEM-Tablespace als Locally Managed Tablespaces angelegt wurde, kann weiterer Tablespace nur locally angelegt werden.


Undo Tablespace (Before-Images)

Der Undo Tablespace gilt für gesamte DB und kann keinem User zugewiesen werden.
create undo tablespace undo_01
  datafile '/var/tablespaces/undo01.dbf' size 50M;


Temporary Tablespace

Der Temporary Tablespace wird für SORT gebraucht. Nur ein temporary Tablespace kann pro DB aktiv sein (default). Dieser sollte wachsen können (d.h. auf extra Platte legen), er schrumpft aber nicht mehr.
create temporary tablespace temp01
  tempfile '/var/tablespaces/temp_01.dbf' size 500M  
  extent management local uniform size 4M
;
Anzeige des Default Temporary Tablespace:
select * from database_properties 
  where PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';
Wechsel des Default Temporary Tablespace:
alter database default temporary tablespace temp01;
Beachte: Einem temporären Tablespace kann man keine Quota für User zuweisen.


Tablespace offline setzten

Notwendig für Recovery
alter tablespace testus_l offline normal;


Tablespace online setzten

alter tablespace testus_l online;


Tablespace Read Only setzen

Der Tablespace muss dazu online sein.
alter tablespace testus_l read only;


Welche Tablespaces sind autoextensible?

Anzeige der Tablespaces, die sich automatisch vergrößern können.
select tablespace_name, file_name, autoextensible
  from DBA_DATA_FILES;


Datendatei vergrößern / Datendatei hinzufügen

Automatische Erweiterungen bewirken Performanceverluste.

Datendatei vergrößern:

alter database datafile '/var/tablespaces/testus.dbf' 
  resize 200M;


Eine Datendatei hinzufügen

alter tablespace testus
  add datafile '/var/tablespaces/testus_longus.dbf' 
  size 200M autoextend on next 100M;


Datafiles zu einem anderen Tablespace verschieben

Tablespace offline setzen.
alter tablespace testus_l offline normal;
Datei mit Betriebssystembefehlen verschieben.
alter tablespace testus_l
  rename datafile '/var/tablespaces/testus_l.dbf' 
    to '/hdd2/testus_l.dbf'
;
alter tablespace testus_l online;
Tablespace online setzen.
alter tablespace testus_l online;


Löschen von Tablespace

Nur wenn der Inhalt nicht mehr gebraucht wird. Beachte Constraints und andere Beziehungen auf diesen Tablespace.
drop tablespace testus_l including contents
  and datafiles cascade constraints;

next Storage Strukturen und Beziehnungen
up Fundamentals
previous Redo Log Files
  Contents   Index


Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de