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 pour 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.
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 le fromuser=
et touser=
IMP bascule 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 cela pourra aider!
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 ABCDE
qui 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.
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.
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?
Plutôt que 'sys/password AS SYSDBA', essayez 'system/password'.
L'outil Oracle requiert le même utilisateur pour importer que créé l'exportation même si sys est l'utilisateur "tout puissant".
Un avertissement a été émis 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
c:\\ imp database name/password@Oracle9i file=xyz,dmp grants=n ignore=y
fromuser=database name touser=database name