Gibt es eine bequeme Möglichkeit zum Importieren eines Schemas in Oracle 11gR2 mithilfe eines einzelnen neuen oder anderen Tabellenbereichs als dem, aus dem die Daten stammen?
Als Beispiel habe ich BLOG_DATA aus OLDDB exportiert, wo alle Benutzerdaten im USERS-Tabellenbereich gespeichert sind.
In NEWDB möchte ich das BLOG_DATA-Schema importieren, aber die Benutzerobjekte im BLOG_DATA-Tabellenbereich speichern, der speziell für diesen Benutzer erstellt wurde.
Ich habe den BLOG_DATA-Benutzer erstellt, den BLOG_DATA-Tabellenbereich erstellt und ihn als Standard-Tabellenbereich für diesen Benutzer festgelegt und ein entsprechendes unbegrenztes Kontingent hinzugefügt.
CREATE TABLESPACE blog_data DATAFILE SIZE 1G;
CREATE USER blog_data IDENTIFIED BY secretpassword DEFAULT TABLESPACE blog_data QUOTA UNLIMITED ON blog_data;
GRANT connect,resource TO blog_data
Das Schema wurde mit so etwas wie aus OLDDB exportiert
exp blog_data/secretpassword@OLDDB file=blog_data.dmp
Nachdem ich Phils ausgezeichnete Antwort unten gelesen hatte, fragte ich mich :
Da die Daten keinen anderen Speicherort als den Standardtabellenbereich haben - den einzigen Tabellenbereich, für den der Benutzer ein Kontingent festgelegt hat - wird dadurch der IMP gezwungen, alle Benutzerobjekte in diesen Standardtabellenbereich zu verschieben?
imp blog_data/secretpassword@NEWDB file=blog_data.dmp
Würde dies dann das gesamte blog_data-Schema in den blog_data-Tabellenbereich von NEWDB stellen? Gibt es einen Grund, warum dies nicht funktioniert oder ich Probleme mit bestimmten Objekten usw. habe?
aktualisieren:
Ich habe einen kurzen Test gemacht und festgestellt, dass dies der Fall ist. Imp
Platziert Objekte im Standardtabellenbereich für diesen Benutzer, vorausgesetzt, er kann sie nicht im ursprünglichen Tabellenbereich platzieren (z. B. der Tabellenbereich ist nicht vorhanden). Vollständige Erklärung: http://www.dolicapax.org/?p=57
Dennoch denke ich, dass die Verwendung von Data Pump, wie Phil vorschlägt, die bevorzugte Option sein könnte.
exp
Dienstprogramm oder mitexpdp
(Datenpumpe) exportiert ?