ITPub博客

首页 > 数据库 > Oracle > 数据泵基础(impdp/expdp)

数据泵基础(impdp/expdp)

原创 Oracle 作者:leon830216 时间:2014-03-01 18:11:08 0 删除 编辑
支持数据库版本:10gR2

- 注意事项

expdp可以在客户端或服务器端执行,但文件最终保存在服务器端
exp命令在哪里执行,就导出到哪里
dbms_datapump --- pl/sql中调用

- 前期准备

创建转存目录
create directory backup_dir as 'c:\backup_dir'

赋予用户访问权限
grant read,write on directory backup_dir to scott

查询创建了哪些目录
select * from dba_directories

导入导出命令
- 如果采用sysdba用户
expdp 'sys/admin as sysdba'

- 表 --- tables=go.emp,scott.dept
导出导入指定表,表相关对象(索引,约束等,这些对象需要于表在相同表空间或导出用户具有导出权限)
向其他用户导入需要imp_full_database权限
表可以指定 *
tables=scott.emp:p1   --- 表分区
tables=scott.e%

- 案(默认模式) --- schemas=scott,hr
有exp_full_database权限则可以到处其他schema的表
默认不会导出在本schema的对象的在其他schema中的关联对象(如emp表的index在其他schema中时)
除非那个schema也在列表中出现,导入也同样

- 导出表空间 --- tablespaces=users01,users02
到处指定表空间中,属于本用户的对象
导出指定表空间中所有对象,需要exp_full_database权限

- 导出数据库 --- full=y
需要exp_full_database权限
grant exp_full_database to go

- 传输表空间 --- transport_tablespaces
需要exp/imp_full_database
导出的是原数据,需要复制dmp和数据文件到目标库

- 过滤对象或数据
过滤数据
如果没有指定表名则针对所有被导出的表
建议放在parfile中
query=emp:"where id>5",dept:"where id<2"
sample=emp:50,dept:10 --- 导出数据的百分比 

过滤对象
指定任何对象类型和对象名字(支持*)
建议放在parfile中
include,exclude不能同时出现
exclude=index:"like 'IDX_EMP%'",constraint:"like 'CHK_EMP%'",grant
---------------------------------------------------------------------------------
多种情况对应

- 指定过滤条件 --- tables,include,exclude,query
注意tables和include条件中的大小写,和转义字符
expdp go/go tables=\(go.e%\) directory=dump_file_dir query=\"where mgr=7698\" dumpfile=emp.dmp;
expdp go/go include=table:\"like \'E%\'\" directory=dump_file_dir query=emp:\"where mgr=7698\" dumpfile=expdp.dmp;

- 跨数据库链方式导出 --- network_link
间接实现导出远端数据库对象到本地 ???

- 并行方式(不支持标准版) --- parallel + filesize
小数据量不一定能提高效率,设置不合理可能会影响效率
expdp go/go directory=dump_file_dir dumpfile=expdp.dmp parallel=2 filesize=30m;

- 仅导入对象定义 --- content=all,data_only,metadata_only

- 导入时清楚对象保存的原数据 --- table_exists_action=skip,append,truncate,replace

- 导入时重定义schema和表空间
remap_schema=scott:go,go:scott --- 同一impdp不能指定scott:go,scott:hr
remap_tablespace=users01:users02,users03:users04

- 退出输出模式,进入交互管理模式 --- CTL+C
- 连接到输出模式 --- expdp go/go attach=job_name
不指定attach则自动连接到当前任务
-- 执行管理操作
Export> add_file=exp_1_%U.dmp,exp_2_%U.dmp --- 添加输出文件,仅用于expdp
Export> continue_client --- 回到输出模式
Export> exit_client --- 退出,回到OS命令行,expdp转为后台运行
Export> filesize=1G --- 指定最大文件大小(G,M,K,B)
Export> help --- 显示帮助

- 参数文件
创建expdp.par
userid=go/go
schemas=scott,hr
dumpfile=scott%U.dmp
directory=backup_dir
logfile=scott.log
job_name=export_job

执行导出
expdp go/go parfile=c:\backup\expdp.par

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22558114/viewspace-1097762/,如需转载,请注明出处,否则将追究法律责任。

上一篇: RMAN增量备份
请登录后发表评论 登录
全部评论

注册时间:2009-09-18

  • 博文量
    164
  • 访问量
    319655