Comment pourrais-je créer une base de données à partir d'un fichier dmp? Je n'ai pas de base de données existante avec la même structure sur mon système, elle doit donc être complète avec des travaux, des événements, des tables, etc.
J'ai placé dmp et le fichier journal dans le lecteur E:
J'ai essayé l'utilitaire d'importation
E:/>impdp system/tiger@oratest FILE=WB_PROD_FULL_20MAY11.dmp
Mais je reçois une erreur comme
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.
Et quand je vois dans l'Explorateur Windows, le fichier dmp (provenant du serveur Linux) s'affiche en tant que fichier de vidage sur incident
Je ne comprends pas comment je peux résoudre ce problème. S'il vous plaît aidez-moi à résoudre ce problème.
Je suis un débutant sur Oracle ...
Comment la base de données a-t-elle été exportée?
S'il a été exporté à l'aide de exp
et qu'un schéma complet a été exporté,
Créez l'utilisateur:
create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
Accorder les droits:
grant connect, create session, imp_full_database to <username>;
Commencez l'importation avec imp
:
imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
S'il a été exporté avec expdp
, lancez l'importation avec impdp
:
impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
En regardant le journal des erreurs, il semble que vous n’ayez pas spécifié le répertoire. Oracle essaie donc de trouver le fichier dmp
dans le répertoire par défaut (c.-à-d. E:\app\Vensi\admin\oratest\dpdump\
).
Déplacez le fichier d'exportation vers le chemin ci-dessus ou créez un objet de répertoire pointant vers le chemin où se trouve le fichier dmp
et transmettez le nom de l'objet à la commande impdp
ci-dessus.
Toute cette paix de code mise dans un fichier * .bat et exécutée en une fois:
Mon code pour créer un utilisateur dans Oracle. fichier crate_drop_user.sql
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";
créez le fichier import.bat et mettez-y ces lignes:
SQLPLUS SYSTEM/systempassword@ORA_alias @"crate_drop_user.SQL"
IMP SYSTEM/systempassword@ORA_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log
Attention si vous importez d'un utilisateur à un autre. Par exemple, si vous avez un utilisateur nommé utilisateur1 et que vous importerez dans utilisateur2, vous risquez de perdre toutes les attributions.
Bonne chance, Ivan
Si vous utilisez impdp} exemple de commande de la réponse @ sathyajith-bhat:
impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
vous devrez utiliser le paramètre obligatoire répertoire et le créer et l’accorder comme suit:
CREATE OR REPLACE DIRECTORY DMP_DIR AS 'c:\Users\USER\Downloads';
GRANT READ, WRITE ON DIRECTORY DMP_DIR TO {USER};
ou utilisez l'un des définis:
select * from DBA_DIRECTORIES;
Mon Oracle Express 11g R2 a par défaut le nom DATA_PUMP_DIR (situé à l'adresse {rép_install}\app\Oracle/admin/xe/dpdump /) que vous devez encore accorder à votre utilisateur.