Dump oracle

De Avided.info
Sauter à la navigation Sauter à la recherche

DATADUMP

Définition

Le datapump est l'utilitaire qui permet d'effectuer des export et des imports sous Oracle depuis la 10g.
Il n'est pas capable d'importer un dump réalise avec exp.

Mise en place du répertoire de dump

Pour utiliser datapump, il est nécessaire d'indiquer en base quel est le répertoire qui contient les exports/imports. Il n'est pas possible d'indiquer le chemin absolu/relatif dans le nom du fichier dump.

Lister les répertoires de dump

set linesize 250
col directory_path format a40
SELECT * FROM DBA_DIRECTORIES;

Résultat

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH
------------------------------ ------------------------------ ----------------------------------------
SYS                            DUMPDIR                        /exportbase
SYS                            DATA_PUMP_DIR                  /oracle/ora_10.2.0/rdbms/log/
SYS                            ORACLE_OCM_CONFIG_DIR          /oracle/ora_10.2.0/ccr/state
SYS                            DATAPUMP                       /sauvebase

Ajouter un répertoire de dump

CREATE DIRECTORY <DIRECTORY_NAME> AS '/sauvebase/<SID>';


Donner les droits en lecture/ecriture sur le répertoire de dump

Si l'export/import est effectué avec un utilisateur autre que sysdba, il est nécessaire de lui donner les droits d'accès au répertoire, pour cela, exécuter la commande suivante :

grant read,write on directory DIRECTORY_NAME to user1[, user2][, user3]...;

Export des données

Pour information, il est possible d'effectuer les exports avec sysdba, pour cela, remplacer le couple schéma/password par \'/ as sysdba\'
Il est également possible de créer plusieurs jobs en parallèle pour améliorer les performances en ajoutant l'option PARALLEL=2
Pour connaitre toutes les options possible avec expdp, taper la commande suivante :

expdp help=y

Paramètre essentiel à tout export

Pour réaliser un export datapump, Oracle a besoin d'allouer de la mémoire vive. Cette allocation est définie par le paramètre streams_pool_size présent dans le fichier spfile.ora de la base. Si ce paramètre n'est pas défini dans le spfile, Oracle alloue automatiquement 10% de la RAM totale. S'il est présent alors la valeur doit être différente de 0 pour qu'un export soit possible. Un stream_pool_size de quelques Mo est suffisant (ex: 92 Mo)


Estimer la taille de l'export

expdp system/<password> FULL=y DIRECTORY=DIRECTORY_NAME LOGFILE=<fichier.log> ESTIMATE_ONLY=true

Export Full

expdp \'/ as sysdba\' DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> FULL=y LOGFILE=<fichier.log>

Tout comme pour la variable DUMPFILE, la variable LOGFILE doit contenir uniquement le nom du fichier de log, sans chemin absolu/relatif, celui-ci sera créé dans le même répertoire que le dump

Export Schéma

expdp system/<password> DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> SCHEMAS=schema1[,schema2]... LOGFILE=<fichier.log>

Export Table

expdp system/<password> DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> TABLE=table1[,table2]... LOGFILE=<fichier.log>

Export Structure

expdp system/<password> full=Y content=METADATA_ONLY IRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> LOGFILE=<fichier.log>

Import des données

Tout comme avec l'outils imp, il est nécessaire de supprimer les schéma avant d'effectuer l'import Modèle:RougeG
Pour information, il est possible d'effectuer les imports avec sysdba, pour cela, remplacer le couple schéma/password par \'/ as sysdba\'
Il est également possible de créer plusieurs jobs en parallèle pour améliorer les performances en ajoutant l'option PARALLEL=2
Pour connaitre toutes les options possible avec impdp, taper la commande suivante :

impdp help=y

Import Full

impdp system/<password> DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> FULL=y LOGFILE=<fichier.log>

Tout comme pour la variable DUMPFILE, la variable LOGFILE doit contenir uniquement le nom du fichier de log, sans chemin absolu/relatif, celui-ci sera créé dans le même répertoire que le dump

Import Schéma

impdp system/<password> DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> SCHEMAS=schema1[,schema2]... LOGFILE=<fichier.log>

Import Table

impdp system/<password> DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> TABLE=table1[,table2]... LOGFILE=<fichier.log>

Import Structure

impdp system/<password> full=Y content=METADATA_ONLY DIRECTORY=DIRECTORY_NAME DUMPFILE=<fichier.dmp> LOGFILE=<fichier.log>