Export - Import

EXPORT et IMPORT sont des utilitaires de transfert de données spécifiques à Oracle et utilisés de manière symétrique : export extrait les données d'Oracle vers un fichier externe et import réinjecte le contenu d'un fichier d'export Oracle vers la base de données.
export et import fonctionnent en client/serveur, on peut les effectuer localement à la machine ou sur une machine cliente.
remarque : il n'existe pas de clients export / import pour tous les postes clients, cela dépend des versions d'Oracle. On les effectuera alors sur un serveur (qui peut être différent du serveur de données...)

Utilité

D'une manière générale export et import sont des utilitaires de transfert LOGIQUE de données. Moyennant cela ils peuvent être utilisés pour :

- l'archivage logique de la base
- le changement de version d'Oracle (upgrade)
- les sauvegardes logiques
- le déplacement de données (d'une base vers une autre, d'un schéma vers un autre)
- la réorganisation physique de la base

Caractéristiques principales

stocke les données dans un fichier d'un format spécial lisible par Oracle
stocke la définition des objets
format logique des données (possibilité de fusion des extents)
possibilité d'export 'cumulatif' ou 'incrémental'
plusieurs niveaux de finesse (full,user,table)

export : généralités

préparation :
Pour les versions anciennes d'oracle le script catexp.sql doit être passé par le DBA.
Le cas échéant le privilèges EXP_FULL_DATABASE peut être nécessaire (de toutes façons un User a le droit d'exporter ses données...)
Prévoir de la place pour le fichier d'export (et les logs...) sur le système de fichier de l'OS d'accueil

les différents modes :
Il existe 3 modes d'export corrspondant à des niveaux de finesse (granularité) plus ou moins importants. Du plus petit au plus grand on a respectivement les modes :
table
user
full

exemple de commande :
exp scott/tiger grants=Y tables=(EMP,DEPT)


export : Description des paramètres

(valeurs par défaut entre parenthèses) :
help aide :affiche les otions possibles (N)
parfile nom du fichier de paramêtres 
USERID user et password de connexion
FULL export du fichier entier (N)
BUFFER taille du data buffer
OWNER liste des utilisateurs a exporter (en mode User)
FILE fichier de sortie ou d'export (EXPDAT.DMP)
TABLES liste des tables
COMPRESS import dans 1 seul extent : compression (Y)
RECORDLENGTH longueur d'enregistrement
GRANTS export des grants ? (Y)
INCTYPE export differentiel de type (incrémental, cumulative ou complete)
DIRECT accès otimisé aux données (pas de SQL)
FEEDBACK n indique la progression de l'export
table par table. 1 caractère affiché pour n lignes exportées
INDEXES export des index (Y)
RECORD marquage des export incrementaux (différentiels) dans le dictionnaire (Y)
ROWS export des données aussi ? (Y)
PARFILE fichier de paramètres (si pas mode commande)
CONSTRAINTS export des constraintes (Y)
CONSISTENT image avant consistante de l'export (mises a jour autorisées)
LOG log file of screen output
STATISTICS type de statistiques à générer à l'import estimate|compute|none (ESTIMATE)


exports différentiels

incrémentaux et cumulatifs
par défaut : export complet
incrémental : les tables qui ont changé depuis le dernier exp (tous types)
cumulatif : les tables qui ont changé depuis le dernier exp (complet ou cumulatif)
ATTENTION : niveau table !!
EXPORT
Planning
XIIIIICIIIIICIIIIICIIIIIX
X=complet,I=incremental,C=cumulatif
utilisation des tables :
sys.incexp : liste des objets exportés
sys.incfil : informations sur les fichiers
sys.incvid : EXPID : identification de l
'export

import : généralités

environnement identique à export

ordre dans lequel les objets sont 'importés :
- structures de tables
- données
- index
- contraintes d'intégrité et triggers

Pour faire un import FULL, il faut être DBA ou posséder le role IMP_FULL_DATABASE



import : paramêtres

HELP décrit les paramètres de l'import
USERID username/password de connexion
FULL import complet (N)
BUFFER taille du data buffer
FROMUSER liste des propriétaires exportés
FILE fichier d'entrée (EXPDAT.DMP)
TOUSER liste des propriétaires cibles de l'import
SHOW liste les objets à importer, sans importer ! (N)
TABLES liste des tables
IGNORE ignore les erreurs due aux objets déjà existants (N)
RECORDLENGTH longueur des enregistrements en entree/sortie
GRANTS import des droits (Y)
INCTYPE import de type différentiel
INDEXES import les indexs aussi ? (Y)
COMMIT commit par paquet (N)
ROWS importe aussi le contenu des tables (Y)
PARFILE fichier de parametres
LOG trace des sorties écran
DESTROY écrase le fichier du tablespace (N)
INDEXFILE écrit table/index dans le fichier spécifié
CHARSET character set du fichier d'export (NLS_LANG)
FEEDBACK n indique la progression de l'import table par table. 1 caractère affiché pour n lignes importées

exemples d'export et d'import

export mon_user/mon_password PARFILE=mon_fichier_de_parametres

export des tables EMP et DEPT de SCOTT :
exp scott/tiger file=/tmp/expscott.dmp tables=emp,dept

on obtient a l'écran :

Export: Release 8.0.5.0.0 - Production on Fri Sep 10 13:54:8 1999
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Connected to: Oracle8 Enterprise Edition Release 8.0.5.0.0 -
Production PL/SQL Release 8.0.5.0.0 -
Production Export done in US7ASCII character set and US7ASCII NCHAR character set
About to export specified tables via Conventional Path ..
. . . exporting table EMP 14 rows exported
. . exporting table DEPT 4 rows exported
Export terminated successfully without warnings.

réimport des 2 tables :
imp scott/tiger file=/tmp/expscott.dmp commit=y ignore=y

remarque : le paramètre COMMIT=Y est très important surtout pour des tables volumineuses. S'il n'est pas spécifié il y aura juste un commit final, mais l'image avant (les rollback segments) risquent fort d'être saturés avant le terme de l'import...

Le paramètre ignore est nécessaire, si les tables EMP et DEPT existent déjà dans le compte cible.
On obtient a l'écran :

Import: Release 8.0.5.0.0 - Production on Fri Sep 10 14:0:2 1999
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Connected to: Oracle8 Enterprise Edition Release 8.0.5.0.0 -
Production PL/SQL Release 8.0.5.0.0 -
Production Export file created by EXPORT:V08.00.05 via conventional path .
importing SCOTT's objects into SCOTT
. . importing table "EMP" 14 rows imported
. . importing table "DEPT" 4 rows imported
Import terminated successfully without warnings.


(c) 2002- 2006 Didier Deléglise


modifié
le 20/11/2006

Ecrire a DD
ecris
moi


les forums techniques Oracle

mon BLOG Oracle,
en Francais
connaitre DD
l'autre vie
de DD

mon CV

trucs
et astuces

JOBs Oracle
du jour
Homepage "Tout sur Oracle"
Mon site :
Tout sur Oracle (et le web)
Copyright (C) 2002
Utilisation de ces documents