# Oracle 9i Dump unter anderen Tablespace



## ioneshock (24. Juli 2006)

Hallo zusammen,

ich habe mit dem Export-Programm (exp.exe) unter einem 9i-Client (windows-XP) einen Dump erstellt (Nutzerexport, ohne Berechtigungen). Dieser lässt sich auch auf der Zieldatenbank problemlos einspielen, solange der gleiche Tablespacename verwendet wird.
Bei verschiedenen Bezeichnungen des Tablespace, wird eine Fehlerbezeichnung ausgegeben.
Nun ist meine Frage: Wie spiele ich einen Dump auf einem anderen Tablespace ein?

Schon einmal vielen Dank für die Antwort 

Grüße Stephan


----------



## Exceptionfault (24. Juli 2006)

Ich glaube es gibt leider keine Möglichkeit direkt einen anderen Tablespace anzugeben. 
Eine Möglichkeit wäre aber alle Segmente (Tabellen, Indizes) die in diesem Tablespace waren, 
schon vor dem Import in der Datenbank anzulegen. Natürlich in dem Tablespace in dem sie später
auch liegen sollen. Wichtig ist, dass sie im selben Schema liegen wie früher.
Beim IMPORT wird er dann meckern, dass die Segmente bereits existieren. Mit dem Parameter
IGNORE=Y wird er die vorhandenen Tabellen mit den Daten aus dem Export füllen.

Sowas macht man immer dann, wenn man z.B. die Storage Parameter einer Tabelle ändern will.


----------



## ioneshock (24. Juli 2006)

Danke 

Werde einmal die Tage versuchen mich da durchzufuchsen.


----------



## ishino (25. Juli 2006)

Das Problem mit den Tablespaces hast Du nur dann, wenn per STORAGE-Klausel explizit angegeben wird, in welchen Tablespace die Tabellen sollen (oder zum Beispiel in ihnen enthaltene BLOBs). Ist das nicht der Fall, werden sie einfach in den Default Tablespace des entsprechenden Users abgelegt. Da ein Dump-File im Grunde nichts weiter als eine grosse Textdatei ist, kannst Du mittels sed (Stream Editor, gibts auch fuer Windows) oder einem Texteditor Deiner Wahl (bei hinreichend kleinen Dumps, bei groesseren wird das unangenehm) einfach den unpassenden Tablespace mit dem richtigen ersetzen. Etwa so:


```
sed -r "s/TSORIG/TSNEW/g" dump_file.dmp > dump_file_fixed.dmp
```

Der regulaere Ausdruck muss ggf. angepasst werden, um unbeabsichtigte Aenderungen (wenn beispielsweise der Name des Tablespaces auch in Spaltennamen oder sogar Werten auftauchen kann) zu vermeiden.


----------



## ioneshock (25. Juli 2006)

Danke für die Hilfe 

Die erste Lösung hat gut geklappt  gab nu ein paar Probleme mit den Triggern. Die konnten aber nachträglich neu eingespielt werden.

Die zweite Lösung werde ich aber auf jeden Fall einmal ausprobieren.

Danke vom Stephan


----------

