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 :

Data Pump export import en mode database


Sujet :

Import/Export Oracle

  1. #1
    Membre averti
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    avril 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : avril 2015
    Messages : 217
    Points : 346
    Points
    346
    Par défaut Data Pump export import en mode database
    j'ai éffectué un export datapump d'une base en mode=full, et j'ai des
    difficultés de faire un import vers une seconde base vide (créé avec le DBCA)
    en mode full aussi, alors j'ai réussi à éxécuter un import d'un schema à
    partir du fichier export de la base source comme ceux-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    impdp  system/system@nom_de_la_base  dumpfile=exp_full.dmp full=y remap_tablespace=tbs1:tbs2
    sachant que le tbs1 est un tablespace du schema de la base source
    et le tbs2 est un tablespace créé avant l'import, sur la base vide .
    et ça fonctionne !

    Je souhaiterai savoir LES ETAPES nécéssaires pour éffectuer un import datapump en mode full
    sur la base vide avec les parametres de l'import, afin d'avoir tous les tablespaces applicatifs
    et leurs schemas dans la base VIDE ????

    Merci d'avance .

  2. #2
    Membre expérimenté
    Homme Profil pro
    DBA Oracle
    Inscrit en
    avril 2013
    Messages
    1 259
    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 259
    Points : 1 443
    Points
    1 443
    Par défaut
    Salut,

    J'avais travaillé sur le package PL/SQL DATAPUMP il y a quelques années et voici ce que j'avais fait pour exporter/importer une base de données. En espérant que cela puisse t'aider.


    Export-Import d'une base de données entière vers une autre base

    -----------------------------------------------------------------
    Les bases de test
    Les objets suivants sont dans la base maitre et appartiennent au schéma user01, ils sont absents de la base cible avant l'export/import :
    • trois tables : DEPT, EMP, EVT.

    Dans la base cible doivent être définis :
    • l'objet directory utilisé pour l'export DIRPUMP sur '/u01/app/oracle/oradata/DIRPUMP'
    • un user avec les droits
    • de connexion
    • Read/Write sur le directory
    • IMP_FULL_DATABASE pour faire l'import


    Script d'export d'une base entière
    A la différence du script d'export d'un schéma, il faut utiliser le mot clé "FULL" dans la procédure OPEN et ne pas utiliser la procédure DBMS_DATAPUMP.METADATA_FILTER.

    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
    22
    23
    /* Programme PLSQL utilisant DBMS_DATAPUMP pour exporter une base entiere vers une autre. */
    set serveroutput on
     
    DECLARE
      v_n_h1 NUMBER;               -- Data Pump job handle
      v_v_status VARCHAR2(20);
     
    BEGIN
    -- Creation d'un job Datapump pour exporter une base. Le handle (nombre) renvoye par la fonction OPEN est stocke dans une variable.
      v_n_h1 := DBMS_DATAPUMP.OPEN('EXPORT','FULL');
     
    -- Creation d'un fichier dump file, utilisant le handle cree precedemment ainsi que le directory cree sous SQL*Plus.
      DBMS_DATAPUMP.ADD_FILE(v_n_h1,'deptpump_base.dmp','DIRPUMP');
     
    -- Lancement du job. Une exception sera generee en cas d'erreur.
      DBMS_DATAPUMP.START_JOB(v_n_h1);
      DBMS_DATAPUMP.WAIT_FOR_JOB (v_n_h1, v_v_status);
     
    -- Indicate that the job finished and detach from it.
      DBMS_OUTPUT.PUT_LINE('Job has completed with status : ' || v_v_status);
      DBMS_DATAPUMP.DETACH(v_n_h1);
    END;
    /
    Lancement du script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> @SQL_PUMP_EXP_DATABASE
    Job has completed with status : COMPLETED
    Export : vérification que le fichier a été généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bash-3.2$ ls -l DIRPUMP/
    -rw-r-----   1 oracle   oinstall 87801856 Jan 20 20:21 deptpump_base.dmp
    Script d'import.
    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
    22
    23
    24
    /* Script d'import d'une base de donnees dans une base cible. */
    set serveroutput on;
     
    DECLARE
      v_n_h1 NUMBER;               -- Data Pump job handle
      v_v_status VARCHAR2(20);
     
    BEGIN
    -- Creation du job d'import.
            v_n_h1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL');
     
    -- Parametres disant quel est le fichier d'import a utiliser et ou il se trouve sur le serveur Unix : r?utilisation des parametres du script d'export.
            DBMS_DATAPUMP.ADD_FILE(v_n_h1,'deptpump_base.dmp','DIRPUMP');
     
    -- Lancement du job.
            DBMS_DATAPUMP.START_JOB(v_n_h1);
            DBMS_DATAPUMP.WAIT_FOR_JOB (v_n_h1, v_v_status);
     
    -- On indique que le job est termine et quel est son etat. On detache le handle du job.
      dbms_output.put_line('Job has completed');
      dbms_output.put_line('Final job state = ' || v_v_status);
      dbms_datapump.detach(v_n_h1);
    END;
    /
    Import du fichier d'export dans la nouvelle base de données
    Se connecter comme user01 dans la base cible pour lancer le script d'import.
    Dans le cas où l'import sous user01 serait trop long mais qu'aucun message d'erreur ne s'affiche, faire "Ctrl C" et relancer l'import mais, cette fois, en tant que SYS pour valider le script d'import.
    Il se peut qu'un import d'une base de données ne puisse pas se lancer à partir d'un user différent de SYS : le script semble boucler, sans rendre la main, même après 15 minutes.

    Vérifier que le user a bien le privilege IMP_FULL_DATABASE, sinon le lui donner via le user SYS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> show user;
    	USER is "USER01"
    	SQL> select * from role_sys_privs;
    	ROLE                           PRIVILEGE                                ADM
    	------------------------------ ---------------------------------------- ---
    	IMP_FULL_DATABASE              BECOME USER                              NO
    	...
    Lancement du script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	SQL> @SQL_PUMP_IMP_DATABASE
    	Job has completed
    	Final job state = COMPLETED
    	PL/SQL procedure successfully completed.
    Vérification que les objets de la base maitre ont été créées dans la base cible sous le schéma user01.
    Se connecter comme user01.

    Import des tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> select table_name, owner, status from all_tables where table_name = 'EMP' or table_name = 'DEPT' or table_name = 'EVT'
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre averti
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    avril 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : avril 2015
    Messages : 217
    Points : 346
    Points
    346
    Par défaut Data Pump export import en mode database
    Merci pour ta solution .

Discussions similaires

  1. Export avec Data pump via un dblink
    Par chris0938 dans le forum Oracle
    Réponses: 0
    Dernier message: 17/12/2010, 16h01
  2. erreur import Data Pump
    Par Z3phur dans le forum Import/Export
    Réponses: 3
    Dernier message: 21/01/2009, 15h26
  3. [Export-import] Comment faire ?
    Par phil_ma dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/02/2005, 19h15
  4. Export / Imports de Bases
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/07/2003, 15h18
  5. Export/import des logins et pwd
    Par Colargole dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 17/07/2003, 17h07

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