wake-up-neo.net

Wie importiere ich eine Oracle-Datenbank aus der dmp-Datei und der Protokolldatei?

Wie würde ich eine Datenbank aus einer dmp-Datei erstellen? Ich habe keine vorhandene Datenbank mit der gleichen Struktur in meinem System, daher muss sie mit Jobs, Ereignissen, Tabellen usw. abgeschlossen sein. 

Ich habe dmp und Protokolldatei in Laufwerk E: gestellt

Ich habe das Import-Dienstprogramm ausprobiert 

E:/>impdp system/[email protected] FILE=WB_PROD_FULL_20MAY11.dmp

Aber ich bekomme Fehler als

invalid argument value
bad dump file specification
unable to open dump file "E:\app\Vensi\admin\oratest\dpdump\WB_PROD_F
ULL_20MAY11.dmp" for read
unable to open file
unable to open file
(OS 2) The system cannot find the file specified.

Und wenn ich in Windows Explorer die dmp-Datei (vom Linux-Server genommen) sehe, wird sie als Crash-Dump-Datei angezeigt

Ich verstehe nicht, wie ich dieses Problem lösen kann. Bitte helfen Sie mir, dieses Problem zu lösen.

Ich bin ein absoluter Neuling in Oracle ... 

59
praveenb

Wie wurde die Datenbank exportiert?

  • Wenn es mit exp exportiert wurde und ein vollständiges Schema exportiert wurde, dann

    1. Erstellen Sie den Benutzer:

      create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
      
    2. Gewähren Sie die Rechte:

      grant connect, create session, imp_full_database to <username>;
      
    3. Starten Sie den Import mit imp:

      imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
      
  • Wenn es mit expdp exportiert wurde, starten Sie den Import mit impdp:

    impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
    

Bei der Betrachtung des Fehlerprotokolls scheint es, als hätten Sie das Verzeichnis nicht angegeben. Daher versucht Oracle, die dmp-Datei im Standardverzeichnis (d. H. E:\app\Vensi\admin\oratest\dpdump\) zu finden.

Verschieben Sie die Exportdatei entweder in den obigen Pfad oder erstellen Sie ein Verzeichnisobjekt, das auf den Pfad zeigt, in dem sich die dmp-Datei befindet, und übergeben Sie den Objektnamen an den obigen Befehl impdp.

92
Sathyajith Bhat

Der ganze Code-Code wird in die * .bat-Datei eingefügt und auf einmal ausgeführt:

Mein Code zum Erstellen eines Benutzers in Oracle. crate_drop_user.sql Datei

drop user "USER" cascade;
DROP TABLESPACE "USER";

CREATE TABLESPACE USER DATAFILE 'D:\ORA_DATA\ORA10\USER.ORA' SIZE 10M REUSE 
    AUTOEXTEND 
    ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
    SEGMENT SPACE MANAGEMENT  AUTO
/ 

CREATE  TEMPORARY TABLESPACE "USER_TEMP" TEMPFILE 
    'D:\ORA_DATA\ORA10\USER_TEMP.ORA' SIZE 10M REUSE AUTOEXTEND
    ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
    UNIFORM SIZE 1M    
/

CREATE USER "USER"  PROFILE "DEFAULT" 
    IDENTIFIED BY "user_password" DEFAULT TABLESPACE "USER" 
    TEMPORARY TABLESPACE "USER_TEMP" 
/    

alter user USER quota unlimited on "USER";

GRANT CREATE PROCEDURE TO "USER";
GRANT CREATE PUBLIC SYNONYM TO "USER";
GRANT CREATE SEQUENCE TO "USER";
GRANT CREATE SNAPSHOT TO "USER";
GRANT CREATE SYNONYM TO "USER";
GRANT CREATE TABLE TO "USER";
GRANT CREATE TRIGGER TO "USER";
GRANT CREATE VIEW TO "USER";
GRANT "CONNECT" TO "USER";
GRANT SELECT ANY DICTIONARY to "USER";
GRANT CREATE TYPE TO "USER";

erstellen Sie die Datei import.bat und fügen Sie diese Zeilen ein:

SQLPLUS SYSTEM/[email protected]_alias @"crate_drop_user.SQL"
IMP SYSTEM/[email protected]_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log

Seien Sie vorsichtig, wenn Sie von einem Benutzer zu einem anderen importieren. Wenn Sie beispielsweise user1 benannt haben und in user2 importiert werden, verlieren Sie möglicherweise alle Berechtigungen, sodass Sie sie neu erstellen müssen.

Viel Glück, Ivan

Wenn Sie impdp command aus der @ sathyajith-bhat-Antwort verwenden:

impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;

sie müssen den obligatorischen Parameter directory verwenden und ihn erstellen und gewähren als:

CREATE OR REPLACE DIRECTORY DMP_DIR AS 'c:\Users\USER\Downloads';
GRANT READ, WRITE ON DIRECTORY DMP_DIR TO {USER};

oder benutze eine der definierten:

select * from DBA_DIRECTORIES;

Mein Oracle Express 11g R2 hat standardmäßig den Namen DATA_PUMP_DIR (unter {inst_dir}\app\Oracle/admin/xe/dpdump /), den Sie Ihrem Benutzer noch geben müssen.

0
Marek-A-