You are on page 1of 10

Data Pump

Data pump is a utility provided by Oracle to export data


and/or structure from a database into a binary file called
as dump file. Using the import utility data can be imported
from the dump file into the database.

In older version this was called export/import utility


instead of data pump utility. This utility is still
available in Oracle 10g.

Main points of data pump


• It is a server side utility. Older exp/imp was a
client side utility.
• It can be started from where it stopped
• It can export/import data from one database to another
without generating a dump file
• It can extract only the structure of the database
• It is faster because it uses direct-path loading and
unloading technologies
• Data Pump can be called using expdp & impdp commands
as well as dbms_datapump package
• EXP_FULL_DATABASE role is required to export data from
schema different than yours

How to export

• Database (user, public synonyms, roles, profiles etc.)


expdp system/secret full=Y
dumpfile=expdir:fulla%U.dmp, expdir:fullb%U.dmp
filesize 2G parallel=2 logfile=expdir:full.log
1. Generates multiple dump files in expdir directory
(database directory object). Filesize limit is
2G. File names are fulla01.dmp, fulla02.dmp,
fulla03.dmp, fullb01.dmp, fullb02.dmp,
fullb03.dmp. Log file names full.log gets
generated in expdir also. Data pump will start 2
slave processes to speed up the load.
• Schema (all data and metadata for a user(s))
expdp system/secret schemas=hr, finance
dumpfile=expdir:schema.dmp
logfile=expdir:sschema.log

• Tablespace (all objects in a tablesapce and dependent
objects in other tablesapces e.g. indexes)
expdp system/password
dumpfile=expdir:users_ts.dmp
logfile=expdir:users_ts.out tablespaces=users
• Table
expdp hr/hr dumpfile=expdir:job_tabs.dmp
nologfile=y content=metadata_only(data_only)
tables=jobs,job_history

• Subset of a table
expdp hr/hr dumpfile=expdir:job_tabs.dmp
QUERY=hr.employees:"WHERE department_id in (10,20) and
salary 1600 ORDER BY department_id"

Note: No data in exported for indexes. Only structure is


exported. They are rebuilt on import

Export Parameters

• full=y Specifies a database mode export.


• schemas=schema_list Specifies a schema mode export
here schema_list is a comma-delimited list of schemas
to export.
• tables=table_list Specifies a table mode export where
table_list is a comma-delimited list of tables to
export.
• tablesspaces=tablespace_list Specifies a tablespace
mode export where tablespace_list is a comma-delimited
list of tablespaces to export.
• content=content_option Specifies whether data,
metadata, or both are exported. Valid values are:
DATA_ONLY (data only), METADATA_ONLY (metadata only),
or the default ALL (both).
• include=object_type[: name_clause] Specifies what
objects should be exported
1. INCLUDE=TABLE:"IN ('EMPLOYEES', 'DEPARTMENTS')"
2. INCLUDE=PROCEDURE
3. INCLUDE=INDEX:"LIKE 'EMP%'"
• exclude=oject_type[: name_clause] Specifies what
objects should not be exported
• Sample=[[schema_name.]table_name:]sample_percentage
Only sample data is exported. Very important feature
for generating sample test data.
1. SAMPLE="HR"."EMPLOYEES":50
2. SAMPLE=70
• ESTIMATE_ONLY=yes. Estimates the disk space
requirement using blocks and statistics method.
Default is blocks
• ESTIMATE=[block|statistics] – Specifies which method
to be used for estimating disk space requirement
• FLASHBACK_SCN=nnnn
expdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr_exp.dmp
FLASHBACK_SCN=150222
• FLASHBACK_TIME=time
expdp system/sammyy1 DIRECTORY=dpump_dir1
DUMPFILE=hr_time.dmp FLASHBACK_TIME="TO_TIMESTAMP('25-
05-2005 17:22:00', 'DD-MM-YYYY HH24:MI:SS')"
• network_link=db_link Specifies that a remote database
accessed via the database link db_link should be used
as the export source.
• dumpfile=dir:file Specifies the dump file location and
name. dir is a database directory object. file is the
filename. If the filename includes a %U substitution
variable, the database will substitute a two-digit
file sequence number starting with 00.
• filesize=size_limit Specifies the maximum size of each
dump file. Can be specified in bytes, kilobytes,
megabytes, or gigabytes. Thedefault is bytes.
• logfile=dir:file Specifies the log file location and
name. dir is a database directory object and file is
the filename.
• directory=dir Specifies the file location to use for
both the dump file and log file. dir is a database
directory object.
• nologfile=y Specifies that no log file should be
written.
• job_name=identifier Specifies a name for the import
job. This name is visible from data dictionary views.
The default is system generated.
• Compression=option Specifies if metadata is compressed
while exporting. Valid options are METADATA_ONLY AND NONE.
You cannot compress the actual data.
• QUERY=tablename:"WHERE department_id in (10,20) and salary
1600 ORDER BY department_id"

Creating directory objects for Data Pump


• CREATE DIRECTORY dump_dir AS
'/oracle/data_pump/dumps';
• CREATE DIRECTORY log_dir AS '/oracle/data_pump/logs';
• GRANT read,write ON DIRECTORY dump_dir TO PUBLIC;

