|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Bonjour.
Je suis en Oracle 10.2.0.1.0 (sur Windows XP et aussi sur RedHat). J'ai 2 questions sur Datapump. Tout d'abord, je n'arrive pas à trouver la commande pour voir à quel répertoire est affecté le directory datapump. Pour créer le répertoire, ok, c'est "create directory datapump as 'xxx'", mais si on a oublié ce que l'on a mis comme répertoire et que l'on veut savoir à quel répertoire physique on a fait correspondre le répertoire logique datapump, comment on fait? Ensuite, j'essaye d'importer une table à partir d'un fichier d'export (fait avec datapump et même version). Je n'arrive pas à trouver pourquoi ça ne marche pas. J'arrive à faire des export et import sans problème sur Windows XP, mais sur RedHat ça ne marche pas (la différence c'est que sous Windows c'est moi qui ai installé la base, sur Linux non). Ma commande est la suivante: Code :
impdp user/mdp directory=datapump dumpfile=monexport.dmp TABLES=matable Code :
Quand je fais un export (full ou d'une table) pareil. Merci d'avance si vous avez une idée. |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 61 ![]() |
Pour voir la définition de ton driectory :
select * from dba_directories; |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 61 ![]() |
Plus exactement dans ton cas :
select * from dba_directories where directory_name='DATAPUMP' / |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Merci pour ta réponse.
Ca m'a permis de voir que le répertoire datapump pointait sur un répertoire physique inexistant. Par contre, même en créant ce répertoire, j'ai toujours les mêmes erreurs. Mon user a bien les droits exp_full_database, imp_full_database. Il a bien les droits de lecture et d'écriture dans le répertoire datapump. J'ai repassé le script ORACLE_HOME/rdbms/admin/catqueue.sql (réponse vu sur un forum ou une personne avait à peu près les mêmes erreurs que moi). Rien n'y fait. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
est-ce que ton fichier monexport.dmp existe bien ?
Parce que si le répertoire n'existait pas, le fichier non plus, j'imagine... Donc il te faut le mettre dans le directory. |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Oui il existe. Il était dans un autre répertoire (celui que je croyais être le "datapump"). Maintenant bien sur je l'ai copié dans le bon répertoire.
Mais je savais que ce n'était pas ça le problème vu que j'ai le même style d'erreur quand j'essaye de faire un export avec la commande suivante: Code :
expdp user/mdp directory=datapump dumpfile=monexport2.dmp full=yes Je pense que c'est un problème de config pour utiliser le datapump, mais je n'arrive pas à trouver lequel. |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() DBA Oracle freelance Inscription : janvier 2005 Messages : 558 ![]() |
Ne pas oublier le grant read,write on directory DATAPUMP to ton_utilisateur;
A faire en tant que SYS. Sinon créé une nouvelle directory (en SYS) a laquelle du donnes les droits R,W. |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() DBA Oracle freelance Inscription : janvier 2005 Messages : 558 ![]() |
Est-ce qu'un compte DBA peux utiliser datapump ?
Si c'est le cas, la solution doit être : Grant select on ALL_USERS to PUBLIC; Voir note 438236.1 : Expdp Fails With ORA-31637 ORA-00942 Il doit manqué un privilège. select * from dba_tab_privs where table_name='ALL_USERS'; => pas bon si 0 ligne. |
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Administrateur de base de données Inscription : novembre 2007 Messages : 341 ![]() |
existe-t-il sur la base des objets nommés SYSTEM appartenant à un autre propriétaire que SYSTEM? c'est un mot réservé qui peut invalider des objets d'advanced queuing et aussi certains composants de la table de queue SYS.KUPC$DATAPUMP_QUETAB qu'utilise datapump.
|
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Avec le compte SYSTEM, ça ne marche pas non plus (même erreur).
Les privilèges sont bons dans dba_tab_privs: j'ai une ligne, et surtout la même chose sur ma machine Windows (ou ça marche) et sur ma machine Linux. Sinon aucun objet avec le mot clé SYSTEM (j'ai vérifié dans all_objects). |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Je viens de voir que j'ai plus de 500 objets invalid dans la table all_objects. Donc c'est mon instance de base de données qui est mal créée.
Surtout que sur une autre instance sur la même machine, ça marche (et là aucun objet invalide). Donc je reconstruis ma base et ça devrait mieux marcher. Merci à tous. |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Ingénieur développement logiciels Inscription : avril 2007 Messages : 51 ![]() |
Je viens de recréer mon instance de base de données.
Je n'ai plus d'objets invalides dans all_objects, et ça marche. Je ne sais pas d'où venait le problème, surtout que j'ai utilisé les mêmes scripts pour construire mon instance. Mais l'important c'est que ça marche. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com