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...)
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
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)
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)
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) |
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
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
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 |
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.
|