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

Oracle Discussion :

"Copie" d'une base


Sujet :

Oracle

  1. #1
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 184
    Points : 136
    Points
    136
    Par défaut "Copie" d'une base
    Bonjour,

    je travaille sous w2k avec oracle 8.1.7.4.1 (donc 8i je crois?) et je suis quasi néophyte sous oracle...

    J'ai une base A dont j'ai fait un export full.

    J'ai créé une base B (création de l'instance et de la base mais je n'ai absolument rien crée dans la base).

    Je veux faire un import full du dump de la base A dans cette base B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     imp user/pwd@ibase full=y ignore=n raws=y indexes=y file=(f1,f2,..)
    et j'obtiens le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IMP-00003 : erreur oracle 942 rencontrée
    ORA-00942 : Table ou vue inexistante
    IMP-00023 : Vue d'import non installée, veuillez en informer votre DBA
    IMP-00000 : procedure d'import terminée avec erreur
    or, j'avais cru comprendre que, puisque j'avais fait un export full de la base A, tout serait recréé à l'identique dans la base B.

    J'ai mal compris ou bien je m'y prends mal?

    je précise que j'ai fait quelques recherches sur le site avant de poster ce message.

    merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pourquoi ne pas faire une copie des fichiers simplement ?

  3. #3
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 184
    Points : 136
    Points
    136
    Par défaut
    En fait je mene un test.

    la base A est une ancienne base sur laquelle un DBA avait réalisé des travaux d'optimisation.
    Mais cette base a été remplacée par une nouvelle créée avec le script original de la base, donc adieu les optimisation.

    Alors j'essaie de voir si je peux récupérer la structure optimisée de la base A pour ensuit y importer les données de la nouvelle base qui elle n'est plus optimisée.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Peut être que l'erreur sera éliminée en laçant sous le user SYS le script suivant :

    $ORACLE_HOME/rdbms/admin/catexp.sql

    (Se positionner dans le $ORACLE_HOME du serveur sur lequel est la base destination)

  5. #5
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 184
    Points : 136
    Points
    136
    Par défaut
    J'ai executé le script.

    Il ya eu quelques erreur mais j'ai ensuite pu effectuer l'import. Par contre, j'ai eu un nombre incalculable d'erreurs.

    A y bien regarder, je viens de m'apercevoir que je n'ai aucun fichier dbf là où je pensais avoir céer ma base.

    J'ai dû faire une erreur à la base (sans jeu de mots). Je vais tout reprendre depuis le début.

    merci de votre aide.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Pour que ton import marche correctement, il faut que tu vérifies que les tablespaces de ton instance source existent dans ton instance destination ...

    Requête de Vérification à lancer sur les 2 instances (sous le compte system ou sys) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select tablespace_name from dba_tablespaces ;
    Si tu constates qu'il manque des TBS côté instance destination, le mieux est de les créer à la main en choisissant toi même le chemin des datafiles.

    En conclusion :

    Une table est toujours créée dans un USER (USER = schéma), un USER à toujours un tablespace par défaut.

    Si le TBS n'existe pas, le user ne pourra pas être importé, en conséquence les tables ne pourrons pas être importées non plus... d'où tes erreurs ..


    Bref, si tu comptes relancer ton import après avoir réglé ton probable pb de TBS, il faudra peut être aussi dropper les éventuels USER qui ont été importés lors de ton 1 er import raté ....

  7. #7
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Je suis moi aussi en train de tester les import/export FULL et je suis à la recherche d'un moyen pour automatiser la création des tablespaces (avec la bonne taille) dans la base cible. Pour l'instant, j'en suis a batir une requete infernal (j'ose meme pas la montrer ) sur dba_data_files, dba_free_space,dba_tablespace et dba_segments.

    Y a peut etre plus simple ? J'ai vu que ces informations sont dans le fichier d'export. N'existe-t-il pas un utilitaire pour les extraires facilement ?

    Merci,

    PS pour les courageux voici la chose ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    SELECT
      'CREATE TABLESPACE '|| a.tablespace_name || ' DATAFILE ''c:\oracle\oradata\TEST6\' || a.tablespace_name || '01.DBF'' SIZE ' ||
      (CEIL(((a.bytes-b.bytes) / 1024 / 1024) / 10 )) * 10 || 'M AUTOEXTEND ON NEXT '|| (CEIL(((a.bytes-b.bytes) / 1024 / 1024) / 10 )) * 10 || 'M'
    FROM
      ( SELECT tablespace_name,
               sum(bytes) bytes
          FROM dba_data_files 
      GROUP BY tablespace_name) a,
      ( SELECT tablespace_name,
               sum(bytes) bytes
          FROM dba_free_space
      GROUP BY tablespace_name) b
    WHERE  a.tablespace_name=b.tablespace_name     
      AND  a.tablespace_name in (SELECT    tablespace_name
                                   FROM    dba_tablespaces
                                  WHERE    contents = 'PERMANENT'
                                    AND    tablespace_name in ( SELECT  DISTINCT tablespace_name
                                                                           FROM     dba_segments
                                                                          WHERE     segment_type != 'ROLLBACK'
                                                                            AND     tablespace_name != 'SYSTEM')

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    DBMS_METADATA.GET_DDL doit pouvoir remonter le code des tablespaces

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Quelles sont ces optimisations , ils sont certainement reproductibles sous ton nouvel environnement

Discussions similaires

  1. [Toutes versions] Copie objet d'une base externe vers une autre base externe
    Par guen dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/10/2009, 10h35
  2. Copie Méthode d'une Base à l'autre
    Par mxh77 dans le forum 4D
    Réponses: 2
    Dernier message: 26/04/2008, 11h57

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