Oracle: Import data pump dump ohne wissen dump-Datei Inhalt
Alten Konzept für das exportieren/importieren der gesamten Schemas:
exp user/pwdp@server FILE=export.dmp OWNER=user ROWS=Y
imp newuser/pwd@server FULL=Y FILE=export.dmp
Neuen Ansatz:
expdp user/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder
Hatte jedoch ein problem mit dem Import von:
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder
nicht importieren nichts:
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31655: no data or metadata objects selected for job
ORA-39154: Objects from foreign schemas have been removed from import
Master table "NEWUSER"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "NEWUSER"."SYS_IMPORT_FULL_01": newuser/********@server
DUMPFILE=export.dp DIRECTORY=exportfolder
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Job "NEWUSER"."SYS_IMPORT_FULL_01" successfully completed at 19:13:04
Hinzufügen von schemas, die option wird nicht helfen (das Ergebnis ist das gleiche, oracle nicht erlaubt, import von non-owned-Objekte):
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder schemas=user
Und nur eine Arbeitsweise, die ich gefunden habe:
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder remap_schema=newuser:user
Also die Frage, wie das import-schema data pump dump, ohne zu wissen, das schema exportiert wurde?
(Natürlich kann ich suchen, um die ersten 512 bytes der export-Datei und suchen Zeichenfolge wie "USER"."SYS_EXPORT_SCHEMA_01"), aber möglicherweise existiert ein weiterer Ansatz?
InformationsquelleAutor Michael Pakhantsov | 2010-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, technisch sind Sie nicht die vollen=y korrekt:
Sollten Sie lieber tun:
Ähnlich impdp remap_schema Befehl.
Aber ich verstehe, was Sie versuchen zu tun ist, importieren Sie ein schema von einem Benutzer auf den anderen, ohne zu wissen, die Quell-Benutzer, bevor die hand. Ich hatte nur zu schweigen, denn wenn Sie nicht wissen, die Quell-Benutzer, dann kann es leicht sein, dass Sie nicht wissen, die Inhalte der Datenbank; und wenn Sie nicht wissen, die Inhalte der Datenbank könnten Sie importieren viel mehr Nutzer und Daten über Sie denke, Sie sollten durch die Abgabe einer full=y.
Punkt: Ein full=y-import mittels import aller Benutzer und deren zugeordneten Inhalt; unabhängig von der Benutzer, den Sie zum anmelden an der Datenbank und den import starten.
Haben, sagte mein disclaimer, impdp hat die gleiche Funktionalität in Bezug auf einen vollständigen import - nutzen Sie einfach full=y
UPDATE
Referenzen:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/dp_import.htm#sthref301
Pakhanstov - Das ist richtig, ein full=y wird sagen, die importieren das importieren von Daten in die Datenbank für die Benutzer, die in den import. Wenn new_user keine Daten in die import -, die in deinem Beispiel funktioniert es nicht-dann sehen Sie keine Daten oder Objekte in new_user; das ist, wo remap_schema ins Spiel kommt. ORA-39154 gibt an, dass Sie nicht über die Berechtigungen zum importieren von anderen Benutzern Daten - das ist, was Sie tun, mit full=y für beide imp impdp.
InformationsquelleAutor Joel Slowik