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

Administration Oracle Discussion :

Copier une BDD d'une machine à une autre


Sujet :

Administration Oracle

  1. #1
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut Copier une BDD d'une machine à une autre
    Bonjour,

    Voilà je vais avoir besoin une fois de plus de vos lumières

    J'ai une base A dont je veux copier un tablespace sur une base B une fois par jours. Oracle 10g\windows pour la base A oracle XE\Windows pour la base B.

    Le volume de données est d'environ 700 Mo et je n'ai que des tables et leurs data à copier.

    J'avais commencé avec un dblink et un système de create table as select * mais je suis embêté par un champ long. J'ai ensuite étudié la solution du imp/exp mais c'est assez long... je suis pas passé par un transportable tablespace mais par une énumération classique des tables (incidence sur les perf ?).

    Quelle approche est conseillée pour ce type de situation ?


  2. #2
    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
    La fonctionnalité de transport des tablespaces ne fait pas partie de XE.
    La méthode la plus rapide est sans doute l'export/import par Data Pump (exécutables expdp/impdp) qui est en général plus rapide que exp/imp.

  3. #3
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    ok, mais comment bien synchroniser l'export et l'import, en gros attendre que l'export soit fini avant de lancer l'import sachant que je vais faire ça en pl/sql.

    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    c'est quoi le pb avec le DB link ?

  5. #5
    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
    Citation Envoyé par neo.51 Voir le message
    ok, mais comment bien synchroniser l'export et l'import, en gros attendre que l'export soit fini avant de lancer l'import sachant que je vais faire ça en pl/sql.

    merci
    ll suffit de lancer l'export et l'import de façon séquentielle et non en parallèle depuis une machine unique: ce qui nécessite de pouvoir accéder via Oracle Net aux 2 bases depuis 1 des 2 machines.

    Je recommande d'abord de faire ceci avec un script shell ou .bat avant d'essayer de le faire en PL/SQL avec l'API Data Pump.

  6. #6
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Bon, en fait j'ai éssayé en passant par un dblink :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      handle := dbms_datapump.open (
        operation =>    'IMPORT',
        job_mode =>     'SCHEMA',
        remote_link =>  databaseLink);
    mais j'ai 2-3 tables avec des champs LONG. Je sais que c'est plus supporté par oracle mais j'ai pas le choix...

    donc le mieux serait de faire un .bat pour export en séquentiel ?

    ça me fou un peu la trouille niveau perf, enfin je vais voir ça

  7. #7
    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
    Je pense simplement qu'il est plus facile d'utiliser expdp/impdp que d'écrire du code PL/SQL car un DBA utilise généralement d'abord des scripts avant de coder en PL/SQL.

    Le type LONG est toujours supporté par Oracle mais il est vrai qu'Oracle déconseille fortement de l'utiliser car il a beaucoup de limitations que n'a pas le type CLOB.

    En ce qui concerne les performances, je ne sais pas si expdp/impdp est plus rapide en PL/SQL qu'en mode ligne de commande mais en général expdp/impdp est beaucoup plus rapide que exp/imp ( c'est surtout impdp qui est plus rapide que imp). Avec 700 Mo à transférer, cela doit se compter en minutes et non en heures sur une machine récente.

Discussions similaires

  1. [VBA E-03] Novice, filtrer une BDD et afficher dans une Listview.
    Par fadan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/01/2009, 10h30
  2. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 16h26
  3. [MySQL] Afficher le contenu d'une BDD et retirer l'une des tables
    Par piranha2209 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/12/2007, 17h22
  4. ouvrir une bdd access reseau depuis une autre
    Par docjo dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/12/2007, 15h03
  5. réplication d'un BDD sql server dans une BDD mysql
    Par bene86 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/08/2007, 11h09

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