|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Bonjour à tous et à toutes, et bonne année 2012,
Je reviens vers vous (Ô grande communauté de sagesse et de connaissance) après quelques temps d'absence pour vous demander votre aide sur cette technologie que je découvre: Oracle. En l'occurrence, plus particulièrement, l'export/import à l'aide de Datapump. J'ai un soucis de structure sur une des bases que j'ai en local (cette base sera nommée Base P pour plus de facilité). Sur cette Base P donc, il manque pas mal de champs quand j'ai passé le script sql de création (pas à jour apparemment, et comme je viens d'arriver ...). J'ai, en revanche, une autre base (appelons la Base C), qui, elle, est à jour. Elle est donc ma base la plus complète en terme de métadonnées. Jusque là, rien de méchant. Il me suffit de supprimer la base P, la recréer en vierge pour pouvoir y importer la structure de la base C. Code :
Là où par contre, je me pose de sérieuses questions, c'est qu'il y a des tables pour lesquelles ça m'arrangerait de récupérer également les datas. Des tables qui ne sont pas liées au métier, comme la table des communes françaises. Ma question est la suivante: Est-il possible de faire un datapump complexe me récupérant la structure de toute la base C + les datas de quelques tables précises, ou dois-je faire deux exports (ce qui ne me dérange pas, même si je voudrais savoir) ? Et, dans le cas de deux exports, comment faire l'export de mes données spécifiques ? Je sais que c'est possible, mais je n'ai pas tout compris sur la commande et ses paramètres Si quelqu'un peut m'éclairer, Merci d'avance, Thomas |
||
|
|
00
|
|
|
#2 |
![]() Inscription : décembre 2002 Messages : 2 389 ![]() |
A ma connaissance, ça ne sera pas possible en un seul export.
Donc il faut faire 2 exports et deux imports (même si dans l'absolu on pourrait faire un seul export, avec structure + données, et être sélectif lors des imports). Lors du 1er import destiné à créer juste les structures, vous pouvez utiliser le paramètre EXCLUDE pour écarter les tables que vous allez importer plus tard ou bien lors du 2e import destiné à créer les quelques tables complètes, vous précisez le paramètre TABLE_EXISTS_ACTION=APPEND, car sinon les tables, qui existent déjà, mais vides, ne seront pas alimentées.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Bonjour,
Pour votre question, ca me parait tendu, mais bon c'est un avis comme ca. Dans le cas de deux exports, vous avez le parametre TABLE pour l'export, et peut-etre TABLE_EXISTS_ACTION=REPLACE|SKIP pour l'import selon ce que vous voulez faire. Edit: @Pomalaix: Avec ACTION_EXISTS=APPEND ca va doubler les donnees si elles existes deja. Ca peut faire des cafouillages dans d'autres cas. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Merci à vous deux.
Je pense que je vais me diriger sur le TABLE_EXISTS_ACTION=APPEND. Mais dans ce cas, comment puis-je sélectionner les tables qui m'intéresse dans l'export et l'import ? Merci d'avance, Cordialement, Thomas |
|
|
00
|
|
|
#5 | |
![]() Inscription : décembre 2002 Messages : 2 389 ![]() |
Citation:
Dans ce cas il n'y a pas de risque de doublons, en tout cas si on n'exécute ce scénario qu'une fois.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Effectivement, si l'on n’exécute ce scénario qu'une seule fois. Ce qui est le cas ici
Par contre l'import via les commandes Code :
J'ai fait une erreur dans la commande impdp ? Là je vois pas Merci d'avance Cordialement, Thomas |
||
|
|
00
|
|
|
#7 |
![]() Inscription : décembre 2002 Messages : 2 389 ![]() |
Que disent respectivement les logs d'export et d'import ?
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#8 |
![]() Inscription : décembre 2002 Messages : 2 389 ![]() |
Concernant le 2e export, il faudra lister les tables à prendre en compte. Pour ça, on remplace le paramètre SCHEMAS par TABLES.
Code :
expdp C/[pwd]@[sid] TABLES=t1,t2,t3 directory=maDir DumpFile=C.dmp logfile=CExp.log
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#9 | ||
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Avec les commandes suivantes:
Code :
EDIT: Merci pour la commande expdp avec l'argument table |
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Une seconde.
Je viens de regarder les logs de l'import. Je croyais que l'argument schemas, dans la commande d'import, était fait pour définir le schéma à importer dans le dump. Je vais tester en mettant Poitiers -_- EDIT: schéma introuvable ... |
|
|
00
|
|
|
#11 | ||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Schemas, c'est quel schema tu veux importer.
Un exemple:
Code :
|
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : juin 2007 Messages : 31 ![]() |
Bon, verdict, le remap_schema de Rams7s a marché pour importer les structures.
Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com