Datendateien eines Tablescace online mit möglichst kleiner Downtime umziehen

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:

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“

  1. 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;
  2. Datendatei offline nehmen
    SQL> ALTER database datafile <old name> offline;
  3. Auf neue Datendatei umschalten
    SQL> ALTER database rename file <old name> TO <NEW name>;
  4. Online Kopierte Datendatei (und damit ja nicht vollständig!) durch ein Recovery wieder „reparieren“
    SQL> recover datafile <NEW name>;
  5. Datendatei wieder online nehmen
    SQL> ALTER database datafile <NEW name> online;

So spart man wenigstens die Kopierzeit in einer Downtime für die Anwender.