Należy pamiętać że nowa baza mimo że zmienimy nazwę będzie miała taki sam DBID czyli nie możemy jej dopisać do RMAN-a z bazą źródłową, sytucację tę możemy zmienić stosując polecenie NID
1. Na bazie źródłowej w trybie mount wygenerować skrypt tworzący pliki kontrolne:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '[path]’
2. Skopiować:
– wszystkie pliki danych
– plik pfile
– plik haseł
– nie kopiować plików redologs oraz controlfiles (można także pominąć pliki przestrzeni TEMP i UNDO jednak trzeba będzie potem kombinować)
3. Edycja pliku PFILE:
– ścieżki do plików logów
– ścieżki dla plików trace
– nazwa bazy
4. Edycja skryptu tworzącego pliki kontrolne:
– ! usunąć puste linie
– ścieżki plików danych
– ścieżka pliku TEMP
– nazwa bazy
– zamiana lini REUSE DATABASE na SET DATABASE
– usunąć linię RECOVER DATABASE USING BACKUP CONTROLFILE
5. Stworzyć w nowej lokalizacji odpowiednie katalogi zgodne z powyższymi
6. W w$ utworzyć service dla nowej bazy
oradim -new -sid [nowy_sid] -startmode M -pfile [init_file]
7. W razie potrzeby stworzyć nowy plik haseł:
orapwd file=PWD[db_name] password=[pass] entries=[max_liczba_wpisów]
8. Ustawić zmienną ORACLE_HOME i ORACLE_SID
9. wykonać skrypt tworzący nowe pliki kontrolne
10. otworzyć bazę z wyczyszczonymi redologami
ALTER DATABASE OPEN RESETLOGS
W przypadku braku pliku UNDO należy zakomentować w pliku INIT wszelkie zapisy dotyczące UNDO następnie otworzyć bazę z wyczyszczonymi logami, usunąć przestrzeń UNDO i stworzyć ją na nowo poleceniem:
CREATE UNDO TABLESPACE [nazwa z pliku init] DATAFILE '[path]’ SIZE [nr]M;
12. ustawić przestrzeń tymczasową
ALTER TABLESPACE TEMP ADD TEMPFILE '[path]’ SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
W przypadku gdy była odtwarzana przestrzeń UNDO odkomentować wpisy w INIT
Do zmiany DBID wykonujemy:
1. uruchamiamy bazę w trybie MOUNT
2a. zmiana nazwy bazy i DBID:
nid target=sys/[passwd]@[dbsid] dbname=[newname]
2b. zmiana DBID:
nid target=/
3. zamykamy bazę
4. jeżeli zmienialiśmy nazwę to zmienić w pliku INIT
5. jeżeli zmienialiśmy nazwę to zmienić nazwę pliku haseł
Jeżeli chcemy zmienić tylko nazwę bazy:
nid target=sys/[passwd]@[dbsid] dbname=[newname] setname=yes logfile=log.out