konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Mam Oracala 10g
Dostałem dmp który załadowałem sobie bez większych problemów (wsumie nie istotne)
Chodzi mi jak w tej chwili wygenerować skrypt tworzący bazę wraz z userem jego rolami, tablicami, procedurami, danymi, ustwieniami co do formatu daty itp. Chciałbym uzyskać gotowe skrypty sql.

Mam do dyspozycji Oracle Enterprise Manager Console lub TOADa 8.0
Ewentualnie jakim zapytaniem zrobić to w SQL Plus ?

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

hmm...
Skrypty tworzace baze danych wygenerujesz za pomoca Database Configuration Assistant (DBCA). Mozesz do skryptu dopisac automatyczne importowanie Twojego dump'a.

Mozesz tez teraz zrobic export calej bazy danych. Ale wtedy tez bedziesz potrzebowal wczesniej przed importem stworzyc nowa bazke (no ale to juz DBCA)

Nie slyszalem o innym sposobie, ale w sumie doswiadcznie krotkie ;) Z checia sie tez dowiem czy istnieje inny sposob.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę


Obrazek


Ale co Tu wybrać, mi chodzi o stworzenie pliku tekstowego z poleceniami sqlowymi do stworzenia usera nadania mu praw potworzenia tablic i do nich konstrainów, i w niektórych przypadkach inserty na tablice. a chyba to narzędznie mi tego nie zrobi ? To tworzy jakiś plik o rozszerzeniu DFB, który peweni mógłbym załadować gdzieś na czystą bazę ale niestety mi są potrzebne skrypty :(Radosław Wichrowski edytował(a) ten post dnia 29.10.07 o godzinie 15:04

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Wybierasz 'Create a Database' i ustawisz sobie wszystkie parametry. Przed koncowym ekranem mozesz stworzyc baze lub/i wygenerowac skrypty. Wiec zrob sama generacje skryptow. Co do tych insertow to juz musisz jakos kombinowac. Znam tylko takie sposoby jak Ci wymienilem.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Już załapałem, mechanizm o którym piszesz żeczywiście wygeneruje skrypty, klikologia doprowadza do utworzenia bazy lub/i utworzenia dla tej bazy skryptów. Ale w moim przypadku ja bazę już mam na dysku wczytaną wczesniej z dmp, z wszystkimi tabelami procedurami itp.... Więc nie będe tworzył jej na nowo.

Ale dotyczatem się że pliki dmp są gotywymi skryptami tylko w jakiś sposób skompresowanymi. Pytanie tylko jak z pliku dmp wyciągnąć te skrypty i wsio.
Jak tylko coś więcej się dowiem to napewno napiszę a puki co miłego wieczoru, ja kończę :)

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Hej !

Skoro masz dumpa bazy to zrób zwykły Oracle'owy import z opcjami full=Y show=Y log=nazwa_loga.txt <-to pozwoli podejrzec co jest w srodku bez zaciagania danych.
W ten sposób zrzuci Ci do logu wszystko co by ten dmp tworzył, potem pozostaje tylko trochę "obrobić" plik z logu ( cudzysłowy i inne ciapki) i masz gotowe skrypty co do obiektów: tabelek, triggerów itepe.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Z tworzeniem obiektow - owszem, ale insertow juz nie zobaczysz.
Pomijajac fakt, ze taki log moze byc duuuuzy ;)

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Piotr B.:
Z tworzeniem obiektow - owszem, ale insertow juz nie zobaczysz.
Pomijajac fakt, ze taki log moze byc duuuuzy ;)


Racja, insertów nie będzie. No to tu juz chyba zostaje ręczne zaciąganie konkretnych tabel do utworzonego schematu...

Inne pomysły ?

Pozdrawiam,
Mariusz T.

Mariusz T. Senior Software
Engineer

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

PL/SQL Developer
menu TOOLS
Export User Objects

powinno załatwić sprawę...
dostajesz gotowy skrypt
(kwestia posiadania PL/SQL developera)

Inne pomysły?

Pozdrawiam
Mariusz

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Na początek witam wszystkich:)

Moje pytanie jest nastepujące
W systemie MySQL można przerzucic mysqldumpem jedna baze i odpalic ja na zupelnie innej maszynie ktora ma zainstalowanego MySQL

czy można zrobić cos takiego na Oracle
załóżmy że na jednym z serwerów ma bazę Oracle 10g
odpowiednimi selctami wyszukuję pliki bazy danych czyli

select name from v$controlfile
select name from v$datafile
select name from v$tempfile
select member from v$logfile

czy po zatrzymaniu takiej bazy mogę tak znalezione pliki skopiować np poleceniem scp po ssh (linux)na zupełnie inny fizycznie serwer gdzie jest zainstalowana instancja Oracle i otworzyć tą bazę (czyli zestaw tych plików)????

dzięki z góry za odpowiedz.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

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.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

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?

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

No z praktyk jakie znam to jednak robi sie full export. Na nowym serwerze tworzy sie nowa baze i import.
Mariusz T.

Mariusz T. Senior Software
Engineer

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Jeżeli binarki oracle są identyczne na obu serwerach to przeniesienie zimnej kopii bazy nie stanowi problemu...

Pozdrawiam
Miłosz M.

Miłosz M. Specjalista ds.
technologii
informatycznych,
TZMO S.A.

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Ciekawe sposobu podajecie. A próbował ktoś po prostu użyć zwykłego Orkowego expa z commandlajna? Nie wiem czy jest w 10g ale na 9i mam i śmiga. exp -help wyświetla opcyjki i składnie. Można zrzucić całą bazkę albo wybrane fragmenty czy usera.
Pozdrawiam.

konto usunięte

Temat: [ORACLE] Jak wygenrować skrypt tworzący bazę

Miłosz M.:
A próbował ktoś po prostu użyć zwykłego Orkowego expa z
commandlajna?
Chyba nie zrozumiales problemu. Importujesz 'wyeksportowana baze' na jakas baze stworzona. Kolega chce skrypty do stworzenia bazy wraz z tym co juz zaimportowal. Krotko mowiac chce miec w kupie stworzenie bazy + pelny import.
Grzegorz K.

Grzegorz K. Cloud Technology
Solution Engineer,
Oracle Czech
Republic

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



Wyślij zaproszenie do