--=================================
-- 数据泵IMPDP 导入工具的使用
--=================================
数据的导入导出时数据库经常处理的作业之一,Oracle 提供了IMP 和IMPDP 以及SQL* Loader 等工具来完成数据的导入工作,其中IMP 服务于早期的9i 之前的版本,在10g 及后续版本,Oracle 提供了数据泵高速导入工具,本文主要介绍IMPDP 的使用方法,关于高速导出工具请参照:数据泵EXPDP 导出工具的使用 。SQL* Loader 请参照:SQL*Loader使用方法 。
一、数据泵的体系结构
数据泵的体系结构在数据泵EXPDP 导出工具的使用已列出,再此不再赘述。
二、IMPDP 支持的接口及导入模式
导入接口
使用命令行带参数的
使用命令行带参数文件
使用命令行交互
使用database console( GUI)
几种常用的导入模式
导入表
导入方案
导入表空间
导入数据库
传输表空间模式
三、演示如何导入
1. 关于查看impdp 的帮助,使用以下命令
[oracle@oradb ~]$ impdp - ? 或[oracle@oradb ~]$ impdp - help 前者提供帮助信息并开启命令行交互模式
2. 导入表
-- 将表dept,emp 导入到scott 方案中
impdp scott/ tiger directory= dump_scott dumpfile= tab. dmp tables= dept, emp
-- 将表dept 和emp 从scott 方案导入到system 方案中,对于方案的转移,必须使用remap_shcema 参数
impdp system/ manage directory= dump_scott dumpfile= tab. dmp tables= scott. dept, scott. emp remap_schema= scott: system
3. 导入方案
-- 将dump_scott 目录下的schema.dmp 导入到scott 方案中
impdp scott/ tiger directory= dump_scott dumpfile= schema . dmp schemas= scott
-- 将scott 方案中的所有对象转移到system 方案中
impdp system/ redhat directory= dump_scott dumpfile= schema . dmp schemas= scott remap_schema= scott: system
4. 导入表空间
impdp system/ redhat directory= dump_scott dumpfile= tablespace. dmp tablespaces= user01
5. 导入数据库
impdp system/ redhat directory= dump_scott dumpfile= full . dmp full = y
6. 将数据对象原样导回( 演示从Windows 客户端来实现,数据库基于Linux 系统)
从Windows 客户端来导出scott. emp 表,导出后删除该表,再原样导回
C: /> expdp scott/ tiger@list2 directory= dump_scott dumpfile= emp. dmp tables= emp
C: /> sqlplus scott/ tiger@list2
SQL* Plus: Release 10.2.0.1.0 - Production on 星期一9 月20 20: 50: 35 2010
Copyright ( c) 1982, 2005, Oracle. All rights reserved.
Connected to :
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> drop table emp;
Table dropped.
SQL> commit ;
Commit complete.
SQL> select count ( 1) from emp;
select count ( 1) from emp
*
ERROR at line 1:
ORA- 00942: table or view does not exist
SQL> host impdp scott/ tiger@list2 directory= dump_scott dumpfile= emp. dmp
SQL> select count ( 1) from emp;
COUNT ( 1)
----------
14
7. 将导出的对象使用remap_schema 参数转移到不同的方案
a. 将dept 从scott 用户导入到system 用户下
expdp scott/ tiger directory= dump_scott dumpfile= dept. dmp tables= dept
方法一:
impdp system/ redhat tables= scott. dept directory= dump_scott dumpfile= dept. dmp remap_schema= scott: system
方法二:
sql> grant imp_full_database to scott;
impdp scott/ tiger directory= dump_scott dumpfile= dept. dmp tables= dept
remap_schema= scott: system table_exists_action= replace
b. 将scott 方案下的所有对象导入到system 方案下
expdp scott/ tiger directory= dump_scott dumpfile= allobj. dmp schemas= scott
impdp scott/ tiger directory= dump_scott dumpfile= allobj. dmp remap_schema= scott: system table_exists_action= replace
8. 使用remap_datafile 参数转移到不同的数据文件( 用于不同平台之间存在不同命名方式时)
下面的示例首先创建了一个参数文件,参数文件名为payroll. par
directory= pump_scott
full = y
dumpfile= datafile. dmp
remap_datafile= 'db$:[hrdata.payroll]tbs2.f' : '/db/hrdata/payroll/tbs2.f' -- 指明重新映射数据文件
impdp scott/ tiger PARFILE= payroll. par
9. 使用remap_tablespace 参数转移到不同的表空间
impdp scott/ scott remap_tablespace= users: tbs1 directory= dpump_scott dumpfile= users. dmp
10. 并行导入:
expdp e/ e directory= dump_e dumpfile= a_% u. dmp schemas= e parallel= 3
impdp e/ e directory= dump_e dumpfile= a_% u. dmp schemas= e parallel= 3 table_exists_action= replace
四、数据泵impdp 参数:
1.REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名, 在不同平台之间搬移表空间时需要该选项.
REMAP_DATAFILE= source_datafie: target_datafile
2.REMAP_SCHEMA
该选项用于将源方案的所有对象装载到目标方案中.
REMAP_SCHEMA= source_schema: target_schema
3.REMAP_TABLESPACE
将源表空间的所有对象导入到目标表空间中
REMAP_TABLESPACE= source_tablespace: target: tablespace
4.REUSE_DATAFILES
该选项指定建立表空间时是否覆盖已存在的数据文件. 默认为N
REUSE_DATAFIELS={ Y | N}
5.SKIP_UNUSABLE_INDEXES
指定导入是是否跳过不可使用的索引, 默认为N
6, sqlfile 参数允许创建DDL 脚本文件
impdp scott/ tiger directory= dump_scott dumpfile= a1. dmp sqlfile= c. sql
默认放在directory 下,因此不要指定绝对路径
7.STREAMS_CONFIGURATION
指定是否导入流元数据( Stream Matadata), 默认值为Y.
8.TABLE_EXISTS_ACTION
该选项用于指定当表已经存在时导入作业要执行的操作, 默认为SKIP
TABBLE_EXISTS_ACTION={ SKIP | APPEND | TRUNCATE | FRPLACE }
当设置该选项为SKIP 时, 导入作业会跳过已存在表处理下一个对象;
当设置为APPEND 时, 会追加数据
当设置为TRUNCATE 时, 导入作业会截断表, 然后为其追加新数据;
当设置为REPLACE 时, 导入作业会删除已存在表, 重建表并追加数据,
注意, TRUNCATE 选项不适用与簇表和NETWORK_LINK 选项
9.TRANSFORM
该选项用于指定是否修改建立对象的DDL 语句
TRANSFORM= transform_name: value [:object_type]
transform_name 用于指定转换名, 其中SEGMENT_ATTRIBUTES 用于标识段属性( 物理属性, 存储属性, 表空间, 日志等信息),
STORAGE 用于标识段存储属性, VALUE 用于指定是否包含段属性或段存储属性, object_type 用于指定对象类型.
Impdp scott/ tiger directory= dump dumpfile= tab. dmp transform= segment_attributes: n: table
10.TRANSPORT_DATAFILES
该选项用于指定搬移空间时要被导入到目标数据库的数据文件
TRANSPORT_DATAFILE= datafile_name
Datafile_name 用于指定被复制到目标数据库的数据文件
Impdp system/ manager DIRECTORY= dump DUMPFILE= tts. dmp
TRANSPORT_DATAFILES= ’/ user01/ data/ tbs1. f’
五、影响数据泵性能的相关参数
对下列参数建议如下设置
disk_asynch_io= true
db_block_checking= false
db_block_checksum= false
对下列参数建议设置更高的值来提高并发
processes
sessions
parallel_max_servers
对下列参数应尽可能的调大空间大小
shared_pool_size
undo_tablespace
from:http://blog.csdn.net/robinson_0612/article/details/5926276