1.Data Pump特性
(1)
支持并行处理导入导出任务
(2)
支持暂停和重启导入导出任务
(3)
支持通过
database link
方式导入或导出远端数据库中对象
(4)
支持在导入通过
REMAP_SCHEMA
、
REMAP_DATAFILE
、
REMAP_TABLESPACE
几个参数实现导入过程中自动修改对象属主、数据文件或所在表空间。
(5)
导出和导入时提供了非常细粒度的对象控制。
Imp/exp
时最多控制是否导入索引、约束、授权信息等有限的对象类型,在
data pump
中不仅可以精确到对象类型,通过
include
或
exclude
两个参数,可以详细指定是否包含或不包含某个对象。
2.Data Pump规则
通过
DUMPFILE
参数指定文件时,并不是指定本地的详细路径,而是指定文件名,
IMPDP
和
EXPDP
命令另外有一个参数叫
DIRECTORY
用来指定
dump
文件所在路径。注意
DIRECTORY
参数也并非直接指定本地磁盘路径,而是指定
Oracle
数据库中的
directory
对象。
Directory
对象是一个指向,指向操作系统中的一个路径。每一个
directory
对象都有
read/write
两个权限,可以通过
grant
命令授予给指定的用户和角色。拥有
directory
对象
read/write
权限的用户就可以读、写该
directory
对象指定的操作系统路径下的文件。
3.DIRECTORY对象使用
第一步:查询现有的
directory
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
———- ——————– ——————————
SYS DATA_PUMP_DIR /u01/app/oracle/admin/orcl/dpdump/
第二步,创建新的
directory
SQL> create directory dump_file_dir as '/backup/dump/';
第三步,给新建的
directory
授权
SQL> grant read,write on directory dump_file_dir to scott;
OK,
现在新建的
directory
可以使用了
4.调用方式
同
exp
一样,
expdp
调用方式同时支持命令行和参数文件方式调用
(1)
命令行方式调用
直接执行命令
例如:
$ expdp scott/tiger tables=emp directory=dump_dir dumpfile=scott_emp.dmp log=scott_emp.log
(2)
参数文件方式调用
第一步,编辑一个文件
$ vi scott_emp.dat
directory=dump_dir
Tables=emp
Buffer=20480
log=scott_emp.log
第二步,然后在执行命令时调用这个文件
$ expdp scott/tiger parfile=scott_emp.dat
5.举例说明
(
1
)全库导出
$ expdp sys/oracle directory=dump_file_dir logfile=database_full.dmp logfile=database_full.log full=y
(
2
)并行方式导出
并行方式导出采用的是
parallel
参数。注意使用该参数时,当数据量很大的时候,可以起到正作用,当数据量很小的时候,
parallel
参数会起反作用
$ expdp sys/oracle directory=dump_file_dir logfile=database_full.dmp logfile=database_full.log parallel=3
(
3
)导出
scott
用户所有表
$ expdp scott/tiger directory=dump_file_dir logfile=scott_tables.dmp logfile=scott_tables.log
6.重要参数
DIRECTORY:
指定参数
DUMPFILE
:
指定输出文件名
LOGFILE:
指定输出日志
FILESIZE:
指定导出文件的大小
PARALLEL
:
并行导入
数据过滤
QUERY
:
对数据进行过滤
SAMPLE
:
百分比过滤
[SAMPLE=A:30]
EXCLUDE:
排除对象
INCLUDE
:
包括对象