oracle数据泵为什么,Oracle数据泵详解

数据泵与常规方式对比:Oracle 10g开始引入数据泵,与传统exp/imp相比,数据泵可以作业分离,允许挂起和恢复导入导出任务,可以从失败点重新启动失败的作业,还可以控制导入导出的版本(version)

1、expdp命令:

1>常用参数:

content :导出数据还是只导出元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLY

directory:dumpfile和logfile的目录对象

dumpfile/logfile

exclude:不导出指定的对象(与这些对象有依赖的也不会导出)eg:exclude=table:"like'DBA_%'"

include:导出指定的对象,与exclude功能相反,用法相同

job_name:定义导出作业的名称

attach:附加到已经在运行的现有作业,用于管理作业

full:默认值为n,full=y表示导出所有对象

nologfile:=y表示不写expdp的日志文件,默认值为n

parallel:定义线程数的最大值,这些线程可以代表导出作业来运行

tables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象

version:限制要导出的对象到指定版本的数据库

2>举例:

--创建导出目录及相关用户赋权

create or replace directory dumpdir as '/data/backup';

grant all on directory dumpdir to system;

grant EXPORT FULL DATABASE to system;

--导出全库:导出数据库所有对象

expdp system/pwd@ip/ORACLE_SID dumpfile=dumpdir:db_%U.dmp logfile=dumpdir:db_exp_%U.log job_name=exp_db full=y

--导出指定表空间:导出指定表空间的对象

expdp system/pwd@ip/ORACLE_SID tablespaces=tbs dumpfile=dumpdir:tbs_01.dmp logfile=dumpdir:tbs_exp_01.log job_name=exp_tbs

--导出特定对象:导出指定对象(如下例的function、procedure和XT开头的表)

expdp system/pwd@ip/ORACLE_SID include=function include=procedure include=table:"like'XT%'" dumpfile=dumpdir:tab_01.dmp nologfile=y job_name=exp_tab

--导出表:导出指定表的对象

expdp system/pwd@ip/ORACLE_SID tables=XTCS,XTDW dumpfile=dumpdir:tab_02.dmp nologfile=y job_name=exp_tab01

2、 impdp命令:    1>常用参数:

content :导入数据还是只导入元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLY

directory:dumpfile和logfile的目录对象

dumpfile/logfile

include:导入指定的对象,eg:exclude=table:"like'DBA_%'"

job_name:定义导入作业的名称

attach:附加到已经在运行的现有作业,用于管理作业

full:默认值为n,full=y表示导出所有对象

nologfile:=y表示不写expdp的日志文件,默认值为n

parallel:定义线程数的最大值,这些线程可以代表导入作业来运行,默认值是1

tables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象

table_exists_action:定义当表已经存在时执行的操作,可选项:

=skip(默认值)不加载数据直接跳过当前对象并处理下一个

=append追加在当前表的数据之后写入

=replace先删除表,再创建表并加载数据

=truncate先清除所有数据行,再写入

2>举例:

--创建导入目录及相关用户赋权

create or replace directory pumpdir as '/data/backup';

grant all on directory pumpdir to system;

grant IMPORT FULL DATABASE to system;

--导入全库:导入数据库所有对象

impdp system/pwd@ip/ORACLE_SID dumpfile=pumpdir:db_01.dmp logfile=pumpdir:db_imp_%U.log job_name=imp_db full=y

--导入指定表空间:导入指定表空间的对象

impdp system/pwd@ip/ORACLE_SID tablespaces=tbs dumpfile=pumpdir:tbs_01.dmp logfile=pumpdir:tbs_imp_01.log job_name=exp_tbs table_exists_action=truncate

--导入特定对象:导入指定对象(如下例的function、procedure和XT开头的表)

impdp system/pwd@ip/ORACLE_SID include=function include=procedure include=table:"like'XT%'" dumpfile=pumpdir:tab_01.dmp nologfile=y job_name=imp_tab

--导入表:导入指定表的对象

impdp system/pwd@ip/ORACLE_SID tables=XTCS,XTDW dumpfile=pumpdir:tab_02.dmp nologfile=y job_name=imp_tab01

3、Oracle数据泵交互模式

select * from dba_datapump_jobs;--查询数据泵模式下的任务,记下JOB_NAME

expdp模式下进入:expdp system/pwd@sid attach=job_name

impdp模式下进入:impdp system/pwd@sid attach=job_name

expdp/impdp>>

命令类型:    描述:

status        监视作业的更新频率,单位为秒,默认0s

kill_job      允许从现有的作业中分离并且删除现有作业

start_job     启动或者恢复当前的作业

stop_job      停止作业的执行并退出客户模式

parallel      允许为当前作业改变活跃工作者的数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值