Importez un fichier Oracle DMP dans une nouvelle installation d'Oracle

30

Un client nous a envoyé une base de données Oracle sur laquelle nous devons tester. Nous n'utilisons pas Oracle ou n'avons aucune expertise Oracle en interne.

Nous devons configurer la base de données afin de pouvoir nous y connecter et déboguer un problème.

J'ai fait une nouvelle installation d'Oracle 9 (la version que le client exécute) et des outils de gestion.

Pour la vie de moi, je ne peux pas l'obtenir pour importer les données. Cela ne devrait pas être aussi compliqué. Je dois me tromper.

J'ai essayé:

imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt

et a obtenu:

Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path

Warning: the objects were exported by SYSTEM, not by you

import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYS
. importing ABCDE's objects into ABCDE
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
Import terminated successfully with warnings.

Mais rien n'apparaît dans le gestionnaire en ce qui concerne les tables dans n'importe quel schéma et je suis à bout de souffle.

RolandoMySQLDBA
la source
Merci, problème exact ici. Vous avez un vidage Oracle et nous devons importer. Extrêmement contre-intuitif par rapport à, pratiquement, tout autre système de base de données
namezero

Réponses:

28

Vous devrez d'abord créer un utilisateur (ou schéma)

C:\>sqlplus system/password

SQL> create user CLIENT_TEST identified by client_test_password;
SQL> grant connect, unlimited tablespace, resource to CLIENT_TEST;
SQL> exit

Ensuite, vous pouvez utiliser les commutateurs fromuser=et touser=IMP pour importer les données dans le nouvel utilisateur / schéma:

C:\>imp system/password FROMUSER=ABCDE TOUSER=client_test file=c:\database.dmp full=yes

J'espère que ça t'as aidé!

Andrew
la source
ORA-65096: nom d'utilisateur ou de rôle commun non valide
Kvasi
12

Il n'est pas courant de créer des tables comme SYS ou SYSTEM dans Oracle, car ces deux comptes sont des administrateurs.

L'erreur signifie que votre client a créé des tables en tant qu'utilisateur ABCDE.

Vous devez créer cet utilisateur avant l'importation, puis vous devez importer des données en tant qu'utilisateur,

Cela devrait éliminer l'erreur car le fichier exporté contient des autorisations et d'autres informations liées à l'utilisateur ABCDEqui n'existe pas dans la base de données.

Consultez cette question pour obtenir des conseils supplémentaires: comment déterminer les schémas dans un fichier d'exportation Oracle Data Pump.

zendar
la source
7

Vous devez d'abord créer l'utilisateur "ABCDE"

Quelque chose comme

Dans SQL * PLUS:

create user ABCDE identified by password;
grant connect, resource to ABCDE;

Il y a un millier d'options sur "créer un utilisateur" mais cela utiliserait les valeurs par défaut.

Nick Pierpoint
la source
3

Le client a-t-il fourni des détails sur la façon dont il a généré le fichier de vidage? En particulier, êtes-vous certain qu'il s'agit d'une exportation complète plutôt que d'une exportation au niveau du schéma, d'une exportation au niveau de l'espace table ou d'une exportation au niveau de la table?

Justin Cave
la source
J'ai une question connexe. Êtes-vous prêt à commenter cela? Voici le lien: dba.stackexchange.com/questions/130515/…
CodeMed
3

Plutôt que 'sys / password AS SYSDBA', essayez 'system / password'.

L'outil Oracle nécessite le même utilisateur pour importer que créé l'exportation même si sys est l'utilisateur "tout puissant".

dacracot
la source
1

Un avertissement a été donné concernant le fait que les données que vous importez ont été réellement exportées par l'utilisateur SYS sous forme de fichier .dmo. Essaye ça..

C:\oracle\ora92\bin>imp sys/pwd@dbname file=c:\database.dmp full=yes

dbname est le nom de la base de données que vous avez fourni


la source
0
c:\\ imp database name/password@oracle9i file=xyz,dmp grants=n ignore=y 
  fromuser=database name touser=database name
vikas
la source
1
Vous devez clarifier votre réponse en expliquant comment cela fonctionne, quels sont les paramètres, quoi que ce soit vraiment au-delà d'une simple ligne de commande.
Max Vernon