Datapump est le nouvel outil fournit par Oracle depuis la 10g pour réaliser vos import / export de données de vos bases.
Pour une utilisation classique de Datapump, je vous conseille l’article de mon collègue Guireg Capitaine qui répondra parfaitement à vos attentes.
Ici nous apprendrons à réaliser des exports / imports à la volée directement via le réseau en utilisant un DB Link (Database Link).
Avantages et inconvénients
Lorsque l’on parle d’import/export Datapump via un DB Link, on parle en fait de la seule étape du processus : l’import. En effet, en utilisant cette méthode vous n’aurez plus besoin de faire dans un premier temps l’export, puis de déplacer votre dump sur le deuxième serveur, et enfin faire votre import. Toutes les étapes se font en une seule comme vous le découvrirez un peu plus loin.
Passer par le réseau vous dispense donc de créer des objets DIRECTORY pour stocker vos dumps, ainsi que d’avoir l’espace disque nécessaire pour les accueillir.
Cependant il faut comprendre que si vous utiliser le réseau pour réaliser vos imports/exports, vous allez avoir besoin d’une bonne connexion entre vos deux serveurs. Sinon, vous perdrez le gain de temps que vous aviez gagné précédemment.
Utilisation
L’environnement : Nous avons une base source nommée ISEC sur notre serveur ESXI-OEL5-ORA01 et une base cible LABO sur le serveur ESXI-OEL5-ORA02. Notre but sera d’exporter le schéma JOHN de la base ISEC vers la base LABO.
L’ensemble des opérations ci-dessous se déroulent sur le serveur cible, celui sur lequel nous voulons importer nos données.
La première étape consiste à créer le DB Link de notre base cible (LABO) vers notre base source (ISEC). Pour cela vous allez avoir besoin de créer une entrée dans votre TNSNAMES ($ORACLE_HOME/network/admin/tnsnames.ora) :
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ESXI-OEL5-ORA01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ISEC)
)
)
Vous pouvez tester votre TNSNAMES avant de créer le DB Link :
On va maintenant créer le Database Link sur la base cible (LABO) :
Voilà tout est prêt pour réaliser notre import. Notre objectif est d’importer le schéma JOHN de la base source (ISEC) sur notre base cible (LABO) :
------------------------------
JOHN
Depuis un terminal, lancez l’import en précisant les options NETWORK_LINK et SCHEMAS :
L'execution du travail "SYS"."SYS_IMPORT_SCHEMA_01" a abouti a 10:56:40
Et voilà ! Sans export, et directement depuis la base cible, vous avez réussi à importer des données depuis une base distante ! C’est beau Oracle non ?
Si vous avez du mal à y croire, je vous invite à relancer la requête présentée plus haut :
------------------------------
JOHN
Notre schéma a bel et bien été importé !
Conclusion
L’import / export Datapump via un DB Link est assez impressionnant et peux vous faire gagner un temps précieux. Attention cependant à ne pas utiliser Datapump comme outil de sauvegarde. L’import / export est utile lorsque vous devez rafraichir quelques données, ou quand vous avez seulement certains objets à déplacer. Si vous voulez une vraie solution de duplication, RMAN est votre ami (voir l’article sur la duplication d’une base Oracle via RMAN).
dllinf
est ce que cet import peut ce faire d’une base 9i vers 11g