ORACLE Export (exp) vs Datapump (expdp)
ORACLE provides two external utilities to transfer database objects from one database to another database. Traditional exports (exp /imp) are introduced before 10g. Then from 10g, ORACLE introduced datapump (expdp / impdp) as an enhancement to traditional export utility.
Traditional Export (exp/ imp)
This is an ORACLE database external utility, which is used to transfer database objects from one database server to another database server. It allows transferring the database objects over different platforms, different hardware and software configurations. When an export command is executed on a database, database objects are extracted with their dependency objects. That means if it extracts a table, the dependences like indexes, comments, and grants are extracted and written into an export file (binary format dump file). Following is the command to export a full database,
Cmd > exp userid=username/[email protected]_tns file=export.dmp log=export.log full=y statistics=none
The above command will be exported the database to a binary dump file named export.dmp. Then imp utility can be used to import this data to another database. Following is the command to import,
Cmd > imp userid=username/[email protected]_tns file=export.dmp log=import.log full=y statistics=none
Datapump Export (expdp/ impdp)
This is also an ORACLE database external utility, which is used to transfer objects between databases. This utility is coming from ORACLE 10g database. It has more enhancements than the traditional exp/ imp utilities. This utility also makes dump files, which are in binary formats with database objects, object metadata and their control information. The expdp and impdp commands can be executed in three ways,
- Command line interface (specify expdp/impdp parameters in command line)
- Parameter file interface (specify expdp/impdp parameters in a separate file)
- Interactive-command interface (entering various commands in export prompt)
There are five different modes of data unloading using expdp. They are,
- Full Export Mode (entire database is unloaded)
- Schema Mode (this is the default mode, specific schemas are unloaded)
- Table Mode (specified set of tables and their dependent objects are unloaded)
- Tablespace Mode (the tables in the specified tablespace are unloaded)
- Transportable Tablespace Mode (only the metadata for the tables and their dependent objects within a specified set of tablespaces are unloaded)
Following is the way to export a full database using expdp,
Cmd > expdp userid=username/password dumpfile=expdp_export.dmp logfile=expdp_export.log full=y directory=export
Then impdp utility should be used to import this file to another database.
What is the difference between Traditional Export and Datapump?
• Datapump operates on a group of files called dump file sets. However, normal export operates on a single file.
• Datapump access files in the server (using ORACLE directories). Traditional export can access files in client and server both (not using ORACLE directories).
• Exports (exp/imp) represent database metadata information as DDLs in the dump file, but in datapump, it represents in XML document format.
• Datapump has parallel execution but in exp/imp single stream execution.
• Datapump does not support sequential media like tapes, but traditional export supports.