Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Importer une base de données avec Data Pump

Par Mathias PAUL Publié le 31/10/2015 à 14:36:58 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

L’utilitaire Data Pump permet d’effectuer des exports et des imports de données et métadonnées sous Oracle. N’étant présent que récemment sur les bases de données Oracle, plus précisément depuis la version 10g, le Data Pump à pour vocation de remplacer les anciens utilitaires EXP et IMP. Bien que incompatible avec les versions d’Oracle antérieures à la 10g, l’utilitaire Data Pump présente de nombreux avantages. Selon Oracle cette nouvelle fonctionnalité serait capable d’être deux fois plus rapide qu’un export classique alors que l’import verrait sa vitesse d’exécution multipliée par 15, voir même 45. Au delà des arguments avancés par Oracle liés à une vitesse du traitement considérablement plus rapide, l’utilitaire Data Pump offre de nouvelles possibilités en ce qui concerne l’export et l’import de données et métadonnées. Le parallélisme est notamment prit en compte désormais. Le travail sur des tables externes est une nouveauté, de plus il est possible d’indiquer plusieurs répertoires de destination pour un Data Pump. La grande nouveauté de cet utilitaire réside aussi dans le fait qu’il est possible d’inclure certains objets lors du transfert mais aussi d’en exclure. Oracle ajoute le Network Import et le Network Export ce qui permet de faire le lien directement entre deux instances. Autre ajout qui ravira les utilisateurs malchanceux, le Data Pump se voit doté d’une fonction évitant la perte de données lors de l’interruption volontaire ou inopinée d’un transfert.

L’utilitaire Oracle Data Pump est donc un moyen plus rapide, plus complet et plus fiable dans le transfert de données. Cependant son utilisation nécessite tout de même de connaitre l’environnement Oracle ainsi que son architecture.

Pour l’exemple qui va suivre nous allons procéder à un import de données présentes dans un fichier Data Pump (.dmp) sur une base Oracle 11g. Cet import s’effectuera à partir du terminal de commandes d’un Windows XP 32-bits et comprend notamment quelques lignes de SQL. Le but étant d’expérimenter le transférer du schéma «sivo» sur une base de données locale. L’utilisateur utilisé sera le user «system» de la base de données dans les manipulations qui vont suivre.

I- PREPARATION DE LA BASE DE DONNEES

Le transfert à l’aide de Data Pump nécessite de préparer sa base à la réception des données. Pour cela nous allons devoir la configurer.

Qu’il s’agisse ou non d’un premier Data Pump sur votre base il est important de créer un nouveau dossier apte à recevoir les données contenues dans votre fichier à importer (.dmp). Pour cela la manipulation est la suivante. Connectez vous depuis l’invite de commande Windows à la console SQLPlus.

Commande :

C:\> sqlplus user/password@SID

Comme nous l’avons vu précédemment nous utilisons le user «system» dans cet exemple, de ce fait nous nous connectons ici avec le user «sys» et ajoutons as sysdba après le SID afin d’être connecté en database administrator.

SQL> CREATE DIRECTORY dpump_dir1 AS ‘c:\'

Nous créons ici le dossier dpump_dir1 et nous le plaçons sur le disque C:\, disque sur lequel notre base est implantée.

Don des droits :

SQL>GRANT READ, WRITE ON DIRECTORY dpump_dir1 TO system

Le user de notre choix à désormais le droit de lire et d’écrire sur ce dossier. Nous avons choisis le user «system».

Ou :

SQL>GRANT ALL ON DIRECTORY dpump_dir1 TO public

Ici nous autorisons tout user à effectuer une action sur le répertoire dpump_dir1, de ce fait il n’existe aucun conflit de droit lors du Data Pump. Notons aussi qu’il est possible d’attribuer l’étendue des droits possibles (ALL) à un user spécifique.

SQL>exit

Permet de sortir de la console SQLPlus.

II- CREATION DES TABLESPACES

Le tablespace peut être définit comme étant un espace de stockage physique dans lequel sont stockées les données de la base. Les tablespaces ne sont pas exportés lors du datapump, de ce fait il est important de les créer pour que les données importées trouvent leur lieu de stockage. Si vous avez connaissance des tablespaces de la base d’origine (la base dont provient le fichier d’export datapump). Dans le cas contraire il faudra en premier lieu faire une tentative d’import Data Pump et rechercher dans les messages d’erreurs les tablespace manquants.

La création d’un tablespace nécessite d’utiliser à nouveau la console SQLPlus vue précédemment.

La commande afin de créer un tablespace est la suivante :

SQL> CREATE TABLESPACE nom_tablespace DATAFILE ‘nom.dbf ‘ SIZE xxM + arguments

Ici nous créons un tablespace en précisant son nom. Le datafile est le fichier dans lequel est contenue le tablespace, il se crée automatiquement lors de la création du tablespace, il nous suffit juste de le nommer. Nous devons ensuite définir une taille. La taille est généralement définie en mégaoctets lorsqu’il s’agit d’un tablespace, notée M. Parmi la liste des arguments disponibles à la création d’un tablespace, l’AUTOEXTEND ON peut être bien pratique. Cet argument permet d’agrandir automatiquement la taille du tablespace en fonction de ses besoins. Mais il faut tout de même respecter la taille disponible dur l’espace disque.

En cas d’oublie de l’argument AUTOEXTEND il est toujours possible de l’ajouter par la suite :

SQL>ALTER DATABASE DATAFILE ‘nom.dbf’ AUTOEXTEND ON

Ou de le désactiver :

SQL>ALTER DATABASE DATAFILE ‘nom.dbf’ AUTOEXTEND OFF

III- LANCEMENT DE L’IMPORT DATA PUMP

Notre base de données est fin prête à recevoir les données du fichier Data Pump (.dmp). Il suffit pour cela d’accéder à l’invite de commandes Windows. La commande de l’import Data Pump est caractérisée par IMPDP.

Commande de l’import Data Pump :

C:\> impdp user/password@SID DIRECTORY=directory_name DUMPFILE=file.dmp LOGFILE

De nombreux arguments peuvent être utilisés lors de l’import. Il est possible d’importer en plus des schémas toute la base avec l’argument FULL=Y ou des tables avec Tables=table_name. La liste complète est disponible sur la documentation accessible en ligne d’Oracle.

Il est possible que ne nombreuses erreurs se génèrent lors de l’import et ce dernier ne peut aboutir. Les erreurs les plus courantes sont les suivantes :

ORA-39002: invalid operation

ORA-39070: unable to open the log file

ORA-29283: invalid file operation

ORA-06512: at "SYS.UTL_FILE", line 536

ORA-29283: invalid file operation

Cela est souvent due au fait que le directory de Data Pump est mal configuré ou que le logfile est incorrect.

D’autres erreurs peuvent intervenir malgré un import réussit. Cela est notamment le cas lorsque les tablespaces ne sont pas présentes sur la base qui va réceptionner les données. Il est possible de consulter les tablespaces présentes sur la base grâce à Enterprise Manager dans l’onglet Serveur/Stockage/Tablespaces ou via la commande SQLPlus(SQL>select tablespace_name from dba_data_files). Si des tablespaces sont dites manquantes par l’invite de commandes Windows il faut alors les crées comme indiqué dans la partie II. De plus des objets peuvent être mal compilés. Cela entraine automatiquement une alerte sur Enterprise Manager qui permet de les recompiler.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels