Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę
Andrzej C.:
Piotr B.:
Mysle ze da sie tak.
Oprocz datafile, tempfile, controlfile i redologs skopiowac nalezy jeszcze plik hasel, pfile (ewentualnie spfile).
Struktura katalogow, listenery, klient Oracle prawdopodobnie musi sie zgadzac :)
Nie przenosilem w ten sposob bazy nigdy, ale robilem kiedys pelny 'zimny' backup i po wgraniu spowrotem plikow na miejsce nie bylo problemow z jej podniesieniem.
ok sprawa jasna to wiadomo ze plik parametrów ma tez byc nawet w kilku kopiach
ale rozumiem ze z zimnego backupu odpalales baze mimo wszystko na tej samej maszynie (ten sam serwer), z tym nigdy nie bedzie problemu pod warunkiem ze masz spojna baze. Ciekawe co by bylo jakby tak komus w firmie przyszla do glowy wymiana fizyczna maszyny na ktorej stoi oracle, i czy wtedy da sie podnies po podmianie tych plików ze starego serwera
co o tym myslisz?
Można, bez większych problemów a procedura w uproszczeniu wygląda tak:
1) na bazie źródłowej generujesz skrypt do utworzenia plików kontrolnych,
ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
2) zamykasz bazę źródłową na czas kopiowania jej w nowe miejsce,
3) kopiujesz ją w nowe miejsce (pliki z danymi, redologi, inity, itd.),
4) poprawiasz uzyskany w punkcie pierwszym skrypt zwracając uwagę na:
a. Usuwamy wszystkie linie OD POCZĄTKU PLIKU DO LINII (linia poniżej zostaje):
CREATE CONTROLFILE REUSE DATABASE "NAZWA_BAZY" RESETLOGS NOARCHIVELOG
b. Usuwamy wszystkie linie OD KOŃCA PLIKU DO LINII:
CHARACTER SET ..... ;
c. poprawiamy pierwszą linie dodając słowo SET przed DATABASE i zmieniamy nazwę bazy na nową,
d. Poprawiamy ścieżki dostępu wprowadzając poprawki tak aby pokazywały na lokalizację naszej bazy docelowej,
5) parametr REMOTE_LOGIN_PASSWORDFILE na nowej bazie powinien być ustawiony na EXCLUSIVE lub SHARED
6) łączymy się sqlplusem i podnosimy docelową bazę w MOUNT
STARTUP NOMOUNT (można tu pokazać wyraźnie plik pfile z którego korzystamy)
7) wykonujemy nasz poprawiony skrypt:
@/ścieżka do pliku/skrypt.sql
8) otwieramy nową bazę:
ALTER DATABASE OPEN RESETLOGS;
9)Dokładamy nowego temp'a kasując wcześniej starego:
ALTER TABLESPACE TEMP ADD TEMPFILE ‘/ścieżka/temp01.dbf' SIZE ROZMIARM REUSE AUTOEXTEND OFF;
UWAGA:
!! Procedura zakłada że istnieje już instanacja, jeśli nie to trzeba ją zrobić !!
!! Gdyby istniała konieczność wykonania backup’u online dla naszej nowej instancji musimy przekreować dla niej DBID !!
Trenowałem na wersji 9i.
Pozdrowienia gk