J'essaie d'exporter un schéma d'une base de données Oracle 10.2.0.5.0. Pour une raison quelconque, lorsque je lance la commande expdp, il finit presque immédiatement et cela ne crée que le fichier journal, aucun fichier de vidage. Ce doit être une erreur stupide mais je ne peux pas comprendre.
C'est la commande que je suis exécutant sur le serveur (connecté SSH comme utilisateur Oracle):
expdp my_user/my_pass@db schemas=my_user directory=my_dir dumpfile=exp.dmp logfile=exp.log
Avec SYS, j'ai le même résultat:
expdp \"sys/sys_pass@db as sysdba\" schemas=my_user ...
Il n'y a qu'une seule base de données sur le serveur, donc j'ai aussi essayé sans le @db
partie. Même résultat.
J'ai vérifié que my_dir
est correctement défini et pointe vers un emplacement de système de fichiers existant sur le serveur, avec espace disponible (~ 3,4 Go gratuit) et où l'utilisateur Oracle peut lire et écrire. J'ai également accordé des privilèges de lecture et d'écriture à my_user
au my_dir
. Et j'ai vérifié quadruplé que my_user
est le bon schéma avec les tables que je veux exporter.
Ceci est la seule sortie que je reçois, à la fois sur la console (sauf le ;;;
) et le logfile:
;;;
Export: Release 10.2.0.5.0 - 64bit Production on Monday, 08 April, 2019 13:27:31
Copyright (c) 2003, 2007, Oracle. All rights reserved.
;;;
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Et puis rien. Aucun fichier de vidage, pas d'erreurs, non rien. Il se termine juste.
J'ai trouvé cette page avec quelques requêtes utiles (?). v$datapump_job
et dba_resumable
sont vides. Il y a quelques exportations dans dba_datapump_jobs
, tous avec statut NOT RUNNING
; Je ne sais pas avec certitude car il n'y a pas de champ de "date", mais je pense qu'ils sont de vieux emplois, ils ne changent pas lorsque je lance la commande expdp
.
Que puis-je vérifier d'autre?
Edit : Si je cours echo $?
Immédiatement après la commande expdp
, elle génère 1
, qui, selon cette page (pour oracle 12c, pas 10,2 ... , signifie "sortie avec des erreurs fatales". Pourtant, pas assez important pour les écrire dans le logfile?
C'était un problème avec l'espace de table Temp, qui a été stocké dans une partition de disque sans espace disponible.
Après - Suggestion de CAM (merci!), J'ai vérifié que my_user n'a pas le EXP_FULL_DATABASE
Rôle, alors j'ai lancé à nouveau la commande expdp
mais sans le paramètre schemas
. Pour une raison quelconque, le fait ainsi que Oracle a finalement pris pitié de moi, a abandonné ses shenanigans et a décidé de montrer l'erreur:
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.DISPATCH_WORK_ITEMS while calling
DBMS_LOB.CREATETEMPORARY []
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Après - "déplacer" le Datafile Temp Datafile à une autre partition et avoir un bon combat avec nix pour libérer l'espace disque , le FEDP fonctionne enfin.