Wie finde ich den Schemanamen einer dmp-Datei für Datenpumpen?

8

Ich habe eine DMP-Datenpumpen-Exportdatei zum Importieren in meine lokale Oracle-Instanz erhalten. Ich habe versucht, diese Befehlszeile auszuführen:

impdp full = Y directory = DATA_PUMP_DIR dumpfile = MyDumpFile.dmp logfile = import.log

Ich bekomme die Fehler:

ORA-31655: Keine Daten oder Metadatenobjekte für den Job ausgewählt

ORA-39154: Objekte aus fremden Schemas wurden aus dem Import entfernt

Und es werden keine Daten importiert.

Nach dem, was ich gegoogelt habe, ist eine mögliche Ursache dafür, dass ich angeben muss remap_schama. Aber ich habe keine Ahnung, wie das Schema in der dmp-Datei heißt. Gibt es eine einfache Möglichkeit, dies herauszufinden?

EDIT: Ich habe keine Lösung für diese Frage gefunden, aber ich habe eine Problemumgehung gefunden ... Ich habe den Typen ausfindig gemacht, der das DMP erstellt hat, und Beat hat den Schemanamen aus ihm herausbekommen. Spezifiziert remap_schemanach seiner Definition und Hey Presto!

Shaul Behr
quelle
Vielen Dank für den Vorschlag: Die Beat-Problemumgehung hat auch für mich gut funktioniert. bePpe

Antworten:

9

Verwenden Sie den sqlfile=Parameter von impdp, um eine Datei zu generieren, die alle DDL / DML im Speicherauszug enthält.

Zum Beispiel:

[oracle@oel61 ~]$ impdp phil/phil directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt

Import: Release 11.2.0.2.0 - Production on Wed Mar 13 15:15:03 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Master table "PHIL"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded
Starting "PHIL"."SYS_SQL_FILE_FULL_01":  phil/******** directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt 
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "PHIL"."SYS_SQL_FILE_FULL_01" successfully completed at 15:15:05

[oracle@oel61 ~]$ 

Das Suchen nach CREATE USERDDL-Anweisungen in der Datei sollte Ihnen zeigen, welche Schemas für einen Import erforderlich sind.

Zum Beispiel aus meinem Test-Dump:

-- new object type path: SCHEMA_EXPORT/USER
-- CONNECT SYSTEM
 CREATE USER "PHIL" IDENTIFIED BY VALUES 'S:924B2E756404611021428644B4DF06A4A7BAB886837FCCFA510151E0FC44;181446AE258EE2F6'
      DEFAULT TABLESPACE "PHILDATA"
      TEMPORARY TABLESPACE "TEMP";
-- new object type path: SCHEMA_EXPORT/SYSTEM_GRANT
GRANT UNLIMITED TABLESPACE TO "PHIL";
GRANT CREATE SESSION TO "PHIL";
-- new object type path: SCHEMA_EXPORT/ROLE_GRANT
 GRANT "DBA" TO "PHIL";
-- new object type path: SCHEMA_EXPORT/DEFAULT_ROLE
 ALTER USER "PHIL" DEFAULT ROLE ALL;

Der einzige Nachteil ist, dass der resultierende SQL-Dump sehr groß ist, wenn die .dmp-Datei groß ist.

Philᵀᴹ
quelle
Was ist dieser erste Parameter "phil / phil"? Womit soll ich es ersetzen?
Shaul Behr
2
Es ist der Benutzername und das Passwort ....
Philᵀᴹ
1
D'oh! ..... :-)
Shaul Behr
Hm, alles was ich bekam war Folgendes: - VERBINDEN SIE PS ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1'; ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1'; ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1'; ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1'; ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1'; ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192';
Shaul Behr
2
Meine Antwort funktioniert mit full = y und einem Benutzer mit entsprechenden Berechtigungen (oder mit "/ as sysdba").
Philᵀᴹ