Przed rozpoczęciem prac zwłaszcza na środowisku produkcyjnym należy zrobić kopię całej bazy.
Dla naszych prac stworzymy sobie nową przestrzeń tabel
Możemy dodać jeszcze jeden datafile żeby mieć chociaż dwa lub trzy pliki do przeniesienia do nowej lokalizacji
Tworzymy dla testów nowy katalog (w rzeczywistości może to być jakiś podpięty dysk do macierzy)
Gdybyśmy chcieli w ogóle zmienić lokalizacje wszystkich datafile i mieli w przyszłości korzystać tylko z nowej a stara miałaby nie istnieć musielibyśmy sprawdzić w jakim trybie działa nasza baza danych. W zależności od tego czy działa w trybie noarchivelog lub archivelog musimy dobrać akcję aby zmienić lokalizacje plików danych
Sprawdzimy teraz jakie mamy przestrzenie tabel w bazie danych, jaki jest ich status oraz rodzaj. Aby to sprawdzić wykonujemy zapytanie jak poniżej
Sprawdźmy jeszcze raz lokalizację naszych plików danych którym chcemy zmienić lokalizacje. Sprawdzamy też rozmiar aby wiedzieć czy nowy dysk zmieści nasze pliki datafile
Teraz odłączamy od bazy tablespace którego pliki chcemy przenieść w inne miejsce, czyli ustawiamy go w tryb offline
Wykonujemy po zmianie zapytanie aby potwierdzić że nasza przestrzeń jest w trybie offline
Przechodzimy do katalogu gdzie mamy pliki danych
Wykonujemy kopiowanie plików do nowej lokalizacji. Kopiowanie możemy również wykonać stosując pakiet DBMS_FILE_TRANSFER (przykład wywołania tutaj)
Wykonujemy teraz zmianę wskaźników do plików do nowej lokalizacji
Przełączamy tablespace w tryb online
Sprawdzamy czy zmieniła się lokalizacja naszych plików w bazie danych
Usuwamy pliki danych z początkowej lokalizacji
Po wszystkim robimy kopie bazy danych, a jeśli mamy możliwość możemy bazę położyć i postawić na nowo aby mieć pewność że z plikami wszystko jest w porządku.