这节内容为impdp命令的介绍


##1. 什么是Data Pump Import

Data Pump Import是一个读取expdp生成的dump文件然后将其内容导入到目标系统的工具

它除了读取dump文件也可以不需要dump文件,即Network Import




它通过data filters 和metadata filters 来过滤掉我们不想要导出的内容



##2. 调用Data Pump Import

我们使用impdp命令来调用Data Pump Import工具

我们指定Import的参数来控制其行为

参数可以在命令行和或参数文件中指定



###2.1 如何调用Import

后面的章节分别介绍这三个方式

- 命令行

- 参数文件

- 交互式命令

###2.2 Data Pump Import模式

注意目标数据库JOB的权限是由导入时用户决定的,即dba_jobs的LOG_USER 和PRIV_USER列

如需解决此问题请在导出和导入时使用相同的用户

**Full Import Mode**

该模式导入所有数据(dump文件或源数据库),使用**full**参数

必须有 EXP_FULL_DATABASE 权限

**Schema Mode**

导入属于schema的所有数据,使用**schema**参数

如果schema中对象引用的对象不包含在schema参数中,则该引用的对象不导入

**Table Mode**

该模式导入指定的表,使用**tables**参数

**Tablespace Mode**

该模式导入指定表空间的对象,包含其他表空间的引用对象,使用**TABLESPACES**参数


**Transportable Tablespace Mode**

该模式用于传输表空间的数据迁移,采用**TRANSPORT_TABLESPACES**参数


##3. IMPDP过滤方式

**Data Filters**

使用QUERY 和 SAMPLE 参数控制需要导入的数据

每种方式在同一个JOB中只能指定一次


**Metadata Filters**

使用EXCLUDE and INCLUDE 参数来控制需要导入的对象

EXCLUDE and INCLUDE 不能同时使用

如果导入一个pakcage则它的grant权限也会导入

如果排除一个表,则它上面的索引,触发器,grant以及约束都不会被导入

同一个Metadata Filter参数可以被多次指定,如指定多次则他们关系为and

可以查询如下视图了解哪些对象可以被过滤

- FULL 模式:DATABASE_EXPORT_OBJECTS 
-  Schema模式:SCHEMA_EXPORT_OBJECTS
- 表和表空间模式:TABLE_EXPORT_OBJECTS