web-dev-qa-db-fra.com

ORA-39165 Schema n'a pas été trouvé dans l'exportation

Je reçois l'erreur suivante sur une pompe à données exportation:

ORA-39165: Schema OFDAT was not found.

J'ai d'abord vérifié que j'avais l'autorisation d'exportation complète:

GRANT EXPORT FULL DATABASE TO OFDAT;

Ensuite, j'ai essayé l'option d'administrateur au cas où cela le ferait:

GRANT EXPORT FULL DATABASE TO OFDAT WITH ADMIN OPTION;

J'ai regardé l'erreur de plus près à Oerr:

[Oracle@OptTekOracleDB dpdump]$ oerr ora 39165
39165, 00000, "Schema %s was not found."
// *Cause:  If exporting or importing over the network, either the user
//          specified a schema name that was not found in the source database
//          or else the user lacked the proper EXP_FULL_DATABASE or
//          IMP_FULL_DATABASE role that would allow them to access another
//          schema.  For importing from files, the user specified a schema
//          name not found in the dump file set.
// *Action: Retry the operation using the correct schema name.

Aha! J'ai pensé. Même si j'ai la subvention, cela dit que j'ai besoin du rôle. J'ai donc ajouté le rôle à l'utilisateur:

GRANT EXP_FULL_DATABASE TO OFDAT;

Je reçois toujours la même erreur, le schéma n'a pas été trouvé. Ne peut penser à rien d'autre à essayer.

@Phil - Voici mon fichier de paramètres MPDPP:

DUMPFILE="dev_ofdat_2-1-3-0_afterbackfill.dmp"
LOGFILE="exp_dev_ofdat_2-1-3-0_afterbackfill.log"
DIRECTORY=DATA_PUMP_DIR
COMPRESSION=METADATA_ONLY
CONTENT=ALL
SCHEMAS=('OFDAT')

Très simple. La ligne de commande pour le lancer est:

expdp ofdat PARFILE=exp_dev_ofdat_2-1-3-0_afterbackfill.dat
2
orbfish

Si je lisais correctement le message d'erreur, il indique également que les fichiers de vidage que vous utilisez pour importation n'ont pas de contenu pour le nom de schéma que vous avez spécifié.

Ces fichiers de vidage contiennent probablement du contenu associé à différents schéma et oracle (plus spécifiquement IMPDP) n'importeront pas ce contenu.

Lorsque vous installez le logiciel client Oracle, il est livré avec un outil graphique 'Oracle SQL Developer'. Cet outil vous permet d'exporter toutes les tables et le contenu d'un schéma dans un fichier SQL, qui peut être importé dans le schéma souhaité. Le logiciel client Oracle est offert gratuitement, mais nécessite que vous vous inscrivez sur leur site Web.

Ensuite, vous pouvez utiliser vos outils de dépotoir standard à nouveau sur votre contenu de cœur.

De cette façon n'est utile que s'il n'y a pas beaucoup de données dans le schéma d'origine, car cela peut générer un énorme fichier très rapidement.

Dans ce fichier, remplacez le nom du schéma d'origine avec le nom du schéma que vous souhaitez et stockez-le. Utilisez à nouveau l'outil 'Oracle SQL Developer' pour exécuter ce fichier et vous êtes d'or.

1
Gerold manders

Lorsque je rencontre des problèmes comme celui-ci, j'aime simplifier le plus possible la commande. Je voudrais essayer de mettre tous les paramètres directement dans la ligne de commande et de supprimer les paramètres qui ne sont pas nécessaires. Et j'utiliserais un utilisateur de DBA pour le faire. Quelque chose comme ça.

expdp {dbausername}/{dbapassword} SCHEMAS=OFDAT DUMPFILE=dev_ofdat_2-1-3-0_afterbackfill.dmp
1
Jake

Mon observation est que l'erreur

 ORA-39165: Schema XXXX was not found.

ne pourrait être qu'une erreur de substitution pour d'autres problèmes. J'ai reçu son message lors de l'utilisation du paramètre INCLUDE deux fois avec le même type d'objet

 INCLUDE=TABLE:"IN('T1','T1')"
 INCLUDE=TABLE:"IN('T3','T4')"

Après avoir retiré une de ces lignes que le schéma a été "magiquement" trouvé :)

Le même message est également soulevé si les tables figurant dans la liste dans la liste existent (par exemple en raison de problèmes de cas de caractère).

0
Marmite Bomber