Achtung: Immer zuvor ein vollständiges Backup erstellen! Ein Trace des Controlfiles kann hilfreich sein!
Eine Datendatei in einem normalen Filesystem kann leider bis heute nicht online „umgezoegen“ werden.
Einfachster Ablauf:
Datenbank konsistent mit shutdown immediate stoppen
Datendatei umkopieren auf die neue Storage Location
Instance mit „startup mount“ öffen (Controlfile wird gelesen, Datendateien noch geschlossen)
Mit „alter database rename file <old name> to <new name>“ umbennen
Datenbank mit „alter database open“ öffnen
Nachteil : längere Downtime durch die evlt. lange Kopierzeit der Datendatei
Schneller: Online die Datendateien kopieren, Nur den entsprechenden Tablespace offline nehmen und kopierte Dateien wieder durch ein recover „reparieren“
Tablespace in Hot Backup Modus versetzen und dann online kopieren (Unter windows mit ocopy von Oracle!)
SQL> ALTER tablespace <TS name> BEGIN backup;
$ cp <old name> <NEW name>;
SQL> ALTER tablespace <TS name> END backup;
Datendatei offline nehmen
SQL> ALTER database datafile <old name> offline;
Auf neue Datendatei umschalten
SQL> ALTER database rename file <old name> TO <NEW name>;
Online Kopierte Datendatei (und damit ja nicht vollständig!) durch ein Recovery wieder „reparieren“
SQL> recover datafile <NEW name>;
Datendatei wieder online nehmen
SQL> ALTER database datafile <NEW name> online;
So spart man wenigstens die Kopierzeit in einer Downtime für die Anwender.