Sie wollen Ihre temporäre(n) Datendatei(en) verschieben, wissen aber nicht wie? Dann erfahren Sie im folgenden Artikel, welche Möglichkeiten es dafür gibt.
Da das Vorgehen davon abhängig ist, welche Art der Tablespace-Verwaltung verwendet wird, gilt es zunächst einmal dies zu klären. Dazu setzen Sie folgenden Befehl ab:
SELECT tablespace_name, extent_management
FROM dba_tablespaces
WHERE contents = 'TEMPORARY';
Wird der Wert LOCAL zurückgegeben, ist folgender Fall relevant.
Verschieben/ Umbenennen einer locally managed Datendatei
Falls es sich hierbei um den DEFAULT TEMPORARY TABLESPACE handelt (ab Version 9i verfügbar), erhält man den Fehler ORA-12905. Dann muss der Datenbank zunächst ein anderer DEFAULT TEMPORARY TABLESPACE zugewiesen werden über:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <tmp_neu>;
Das Vorgehen aus Fall 1 wird bei einer locally managed angelegten Datendatei zu folgenden Fehlermeldungen führen:
ALTER TABLESPACE <tbs_name> OFFLINE;
ORA-03217: Ungültige Option zur Änderung von TEMPORARY TABLESPACE
ALTER DATABASE RENAME FILE '<alte_datei>' TO '<neue_datei>';
ORA-01511: Fehler beim Umbenennen von Log-Dateien/Datendateien ...
Dem Administrator stehen in diesem Fall zwei Lösungsmöglichkeiten zur Verfügung:
Lösung 1
Falls es sich nicht um den DEFAULT TEMPORARY TABLESPACE handelt, den Tablespace löschen, neu anlegen und bei der Angabe der Datendatei den neuen Speicherort mitteilen.
DROP TABLESPACE <temp_tbs> INCLUDING CONTENTS AND DATAFILES;
CREATE TEMPORARY TABLESPACE <temp_tbs> TEMPFILE '<neue_datei>'
SIZE 1G AUTOEXTEND ON NEXT 256M MAXSIZE 2G;
Lösung 2
Die alte Datendatei löschen und dem Tablespace eine neue zuweisen. Diese Lösung ist auch beim DEFAULT TEMPORARY TABLESPACE zulässig.
ALTER DATABASE TEMPFILE <alte_datei> DROP INCLUDING DATAFILES;
ALTER TABLESPACE <temp_tbs> ADD TEMPFILE '<neue_datei>' SIZE 50M
AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;
Weitere Tipps zu temporären Tablespaces
- Eine der oben beschriebenen Lösungen zu Fall 2 ist auch anzuwenden, falls die temporäre Datendatei sehr groß geworden ist und wieder verkleinert werden soll.
- Locally managed Tablespaces sind beim Backup nicht mehr zu sichern. In einem Wiederherstellungsfall inklusive OPEN RESETLOGS sind möglicherweise die temporären Datendateien auf Datenbankebene gelöscht worden. Falls nun Sortieroperationen auf dem Temp-Tablespace auszuführen sind, führt dies zum Fehler ORA-25153: Temporärer Tablespace ist leer. Dann ist nach Lösung 2 eine neue Datendatei zu erzeugen.