IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Oracle 9i : commande IMPORT


Sujet :

Import/Export Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Points : 17
    Points
    17
    Par défaut [RESOLU] Oracle 9i : commande IMPORT
    Bonjour,

    Après avoir créé 2 tablespaces TB1_DATA et TB1_INDEX et un schéma :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE USER "TEST"  PROFILE "DEFAULT" 
        IDENTIFIED BY "test" DEFAULT TABLESPACE "TB1_DATA" 
        ACCOUNT UNLOCK;
    GRANT "CONNECT" TO "TEST";
    GRANT "RESOURCE" TO "TEST";
    J'ai tenté de réaliser un import dans ce nouveau schéma avec cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IMP test/test FILE=export.dmp INDEXFILE=/data/MONINSTANCE/u01/system/TB1_INDEX.db
    Il met ça :

    Import: Release 9.2.0.7.0 - Production on Ma Mar 13 14:13:14 2007

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


    IMP-00058: Erreur ORACLE 12162 rencontrée
    ORA-12162: TNS : nom de service incorrect
    IMP-00000: Procédure d'import terminée avec erreur

    Où ai-je râté un épisode ? Merci pour votre aide

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    ajoute @SID dans ta commande import

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    tu fais set Oracle_sid=sid
    ensuite tu relances imp

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup !!!
    Pourtant je pensais avoir écrit auparavant : ORACLE_SID=MONINSTANCE

    Donc la commande marche mais j'obtiens cela :

    Import: Release 9.2.0.7.0 - Production on Ma Mar 13 14:46:17 2007

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


    Connecté à : Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
    JServer Release 9.2.0.7.0 - Production

    Fichier d'export créé par EXPORT:V09.02.00 via le chemin classique
    import effectué dans le jeu de caractères WE8ISO8859P1 et le jeu NCHAR AL16UTF16
    le serveur d'import utilise le jeu de caractères WE8ISO8859P15 (conversion possible)
    . . Table "A_LU" ignorée

    . . Table "AVOCAT" ignorée

    . . Table "CLIENT" ignorée

    . . Table "EMAIL_DIFFERE" ignorée

    . . Table "EST_PATIENT" ignorée

    . . Table "ETAT" ignorée

    . . Table "MEDECIN_CONSEIL" ignorée

    . . Table "MESSAGE" ignorée

    . . Table "PATIENT" ignorée

    . . Table "PIECE_JOINTE" ignorée

    . . Table "PLAN_TABLE" ignorée

    . . Table "PROCEDURE" ignorée

    . . Table "SINISTRE" ignorée

    . . Table "STATISTIQUE" ignorée

    . . Table "TYPE_ETAT" ignorée

    . . Table "TYPE_PROCEDURE" ignorée

    . . Table "UTILISATEUR" ignorée

    Procédure d'import terminée avec succès.
    Du coup, rien n'est importé Est-ce à cause de la spécification du tablespace index que je veux mettre ailleurs que dans le tb1_data ?

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 121
    Points
    121
    Par défaut
    Peux tu vérifier le parametre IGNORE ?
    Peux tu vérifier que les objets a créer ne sont pas deja existant ?

    Peux tu nous montrer le fichier de log de l'import et le fichier d'alerte de la base ?

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Verifie que ton schema ne comporte pas deja les objects que tu veux importer.

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Les objets ne sont pas existants car je viens de créer le schéma avec le CREATE USER juste avant.
    Quant au fichier de log résultant de la commande "Imp" que je retranscris ici :
    IMP test/test FILE=export.dmp INDEXFILE=/DATA/MONINSTANCE/u01/system/TB1_INDEX.db LOG=import.log;
    me donne le même résultat que sur l'écran à savoir plein de tables ignorées.

    N'étant pas très calée sous Oracle , pourriez-vous me dire comment voir le paramètre IGNORE ? Où pourrais-je trouver le fichier d'alerte de la base ?

    merci beaucoup.

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 121
    Points
    121
    Par défaut
    Tu peux consulter les parametres de la commande IMP via :

    Pour vérifier que les objets n'existent pas deja (en sqlplus), avec le compte SYSTEM, en espérant que tu as accès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT table_name from DBA_TABLES where OWNER = 'TEST';
    Si cette requete te retourne des valeurs, c'est que les objets existent deja.

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Pourquoi utilisez-vous le paramètre INDEXFILE ? S'il est spécifié, il sert à extraire le DDL du fichier import et non à créer des objets dans la base d'après la doc. de référence

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 227
    Points : 161
    Points
    161
    Par défaut
    bonjour;
    J'ai pas compris pourquoi tu veux lancer l'import avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INDEXFILE==/DATA/MONINSTANCE/u01/system/TB1_INDEX.db
    pourquoi ne pas importer sans ce paramètre puis faire un move des indexes ou des tables du tablespace dans lequel ils sont vers le tablespace que tu veux.

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Pour l'aide sur la commande Import, je l'ai faite et c'est comme ça que j'ai vu l'instruction INDEXFILE qui me permet de spécifier l'emplacement des index.

    En fait, ce que j'aimerais faire est que mon Imp se fasse dans un schéma que j'ai nouvellement créé. Ce schéma est attaché à un tablespace TB1_DATA. Par défaut, il met les index dans ce tablespace. Or, je souhaite que les index soient stockés dans le tablespace TB1_INDEX que j'ai préalablement créé.

    J'ai vérifié si une table existe :
    [root@PRODDB root]# su - oracle
    [oracle@PRODDB oracle]$ ORACLE_SID=MONINSTANCE
    [oracle@PRODDB oracle]$ sqlplus /nolog

    SQL*Plus: Release 9.2.0.7.0 - Production on Me Mar 14 14:40:58 2007

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

    SQL> connect system/dba as sysdba
    Connecté.
    SQL> SELECT * FROM avocat WHERE OWNER = 'test';
    SELECT * FROM avocat WHERE OWNER = 'test'
    *
    ERREUR à la ligne 1 :
    ORA-00942: Table ou vue inexistante


    SQL>
    SQL>
    SQL> show tables;
    SP2-0158: option SHOW inconnue "tables"

    SQL> select * from V_TABLES;

    SQL>
    Apparemment je n'ai rien dans le schéma.

    Je vais lancer la commande Import sans l'option INDEXFILE (comme le suggère elharet) et faire le déplacement par la suite avec un ALTER je suppose ?

    Merci beaucoup.

  12. #12
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Oui, vous pouvez déplacer les index dans une autre tablespace avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER INDEX <inom de l'index> REBUILD TABLESPACE  <nom du tablespace>;
    Pour vérifier si une table existe, il faut utiliser DBA_TABLES et écrire en général le nom du propriétaire en majuscules:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select table_name from dba_tables where owner='TEST';

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 227
    Points : 161
    Points
    161
    Par défaut
    si tu veux que tous les indexes de ton schema 'TEST' soient dans le tablespace TB1_INDEX sachant qu'aprés l'import ils sont dans le tablespace TB1_DATA, il faut lancer le script suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    BEGIN
       FOR i IN (SELECT    'alter index '
                        || owner
                        || '.'
                        || index_name
                        || ' REBUILD TABLESPACE TB1_INDEX' stmt
                   FROM dba_indexes
                  WHERE owner='TEST')
       LOOP
             EXECUTE IMMEDIATE i.stmt;
       END LOOP;
    END;
    /
    sans que tu rebuild tous les indexes un par un.

  14. #14
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    ça fonctionne correctement avec un Import normal et un alter index.

    Merci beaucoup pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dump exporté en oracle 10g express importé en 10g entreprise
    Par tresdouda dans le forum Administration
    Réponses: 7
    Dernier message: 03/04/2009, 11h53
  2. Oracle 9i : Comment importer ma base de données vers un autre ordinateur
    Par sofiane_bfm007 dans le forum Import/Export
    Réponses: 2
    Dernier message: 13/05/2008, 10h03
  3. Oracle 9.2 : Importation et champ date NULL
    Par mimil77210 dans le forum Oracle
    Réponses: 16
    Dernier message: 17/04/2008, 15h25
  4. export oracle v7 unix import oracle9i windows
    Par nine dans le forum Import/Export
    Réponses: 15
    Dernier message: 12/12/2007, 15h37
  5. [ORACLE 9.2i] Importance du type d'analyze
    Par pholos dans le forum Administration
    Réponses: 5
    Dernier message: 14/09/2007, 14h05

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