Question

J'ai exécuté les commandes suivantes :

expdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=expdpSCH_%date%.log

Cela fonctionne très bien, sans erreurs.Mais quand j'utilise la commande :

impdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=impdpSCH_%date%.log

Cela m'a donné un tas d'erreurs indiquant que des tables, des séquences et d'autres éléments existent déjà.J'ai donc une question : puis-je utiliser une telle approche ou c'est faux et je devrais utiliser autre chose ?

Était-ce utile?

La solution

Consultez la documentation pour plus d'informations ou tapez impdp help=y.Il y a un paramètre (TABLE_EXISTS_ACTION) qui définit si vous souhaitez écraser les objets existants ou si vous souhaitez les ajouter.

TABLE_EXISTS_ACTION
Action à entreprendre si l'objet importé existe déjà.
Les mots-clés valides sont :AJOUTER, REMPLACER, [SKIP] et TRUNCATE.

Autres conseils

Non, ce n'est pas une manière possible:

  • La plupart des objets non-tableaux existent déjà dans votre schéma.Vous obtenez déjà de tels messages d'erreur.L'importation ne sera pas écrasée.
  • Vous pouvez configurer comment l'exportation devrait fonctionner si une table existe déjà, mais s'il y a une table indiquée par une autre table, tronquer et remplacer ne fonctionnera pas.
  • même s'il n'y a pas de référence de clé étrangère à un index de table ralentira l'importation de manière spectaculaire
  • Beaucoup d'autres problèmes peuvent se produire (concernant les déclencheurs, les partitions, les références à d'autres tables et peut-être plus)

Donc, la seule façon raisonnable de synchroniser le schéma à l'aide de SPDDP / IMPDP consiste à supprimer le schéma avant d'importer.

Si vous ne voulez pas laisser tomber le schéma pour une raison quelconque, mais remplacez les données des tables, de nombreuses opérations supplémentaires sont nécessaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top