Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Import/Export Oracle Discussion :

Plus d'objets après import qu'avant


Sujet :

Import/Export Oracle

  1. #1
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    décembre 2004
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 025
    Points : 3 102
    Points
    3 102
    Par défaut Plus d'objets après import qu'avant
    Bonjour,

    Déjà, désolé, je ne sais pas ou classer cette question.
    Je tente de décrire ma situation:
    . Je dois migrer des objets d'un schéma sous Oracle 11g (11.2.0.4.0) vers un nouveau schema en Oracle 12.1.0.2.0.
    . Les tables du schéma source contiennent des champs qui sont de type "nested tables", donc histoire de voir ce qui se passait (et aussi, être sûr que ces tables soient bien créées), je fais d'abord un IMPDP ou j'importe les objets de type TYPE_SPEC, puis les TYPE_BODY. Ensuite, je lance un IMPDP avec uniquement les tables (include=TABLE).
    La, elles sont toutes bien créées. Mais lorsque je regarde dans user_objects, et que je compte par object_type, je vois que j'ai 353 index au lieu de 103 dans le schéma source!
    En cherchant un peu, je vois que dans le cas de contraintes du type Primary Key ou Unique, etc .. Oracle va créer un index "Oracle Database enforces a UNIQUE key or PRIMARY KEY integrity constraint on a table by creating a unique index on the unique key or primary key. This index is automatically created by the database when the constraint is enabled.".
    Mais pourquoi diable me retrouve-je avec 353 index au lieu de 103? Et quelles sont les conséquences possibles?

    Merci d'avance,


    Note: pour faire mes impdp, je pars d'un export fait avec expdp et qui contient tout ce que contient le schéma.
    Note2: je ne suis pas DBA, donc ... je compte sur vous pour m'éclairer
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    décembre 2004
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 025
    Points : 3 102
    Points
    3 102
    Par défaut
    Citation Envoyé par Sunchaser Voir le message
    Mais pourquoi diable me retrouve-je avec 353 index au lieu de 103? Et quelles sont les conséquences possibles?
    Ah! J'ai oublié de préciser: les nouveaux index que je vois sont tous des "SYS..." (index_name contient "SYS_...bla,bla,...$$")
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre expérimenté
    Homme Profil pro
    DBA Oracle
    Inscrit en
    avril 2013
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 1 258
    Points : 1 442
    Points
    1 442
    Par défaut
    Compliqué ton truc car utiliser des Nested Tables, c'est rare, vraiment rare...

    Les index qui ont le nom SYS*** sont des index pour lesquels tu n'as pas donné de nom; par exemple tu crées sur un champ une contrainte UNIQUE ou PRIMARY sans nommer cette contrainte, alors Oracle crée un index pour vérifier l'unicité des valeurs et le nomme SYS***

    Petite question : ta base 12 est en mode CDB ou non?
    Que renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT cdb FROM v$database;
    Que renvoie l'ordre SQL suivant sur la base source puis sur la nouvelle base en étant connecté avec le user qui a créé les tables?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT INDEX_OWNER, INDEX_NAME, INDEX_TYPE, TABLE_OWNER, TABLE_NAME, TABLE_TYPE, UNIQUENESS, STATUS 
    FROM ALL_INDEXES 
    ORDER BY INDEX_OWNER, INDEX_NAME, INDEX_TYPE, TABLE_OWNER, TABLE_NAME, TABLE_TYPE;
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    décembre 2004
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 025
    Points : 3 102
    Points
    3 102
    Par défaut
    Bonjour,

    Merci de ta réponse.
    Citation Envoyé par Ikebukuro Voir le message
    Compliqué ton truc car utiliser des Nested Tables, c'est rare, vraiment rare...
    J'ai l'impression effectivement. Il y en a peu, mais je ne peux pas y toucher / modifier la logique la dessus. Cela a été utile a un moment, mais "maintenir" ces trucs n'est pas pratique par moment.
    Si tu en sais plus sur les risques / contre-parties à utiliser ce genre de truc, je suis preneur.


    Citation Envoyé par Ikebukuro Voir le message
    Petite question : ta base 12 est en mode CDB ou non?
    Que renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT cdb FROM v$database;
    Elle renvoie "NO".


    Citation Envoyé par Ikebukuro Voir le message
    Que renvoie l'ordre SQL suivant sur la base source puis sur la nouvelle base en étant connecté avec le user qui a créé les tables?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT INDEX_OWNER, INDEX_NAME, INDEX_TYPE, TABLE_OWNER, TABLE_NAME, TABLE_TYPE, UNIQUENESS, STATUS 
    FROM ALL_INDEXES 
    ORDER BY INDEX_OWNER, INDEX_NAME, INDEX_TYPE, TABLE_OWNER, TABLE_NAME, TABLE_TYPE;
    Punaise! Si je filtre sur le bon owner, j'ai le même nombre de résultat sur la base source que sur la nouvelle. Pourquoi cette différence entre ALL_INDEXES et USER_INDEXES?

    Je regarde les index SYS*** en "surplus" dans USER_INDEXES, je vois qu'ils sont tous de type LOB. En cherchant sur ces index SYS*** / LOB, je suis tombé sur un vieux truc (2001) chez Ask Tom qui dit:
    A LOB is simply a pointer. It points to an index. the index points to the chunks that make up the LOB.
    Hence when you create a LOB, you will always get a lob index created (to find the chunks for the lob fast) and a segment that holds the lob data (chunks).
    Donc, peut être que je confonds des pommes avec des poires, mais j'aurais alors tendance a penser que les index SYS*** / LOB que je vois - et qui me perturbent tant - ne sont que des index créés en interne par Oracle pour sa cuisine interne et "to find the chunks for the lob fast" comme dit chez Ask Tom. Donc en réalité, aucun problème.
    Bon, truc bizarre tout de même, les tables en référence sur ces index n'ont pas a proprement parler de LOB (pas de CLOB ou autres, rien que du varchar2 ou du number, 1 million de lignes environ sur ces tables).
    Donc en réalité, je n'aurais pas de problème, et me serait inquiété pour rien (?) ... (ce que je préfèrere)


    Merci d'avance,
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

Discussions similaires

  1. [XCode] Code exemple ne fonctionne plus apres importation
    Par LioFo33 dans le forum XCode
    Réponses: 2
    Dernier message: 28/07/2010, 00h25
  2. Réponses: 5
    Dernier message: 16/12/2004, 23h31
  3. Réponses: 6
    Dernier message: 25/11/2004, 15h16
  4. blocage base après importation d'un module
    Par voodoo dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2004, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo