1.1.1 Objectifs du document :
Avant tout il faut préciser que cette méthode est une méthode logique de sauvegarde (Export) et de restauration des données (Import).
Elle va nous permettre de sauvegarder le contenu logique d’une base de données dans un fichier de transfert Oracle au format binaire, ou fichier dump.
Ce fichier pourra donc être relu pour recréer des objets qu’il contient.
Ce transfert peut s’accomplir sur une même base ou même sur deux bases Oracle, et cela même si leurs configurations matérielles et logicielles diffèrent.
Cela signifie que l’on peut tout à fait exporter une base sous Windows pour l’importer sous Linux ou Unix (sauf pour les tablespaces transportables).
Ces deux utilitaires qui peuvent être alors employés comme des techniques de sauvegarde peuvent être exécutés à partir de n’importe quel client NET*8 le fichier DUMP est traité, dans ce cas, de manière locale par rapport au client.
Lors d’un import ou d’un export à partir d’un client NET*8, il faut faire attention car cette opération peut augmenter le trafic du réseau et affecter ce dernier de manière importante.
1.1. Pré requis
– Avoir le mot de passe du compte sys ou system
– Avoir suffisamment d’espace disque disponible sur le serveur destination pour accueillir les données
– Les tablespaces(TS) doivent être correctement dimensionné par rapport aux tablespaces sources
– Un fichier exporté avec EXP doit être importé avec IMP et réciproquement
1.1.1 EXPDP
EXPDP est apparu depuis la version 10G d’Oracle, l’utilitaire EXP est toujours disponible et fonctionnel.
A savoir que les fichiers d’exports générés par EXPDP et EXP sont incompatibles entre eux.
L’utilitaire EXPDP a besoin d’un répertoire de destination pour écrire son export, à partir de la 10G, on utilise un objet DIRECTORY
Autre précision de taille : la version de l’utilitaire Import « IMPDP » peut être antérieure à celle de l’utilitaire Export « EXPDP », et ce à condition d’utiliser le paramètre « VERSION » disponible depuis la 10g R1. Donc il est tout à fait envisageable de faire un Export EXPDP depuis une 11.2 et de faire un Import dans une 10.2 grâce au paramètre « VERSION=10.0.0.0 »
Un fichier exporté avec EXPDP doit être importé avec IMPDP et réciproquement.
1.1.2 IMPDP
IMPDP est apparu depuis la version 10G d’Oracle, l’utilitaire IMP est toujours disponible et fonctionnel.
A savoir que les fichiers d’exports générés par EXPDP et IMP sont incompatibles entre eux.
L’utilitaire IMPDP a besoin d’un répertoire source pour aller lire le fichier d’export, à partir de la 10G, on utilise un objet DIRECTORY.
1.1.3 Datapump est composé de trois éléments :
- Package dbms_datapump
- Package dbms_metadata
- Clients EXPDP et IMPDP
1.1.4 Modes export et import :
- Complet
- Schéma
- Table
- Tablespace
1.1.5 Privilèges de l’utilisateur :
1. exp_full_database
2.imp_full_database
1.1.6 Création d’un « DIRECTORY » oracle :
SQL> CREATE OR REPLACE DIRECTORY DBTEST_EXPORT AS 'C:\EXPORT\';
Directory created.
SQL> GRANT READ, WRITE ON DIRECTORY DBTEST_EXPORT TO scott;
Grant succeeded.
SQL> COLUMN OWNER FORMAT A10
SQL> COLUMN DIRECTORY_NAME FORMAT A20
SQL> COLUMN DIRECTORY_PATH FORMAT A40
SQL> SELECT * FROM all_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- -------------------- ----------------------------------------
SYS DBTEST_EXPORT C:\EXPORT\
1 rows selected.
1.1.7 Exporter toute la base de données (FULL Export) avec EXPDP
C:\>SET ORACLE_SID=DBTEST
C:\>expdp system/pwd full=Y directory=DBTEST_EXPORT dumpfile=full_dbtest.dmp logfile=full_dbtest.log
Export: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 12:54:29
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYSTEM"."SYS_EXPORT_FULL_01": system/******** full=Y directory=DBTEST_EXPORT
dumpfile=full_dbtest.dmp logfile=full_dbtest.log
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
...
...
Master table "SYSTEM"."SYS_EXPORT_FULL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_FULL_01 is:
C:\EXPORT\FULL_DBTEST.DMP
Job "SYSTEM"."SYS_EXPORT_FULL_01" successfully completed at 13:07:59
1.1.8 Exporter un schéma sous Oracle avec EXPDP
C:\>SET ORACLE_SID=DBTEST
C:\>expdp system/pwd schemas=SCOTT directory=DBTEST_EXPORT dumpfile=SCOTT.dmp logfile=SCOTT.log
Export: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 13:19:02
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** schemas=SCOTT directory=DBTEST_EXPORT
dumpfile=SCOTT.dmp logfile=SCOTT.log
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 256 KB
Processing object type SCHEMA_EXPORT/USER
C:\EXPORT\SCOTT.DMP
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 13:19:23
1.1.9 Exporter des tables sous Oracle avec EXPDP
C:\>SET ORACLE_SID=DBTEST
C:\>expdp system/pwd tables=scott.DEPT,scott.SALGRADE directory=DBTEST_EXPORT dumpfile=DEPT_SALG.dmp logfile=DEPT_SALG.log
Export: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 13:31:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/******** tables=scott.DEPT,scott.SALGRADE
directory=DBTEST_EXPORT dumpfile=DEPT_SALG.dmp logfile=DEPT_SALG.log
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 128 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."DEPT" 5.656 KB 4 rows
. . exported "SCOTT"."SALGRADE" 5.585 KB 5 rows
Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is:
C:\EXPORT\DEPT_SALG.DMP
Job "SYSTEM"."SYS_EXPORT_TABLE_01" successfully completed at 13:31:32
1.1.10 Exporter des tablespaces sous Oracle avec EXPDP :
C:\>SET ORACLE_SID=DBTEST
C:\>expdp system/pwd TABLESPACES=rman_catalog directory=DBTEST_EXPORT dumpfile=tbs_rman.dmp
logfile=tbs_rman.log
Export: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 13:46:00
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Starting "SYSTEM"."SYS_EXPORT_TABLESPACE_01": system/******** TABLESPACES=rman_catalog
directory=DBTEST_EXPORT dumpfile=tbs_rman.dmp logfile=tbs_rman.log
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.25 MB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
...
. . exported "RMAN"."RCVER" 4.929 KB 1 rows
. . exported "RMAN"."RLH" 21.56 KB 293 rows
. . exported "RMAN"."ROUT" 8.398 KB 32 rows
. . exported "RMAN"."RSR" 11.28 KB 2 rows
. . exported "RMAN"."RT" 7.078 KB 1 rows
. . exported "RMAN"."TF" 7.687 KB 1 rows
. . exported "RMAN"."TFATT" 7.757 KB 1 rows
. . exported "RMAN"."TS" 8.281 KB 7 rows
. . exported "RMAN"."TSATT" 6.578 KB 7 rows
. . exported "RMAN"."AL" 0 KB 0 rows
...
Master table "SYSTEM"."SYS_EXPORT_TABLESPACE_01" successfully loaded/unloaded
1.2 Importer des tablespaces dans Oracle avec IMPDP
C:\>SET ORACLE_SID=DBTEST
C:\>impdp system/pwd TABLESPACES=rman_catalog directory=DBTEST_EXPORT dumpfile=tbs_rman.dmp
logfile=itbs_rman.log
Import: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 20:22:14
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Master table "SYSTEM"."SYS_IMPORT_TABLESPACE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TABLESPACE_01": system/******** TABLESPACES=rman_catalog
directory=DBTEST_EXPORT dumpfile=tbs_rman.dmp logfile=itbs_rman.log
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "RMAN"."CCF" 11.06 KB 2 rows
. . imported "RMAN"."CKP" 7.789 KB 2 rows
. . imported "RMAN"."CONF" 6.484 KB 1 rows
. . imported "RMAN"."CONFIG" 5.242 KB 1 rows
. . imported "RMAN"."DB" 6.476 KB 1 rows
. . imported "RMAN"."DBINC" 14.10 KB 2 rows
. . imported "RMAN"."DF" 9.148 KB 6 rows
. . imported "RMAN"."DFATT" 7.210 KB 6 rows
. . imported "RMAN"."NODE" 6.828 KB 1 rows
. . imported "RMAN"."OFFR" 7.851 KB 4 rows
. . imported "RMAN"."ORL" 6.023 KB 3 rows
. . imported "RMAN"."RCVER" 4.929 KB 1 rows
. . imported "RMAN"."RLH" 21.56 KB 293 rows
. . imported "RMAN"."ROUT" 8.398 KB 32 rows
. . imported "RMAN"."RSR" 11.28 KB 2 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYSTEM"."SYS_IMPORT_TABLESPACE_01" successfully completed at 20:22:34
1.2.1 Importer des Tables dans Oracle avec IMPDP
C:\>SET ORACLE_SID=DBTEST
C:\>impdp system/pwd tables=scott.DEPT,scott.SALGRADE directory=DBTEST_EXPORT dumpfile=DEPT_SALG.dmp
logfile=IDEPT_SALG.log
Import: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 21:09:34
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Master table "SYSTEM"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TABLE_01": system/******** tables=scott.DEPT,scott.SALGRADE
directory=DBTEST_EXPORT dumpfile=DEPT_SALG.dmp logfile=IDEPT_SALG.log
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."DEPT" 5.656 KB 4 rows
. . imported "SCOTT"."SALGRADE" 5.585 KB 5 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYSTEM"."SYS_IMPORT_TABLE_01" successfully completed at 21:09:39
1.2.2 Importer un schéma dans Oracle avec IMPDP
C:\>SET ORACLE_SID=DBTEST
C:\>impdp system/pwd schemas=SCOTT directory=DBTEST_EXPORT dumpfile=SCOTT.dmp logfile=ISCOTT.log
Import: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 21:37:03
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Master table "SYSTEM"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/******** schemas=SCOTT directory=DBTEST_EXPORT
dumpfile=SCOTT.dmp logfile=ISCOTT.log
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."DEPT" 5.656 KB 4 rows
. . imported "SCOTT"."EMP" 7.578 KB 8 rows
. . imported "SCOTT"."NEW_EMP" 7.585 KB 8 rows
. . imported "SCOTT"."SALGRADE" 5.585 KB 5 rows
. . imported "SCOTT"."BONUS" 0 KB 0 rows
. . imported "SCOTT"."VEHICULE" 0 KB 0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" successfully completed at 21:37:08
1.2.3 Importer une base de données FULL dans Oracle avec IMPDP :
Nota : Il est préférable de sélectionner les schémas à importer que de faire un import full dans une base existante
C:\>SET ORACLE_SID=DBTEST
C:\>impdp system/pwd full=Y directory=DBTEST_EXPORT dumpfile=full_dbtest.dmp logfile=full_dbtest_import.log
Import: Release 10.2.0.1.0 - Production on Thursday, 16 June, 2011 21:48:58
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** full=Y directory=DBTEST_EXPORT
dumpfile=full_dbtest.dmp logfile=ifull_dbtest.log
Processing object type DATABASE_EXPORT/TABLESPACE
....
....
Processing object type DATABASE_EXPORT/PROFILE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
.......
.......
Processing object type DATABASE_EXPORT/AUDIT
Job "SYSTEM"."SYS_IMPORT_FULL_01" completed with 1 error(s) at 21:51:59
Si nous avons des erreurs de compilations il faut dans ce cas executer le script :
SQL> select count(*) from dba_objects where status !=’VALID’;
COUNT(*)
———-
2
sinon compiler
SQL> @?\rdbms\admin\utlrp.sql
1.3 Network Exports/Imports (NETWORK_LINK)
- Cette méthode permet d’éviter la génération d’un fichier dump intermédiaire.
- Le paramètre NETWORK_LINK identifie un lien base de données pour être utilisé comme source pour un Export/Import via le réseau.
- Le DBLINK suivant sera utilisée pour démontrer son utilisation.
1.3.1 Affectation des droits à l’utilisateur « test »
CONN / AS SYSDBA
GRANT CREATE DATABASE LINK TO test;
GRANT EXP_FULL_DATABASE TO test;
GRANT IMP_FULL_DATABASE TO test;
1.1.3 Création du DBLINK
CONN test/test
CREATE DATABASE LINK remote_scott CONNECT TO scott IDENTIFIED BY tiger USING 'DEV';
Vraiment intéressant
merci