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 ...
Wie wurde die Datenbank exportiert?
Wenn es mit exp
exportiert wurde und ein vollständiges Schema exportiert wurde, dann
Erstellen Sie den Benutzer:
create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
Gewähren Sie die Rechte:
grant connect, create session, imp_full_database to <username>;
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
.
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.