Oracle使用数据泵(EXPDP,IMPDP)导出导入数据详解

数据泵导出导入与传统导出导入的区别

ORACLE从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP,本文详细解说数据泵方式导数据的方法。

首先,需要了解使用EXPDP和IMPDP时应该注意的事项:

  1. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
  2. IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

配置数据库

1、创建系统目录

mkdir [DIRECTORY_PATH]

如:

mkdir /data/app/oracle/oradp

现在,以system或其他管理员登录数据库

sqlplus system/[PASSWORD]

2、创建逻辑目录

create DIRECTORY [DIRECTORY_NAME] as [DIRECTORY_PATH];

如:

create DIRECTORY dpdata as '/data/app/oracle/oradp';

3、查看管理员目录

select * from dba_directories;

4、给用户赋予在指定目录的操作权限

grant read,write on DIRECTORY [DIRECTORY_NAME] to [USER_NAME];

如:

grant read,write on DIRECTORY dpdata to andy;

5、删除DIRECTORY目录

drop DIRECTORY [DIRECTORY_NAME];

导出数据

1、导整个数据库

expdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp FULL=y;

如:

expdp andy/louse DIRECTORY=dpdata DUMPFILE=andylouse.dmp FULL=y;

2、并行进程PARALLEL

expdp [USER_NAME]/[PASSWORD]@[SID] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp PARALLEL=40 JOB_NAME=scott

3、按表名导

expdp [USER_NAME]/[PASSWORD]@[SID] TABLES=[TABLE_1],[TABLE_2] DUMPFILE=[FILE_NAME].dmp DIRECTORY=[DIRECTORY_NAME];

4、按查询条件导

expdp [USER_NAME]/[PASSWORD]@[SID] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp TABLES=[TABLE_1] RUERY='WHERE [FIELD_NAME]=[VALUE]';

5、按表空间导

expdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp TABLESPACES=[TABLESPACE_1],[TABLESPACE_2];

6、按用户导

expdp [USER_NAME]/[PASSWORD]@[SID] SCHEMAS=[USER_1],[USER_2] DUMPFILE=[FILE_NAME].dmp DIRECTORY=[DIRECTORY_NAME];

还原数据

1、导入数据库

impdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME] FULL=y;

如:

impdp andy/louse DIRECTORY=dpdata DUMPFILE=andylouse.dmp FULL=y;

2、导入时修改owner

impdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp TABLES=[USER_1].[TABLE_1] REMAP_SCHEMA=[USER_1]:[USER_2];

如:

impdp andy/louse DIRECTORY=dpdata DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:andy;

3、导入表空间

impdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp TABLESPACES=[TABLESPACE_1];

4、导到指定用户下

impdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp SCHEMAS=[USER_NAME];

5、追加数据

impdp [USER_NAME]/[PASSWORD] DIRECTORY=[DIRECTORY_NAME] DUMPFILE=[FILE_NAME].dmp SCHEMAS=[USER_NAME] TABLE_EXISTS_ACTION

如:

impdp andy/louse DIRECTORY=dpdata DUMPFILE=expdp.dmp SCHEMAS=andy TABLE_EXISTS_ACTION

参数释义

impdp

1、TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

  • SKIP:跳过已存在表处理下一个对象
  • APPEND:追加数据
  • TRUNCATE:截断表,然后为其追加新数据
  • REPLACE:删除已存在表,重建表且追加数据

注意:TRUNCATE选项不适用与簇表和NETWORK_LINK选项

2、REMAP_SCHEMA

将源方案的所有对象装载到目标方案中:

REMAP_SCHEMA=[SOURCE_SCHEMA]:[TARGET_SCHEMA]

3、REMAP_TABLESPACE

将源表空间的所有对象导入到目标表空间中:

REMAP_TABLESPACE=[SOURCE_TABLESPACE]:[TARGET_TABLESPACE]

4、REMAP_DATAFILE

将源数据文件名转变为目标数据文件名,一般用于在不同平台之间搬移表空间:

REMAP_DATAFIEL=[SOURCE_DATAFILE]:[TARGET_DATAFILE]

expdp

1、CONTENT

指定要导出的内容,默认值为ALL:

CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

  • ALL:导出对象定义及其所有数据
  • DATA_ONLY:只导出对象数据
  • METADATA_ONLY:只导出对象定义

2、DIRECTORY

指定转储文件和日志文件所在的目录:

DIRECTORY=[DIRECTORY_OBJECT]

3、EXCLUDE

指定执行操作时释放要排除对象类型或相关对象

EXCLUDE=[OBJECT_TYPE][:NAME_CLAUSE] [,….]

OBJECT_TYPE用于指定要排除的对象类型,NAME_CLAUSE用于指定要排除的具体对象

expdp scott/tiger DIRECTORY=dpdata DUMPFILE=andy.dup EXCLUDE=VIEW

注意:EXCLUDE和INCLUDE不能同时使用

4、INCLUDE

导出时包含指定的类型

  • INCLUDE=TABLE_DATA,
  • INCLUDE=TABLE:"LIKE 'TAB%'"
  • INCLUDE=TABLE:"NOT LIKE 'TAB%'"

5、FILESIZE

指定导出文件的最大尺寸,默认为0(没有限制,bytes)

6、JOB_NAME

此次导出进程使用的名称,方便跟踪查询

7、FLASHBACK_SCN

指定导出特定SCN时刻的表数据

  • FLASHBACK_SCN=scn_value

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523

注意:FLASHBACK_SCN和FLASHBACK_TIME不能同时使用

8、FLASHBACK_TIME

指定导出特定时间点的表数据

  • FLASHBACK_TIME="TO_TIMESTAMP[TIME_VALUE]"

expdp scott/tiger DIRECTORY=dump DUMPFILE=andy.dmp FLASHBACK_TIME="TO_TIMESTAMP('25-08-2004 14:35:00','DD-MM-YYYY HH24:MI:SS')"

9、TABLESPACE

指定导出表空间

10、QUERY=[SCHEMA.] [TABLE_NAME:] QUERY_CLAUSE

  • SCHEMA:指定方案名
  • TABLE_NAME:指定表名
  • QUERY_CLAUSE:指定条件限制子句

expdp scott/tiger DIRECTORY=dpdata DUMPFILE=andy.dmp TABLES=emp query='WHERE name=andy'

注意:QUERY选项不能与 CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES 等选项同时使用

11、PARALLEL

  • 指定执行导出操作的并行进程个数,默认值为1
  • 每个进程创建一个单独的转储文件,因此参数DUMPFILE应当拥有和并行度一样多的项目
  • 最好指定通配符作为文件名,而不是显式地输入各个文件名

如:

expdp andy/louse tables=CASES DIRECTORY=dpdata DUMPFILE=expCASES_%U.dmp PARALLEL=4 job_name=Cases_Export

解说:

  • 通配符%U,表示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn 从01 开始,然后按需要向上增加
  • 当维护 Data Pump 作业相关的开销超过并行线程的效益时,分离访问数据文件和转储目录文件系统的输入/输出通道就变得非常重要
赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