Import eines dumps

SonnyHH

Benutzer
Beiträge
22
Hallo zusammen!

Ich bin etwas ins "kalte Wasser" geworfen worden und benötige einmal Hilfe. Ich komme eher aus dem MS SQL Umfeld, hier geht es um eine alte Oracle 10g Umgebung.

Es existieren 2 Datenbanken, nennen wir sie DB und DBTest. Von DB wird jede nacht ein dump gemacht.
DBTest ist die Testumgebung uns soll die gleichen Daten enthalten, wie DB. Nicht tagesaktuell, aber immer mal wieder. Jetzt ist dieser Zeitpunkt gekommen und das Know-How krankheitsbedingt nicht im Unternehmen.

Auf dem Oracle DB Server finde ich keinerlei grafische Umgebungen, wie ich sie vom MS SQL Server her kenne (MS SQL Enterprise Manager). Wo die dumps liegen, weiß ich und ich habe auch ein Skript gefunden, von dem ich angenommen habe, dass es zum Import verwendet wurde. Ein Zweizeiler:

set oracle_sid=DBTest
imp 'user/passwort' file=d:\backup\DB.dmp full=Y log=d:\backup\DBTest.log

Ich habe dieses Skript laufen lassen. Es wurden auch Daten importiert, allerdings sind sie nicht identisch mit denen in der DB. ID Spalten unterscheiden sich, Kunden sind bei gleicher KundenNr unterschiedlich. Dies betrifft allerdings scheinbar nur die neueren Zeiträume. Ich vermute, dass das Problem dahingehend zu suchen ist, dass die Datenbak vorher nicht leer war. Muss sie das sein, bevor man ein Dump importiert?

Ist der Befehl grundsätzlich richtig? Oder fehlt ein Parameter, der eventuell für einen RESET sorgt, so dass ich hinterher identische Daten habe.

Vielen Dank im voraus...
André
 
Werbung:
Ich vermute, dass das Problem dahingehend zu suchen ist, dass die Datenbak vorher nicht leer war. Muss sie das sein, bevor man ein Dump importiert?

Grundsätzlich gesehen ja, ein DUMP besteht letztendlich nur aus weiteren Insert-Befehlen (oder COPY bei PG per Default, was aber hier unerheblich ist).

Was bei Euch so an Abläufen etabliert ist, ob die Ziel-Datenbank vorher zu löschen ist etc. das sollte in Eurer Doku stehen, die ihr dazu habt. Habt ihr doch, oder?
 
Grundsätzlich gesehen ja, ein DUMP besteht letztendlich nur aus weiteren Insert-Befehlen (oder COPY bei PG per Default, was aber hier unerheblich ist).

Was bei Euch so an Abläufen etabliert ist, ob die Ziel-Datenbank vorher zu löschen ist etc. das sollte in Eurer Doku stehen, die ihr dazu habt. Habt ihr doch, oder?

Nein, leider ist dem nicht so. Chaos pur...
Ich bin der Meinung dass es FULL dumps sind. Es tauchen beim Ausführen des Skriptes auch zahlreiche Fehlermeldungen auf, die in etwa besagen, dass das Objekt nicht angelegt werden kann, weil es bereits existiert.
 
Ja, das wird ähnlich sein wie in PostgreSQL. Abhängig davon, wie der Dump erstellt ist, kann man (in PG) auch ein --clean mitgeben, das DROPt die Dinge, die dann erstellt werden. Dazu müßte der Dump aber im Custom- oder einem anderen binären Format vorliegen. Ich weiß nicht, welche Möglichkeiten Ora da bietet.
 
Du kannst DESTROY=Y angeben, dann wird der komplette Tablespace neu angelegt. Das sollte man nur machen, wenn man weiß, was man macht. Bei einer Testumgebung kann man es ja mal probieren ;)
 
Werbung:
Ganz wichtig: nicht DESTROY=yes verwenden, wenn sich die Datenbanken auf dem gleichen Server befinden bzw. sich ein NAS o.ä. Teilen.
Damit überschreibst du die Datafiles der produktiven Datenbank, da auch die Pfadangaben der Datafiles mit enthalten sind!
 
Zurück
Oben