How to import

• Read the dump file FULL.DMP and extract all DDL,


placing it in the file FULL.SQL. Do not write a log
file.

impdp system/password full=y dumpfile=expdir:FULL.DMP


nologfile=y sqlfile=expdir:FULL.SQL

• Read the data accessed via database link PROD and


import schema HR into schema HR_TEST,importing only
metadata, writing the log file to the database
directory expdir, and naming this log file
HR_TEST.imp.

impdp system/password network_link=prod schemas="HR"


remap_schema="HR:HR_TEST" content=metadata_only
logfile=expdir:HR_TEST.imp

• Read the dump file HR.DMP and write to the SQL file
HR_proc_give.sql all the DDL to create any procedures
with a name LIKE 'GIVE%'. Do not write a log file.
impdp system/password full=y dumpfile=expdir:HR.DMP
nologfile=y sqlfile=expdir:HR_proc_give.SQL
include=PROCEDURE:"LIKE 'GIVE%'"

• Read the data accessed via database link PROD and


import only the data from HR.DEPARTMENTS into schema
HR_TEST.DEPARTMENTS. Write a log file to file
DEPT_DATA.log.
• impdp system/password network_link=prod schemas="HR"
remap_schema="HR:HR_TEST" content=data_only
include=TABLE:"= 'DEPARTMENTS'"
logfile=expdir:HR_TEST.imp

Import Parameters
• Full=y Specifies a full mode import.
• Schemas=schema_list Specifies a schema mode import.
schema_list is a comma-delimited list of schemas to
import.
• Tables=table_list Specifies a table mode import.
table_list is a comma delimitedlist of tables to
import.
• tablesspaces=tablespace_list Specifies a tablespace
mode import. tablespace_list is a comma-delimited list
of tablespaces to import.
• content=content_option Specifies whether data,
metadata, or both are imported. Valid values are:
DATA_ONLY (data only), METADATA_ONLY (metadata only),
and the default ALL (both).
• network_link=db_link Specifies the live database
accessed via the database link. db_link should be used
as the import source.
• dumpfile=dir:file Specifies the dump file location and
name. dir is a database directory object. file is the
filename.
• logfile=dir:file Specifies the log file location and
name. dir is a database directory object. file is the
filename.
• directory=dir Specifies the file location to use for
both the dump file and log file. dir is a database
directory object.
• nologfile=y Specifies that no log file should be
written.
• sqlfile=dir:file Specifies the file location and name
to write the metadata/DDL statements to.
• job_name=identifier Specifies a name for the import
job. This name is visible from data dictionary views.
The default is system generated.
• parallel=degree Specifies the maximum number of active
threads/processes operating on behalf of the import.
The default is 1.
• parfile=dir:file Specifies the file location and name
of the parameter file that Data Pump Import should
use.
• remap_datafile=source:target Specifies how to change
the source and target datafile names that appear in
CREATE TABLESPACE, CREATE LIBRARY and CREATE DIRECTORY
statements. source is the datafile name from the
export or live database. target is the datafile name
to use in the import.
• remap_schema=source:target Specifies the source and
target schema names when importing into a different
schema than the export was taken from. Multiple
remap_schema entries can be used. source is the schema
from the export or live database. target is the schema
to import into.
• remap_tablespace=source:target Specifies the source
and target tablespace names when they change between
the source export files / live database and target
database. Multiple remap_tablespace entries can be
used. source is the tablespace name from the export or
live database. target is the tablespace name that the
source objects should be placed in.
• include=object_list Specifies a comma-delimited list
of object types to include in the import.
• exclude=object_list Specifies a comma-delimited list
of object types to exclude from the import.

Monitoring DataPump jobs

SELECT owner_name owner,


job_name ,operation,job_mode,state
FROM dba_datapump_jobs;

OWNER JOB_NAME OPERATION JOB_MODE STATE


------ ------------- ---------- -------- -------
SYSTEM full_meta EXPORT FULL EXECUTING
SYSTEM ESTIMATE000026 EXPORT SCHEMA NOT RUNNING

Advantages of Datapump

• Fine-grained object and data selection


(Include,exclude, contents, query)
• Parallel execution (parallel) – master process
(ora_shekhar_
• Estimation of the export job space consumption
(estimate_only)
• Network mode in a distributed environment
(network_link)
• Remapping capabilities during import(remap_schema,
remap_tablespace, remap_datafile)
• Data sampling and metadata compression (sample,
compression)
What is a master table

• It is a table created during export process which


keeps track of the progress of the export job. It is
created in the schema of the user running the export
job. If anything goes wrong with the job – e.g.
running out of disk space – the job can be restarted
with the help of imformation in the master table. This
table is exported to the dump file when export is
finished.
• This table is imported as a first step during the
import from the dumpfile

How to attach to an already existing job

Expdp shekhar/shekhar dumpfile=’data:full.dmp’ full=yes


job_name=abcd

Then, in another window execute the following

Expdp shekhar/shekhar attach=abcd


Export> help

You might also like