一 EXPDP 和IMPDP 使用说明

Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用
1)实现逻辑备份和逻辑恢复.
2)在数据库用户之间移动对象.
3)在数据库之间移动对象
4)实现表空间搬移.

数据泵目录的创建与授权

SQL> create directory chen_dir as '/home/oracle/chen';
目录已创建
SQL> grant read,write on directory chen_dir to scott;
授权成功。
SQL> revoke read,write on directory chen_dir from scott;
撤销成功。
SQL> grant read,write on directory chen_dir to chen;
授权成功。

SQL> col owner for a5
SQL> col directory_name for a15
SQL> col directory_path for a40
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- --------------- ----------------------------------------
SYS ADMIN_DIR /ade/aime_10.2_lnx_push/oracle/md/admin
SYS DATA_PUMP_DIR /opt/oracle/product/10.2.0/rdbms/log/
SYS WORK_DIR /ade/aime_10.2_lnx_push/oracle/work
SYS CHEN_DIR /home/oracle/chen

数据泵导出

数据泵导出包括:

  • 1 导出表
  • 2 导出方案
  • 3 导出表空间
  • 4 导出数据库

1 数据泵按表导出导入

[oracle@localhost ~]$ expdp chen/chen directory=chen_dir tables=dept dumpfile=deptcc.dmp
Export: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 11:05:24
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39002: 操作无效
ORA-39070: 无法打开日志文件。
ORA-29283: 文件操作无效
ORA-06512: 在 "SYS.UTL_FILE", line 475
ORA-29283: 文件操作无效
[oracle@localhost ~]$ mkdir chen
[oracle@localhost chen]$ expdp chen/chen directory=chen_dir tables=dept dumpfile=deptcc.dmp
Export: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 11:05:39
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "CHEN"."SYS_EXPORT_TABLE_01": chen/******** directory=chen_dir tables=dept dumpfile=deptcc.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "CHEN"."DEPT" 5.656 KB 4 行
已成功加载/卸载了主表 "CHEN"."SYS_EXPORT_TABLE_01"
******************************************************************************
CHEN.SYS_EXPORT_TABLE_01 的转储文件集为:
/home/oracle/chen/deptcc.dmp
作业 "CHEN"."SYS_EXPORT_TABLE_01" 已于 11:05:55 成功完成
SQL> conn chen/chen
已连接。
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> drop table dept purge;
表已删除。
SQL> select * from dept;
select * from dept
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
[oracle@localhost chen]$ impdp chen/chen directory=chen_dir tables=dept dumpfile=deptcc.dmp
Import: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 11:11:46
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "CHEN"."SYS_IMPORT_TABLE_01"
启动 "CHEN"."SYS_IMPORT_TABLE_01": chen/******** directory=chen_dir tables=dept dumpfile=deptcc.dmp
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "CHEN"."DEPT" 5.656 KB 4 行
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "CHEN"."SYS_IMPORT_TABLE_01" 已于 11:11:49 成功完成
SQL> conn chen/chen
已连接。
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

2 按方案( 用户) 导出

[oracle@localhost chen]$ expdp chen/chen directory=chen_dir schemas=chen dumpfile=chen.dmp
Export: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 13:11:12
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "CHEN"."SYS_EXPORT_SCHEMA_01": chen/******** directory=chen_dir schemas=chen dumpfile=chen.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 24.43 MB
处理对象类型 SCHEMA_EXPORT/USER
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "CHEN"."T1" 16.76 MB 640000 行
. . 导出了 "CHEN"."TT" 1.785 MB 100000 行
. . 导出了 "CHEN"."T2" 274.2 KB 10000 行
. . 导出了 "CHEN"."T3" 274.2 KB 10000 行
. . 导出了 "CHEN"."A1" 7.820 KB 14 行
. . 导出了 "CHEN"."A2" 5.656 KB 4 行
. . 导出了 "CHEN"."DEPT" 5.656 KB 4 行
. . 导出了 "CHEN"."DEPT10" 7.382 KB 3 行
. . 导出了 "CHEN"."DEPT20" 7.460 KB 5 行
. . 导出了 "CHEN"."DEPT30" 7.515 KB 6 行
. . 导出了 "CHEN"."EMP" 7.828 KB 14 行
. . 导出了 "CHEN"."EMP0" 7.828 KB 14 行
. . 导出了 "CHEN"."EMP1" 7.382 KB 3 行
. . 导出了 "CHEN"."SALGRADE" 5.585 KB 5 行
. . 导出了 "CHEN"."U" 7.507 KB 6 行
已成功加载/卸载了主表 "CHEN"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
CHEN.SYS_EXPORT_SCHEMA_01 的转储文件集为:
/home/oracle/chen/chen.dmp
作业 "CHEN"."SYS_EXPORT_SCHEMA_01" 已于 13:11:26 成功完成
#### **3** **按表空间导出**
SQL> chen/chen
已连接。
SQL> select default_tablespace from user_users;
DEFAULT_TABLESPACE
------------------------------
USERS
[oracle@localhost chen]$ expdp chen/chen directory=chen_dir dumpfile=chentabl.dmp logfile=tabl.log tablespaces=users
Export: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 13:17:21
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "CHEN"."SYS_EXPORT_TABLESPACE_01": chen/******** directory=chen_dir dumpfile=chentabl.dmp logfile=tabl.log tablespaces=users
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 4.829 GB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/COMMENT
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/TRIGGER
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "REMS"."BM_TRANS" 693.4 MB 2066949 行
. . 导出了 "KASYS"."HISTRAN" 58.28 KB 160 行
. . 导出了 "KASYS_CMS"."HISTRAN" 45.01 KB 106 行
. . 导出了 "NEWCARD"."HISTRAN" 28.82 KB 39 行
. . 导出了 "KASYS_CMS"."CARDACCT" 24.23 MB 150240 行
…………..
已成功加载/卸载了主表 "CHEN"."SYS_EXPORT_TABLESPACE_01"
******************************************************************************
CHEN.SYS_EXPORT_TABLESPACE_01 的转储文件集为:
/home/oracle/chen/chentabl.dmp
作业 "CHEN"."SYS_EXPORT_TABLESPACE_01" 已于 13:35:36 成功完成

4 全库导出

[oracle@localhost chen]$ expdp chen/chen directory=chen_dir dumpfile=full.dmp logfile=full.log full=y
注:如果提示用户没有相应的权限,给用户相应的权限或使用system来做全库导出 。
SQL> grant exp_full_database to chen;
Export: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 13:40:35
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "CHEN"."SYS_EXPORT_FULL_01": chen/******** directory=chen_dir dumpfile=full.dmp logfile=full.log full=y
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 4.847 GB
处理对象类型 DATABASE_EXPORT/TABLESPACE
处理对象类型 DATABASE_EXPORT/PROFILE
处理对象类型 DATABASE_EXPORT/SYS_USER/USER
……………
已成功加载/卸载了主表 "CHEN"."SYS_EXPORT_FULL_01"
******************************************************************************
CHEN.SYS_EXPORT_FULL_01 的转储文件集为:
/home/oracle/chen/full.dmp
作业 "CHEN"."SYS_EXPORT_FULL_01" 已于 13:58:44 成功完成

数据泵导入

数据泵导入包括:

  • 1 导入表
  • 2 导入方案
  • 3 导入表空间
  • 4 导入数据库

1 Impdp 按表导入

SQL> conn chen/chen
已连接。
SQL> drop table dept purge;
表已删除。
[oracle@localhost chen]$ impdp chen/chen directory=chen_dir dumpfile=full.dmp ta
bles=chen.dept remap_schema=chen:chen
Import: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 14:14:45
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "CHEN"."SYS_IMPORT_TABLE_01"
启动 "CHEN"."SYS_IMPORT_TABLE_01": chen/******** directory=chen_dir dumpfile=full.dmp tables=chen.dept remap_schema=chen:chen
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
. . 导入了 "CHEN"."DEPT" 5.656 KB 4 行
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
作业 "CHEN"."SYS_IMPORT_TABLE_01" 已于 14:16:09 成功完成

2 按方案( 用户) 导入

SQL> create user test identified by test;
用户已创建。
SQL> grant connect,resource to test;
授权成功。
SQL> alter user test account unlock;
用户已更改。
[oracle@localhost chen]$ impdp chen/chen directory=chen_dir dumpfile=full.dmp sc
hemas=chen remap_schema=chen:test
Import: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 14:35:47
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "CHEN"."SYS_IMPORT_SCHEMA_01"
启动 "CHEN"."SYS_IMPORT_SCHEMA_01": chen/******** directory=chen_dir dumpfile=full.dmp schemas=chen remap_schema=chen:test
处理对象类型 DATABASE_EXPORT/SCHEMA/USER
ORA-31684: 对象类型 USER:"TEST" 已存在
处理对象类型 DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/ROLE_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
处理对象类型 DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
. . 导入了 "TEST"."T1" 16.76 MB 640000 行
. . 导入了 "TEST"."TT" 1.785 MB 100000 行
. . 导入了 "TEST"."T2" 274.2 KB 10000 行
. . 导入了 "TEST"."T3" 274.2 KB 10000 行
. . 导入了 "TEST"."A1" 7.820 KB 14 行
. . 导入了 "TEST"."A2" 5.656 KB 4 行
. . 导入了 "TEST"."DEPT" 5.656 KB 4 行
. . 导入了 "TEST"."DEPT10" 7.382 KB 3 行
. . 导入了 "TEST"."DEPT20" 7.460 KB 5 行
. . 导入了 "TEST"."DEPT30" 7.515 KB 6 行
. . 导入了 "TEST"."EMP" 7.828 KB 14 行
. . 导入了 "TEST"."EMP0" 7.828 KB 14 行
. . 导入了 "TEST"."EMP1" 7.382 KB 3 行
. . 导入了 "TEST"."SALGRADE" 5.585 KB 5 行
. . 导入了 "TEST"."U" 7.507 KB 6 行
处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/FUNCTION
处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
作业 "CHEN"."SYS_IMPORT_SCHEMA_01" 已经完成, 但是有 1 个错误 (于 14:37:04 完成)

出现一个错误:因为用户test 已经存在,不需要额外创建

[oracle@localhost chen]$ impdp chen/chen directory=chen_dir dumpfile=full.dmp sc
hemas=chen remap_schema=chen:chen008

其中数据库中没有chen008 用户,导入时自动创建用户chen008, 其权限,默认表空间和用户chen 相同
如果要将表导入到其他方案中, 必须指定REMAP SCHEMA 选项.

Import: Release 10.2.0.1.0 - Production on 星期四, 23 4月, 2015 14:41:27
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "CHEN"."SYS_IMPORT_SCHEMA_01"
启动 "CHEN"."SYS_IMPORT_SCHEMA_01": chen/******** directory=chen_dir dumpfile=full.dmp schemas=chen remap_schema=chen:chen008
处理对象类型 DATABASE_EXPORT/SCHEMA/USER
处理对象类型 DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/ROLE_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
处理对象类型 DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
. . 导入了 "CHEN008"."T1" 16.76 MB 640000 行
. . 导入了 "CHEN008"."TT" 1.785 MB 100000 行
. . 导入了 "CHEN008"."T2" 274.2 KB 10000 行
. . 导入了 "CHEN008"."T3" 274.2 KB 10000 行
. . 导入了 "CHEN008"."A1" 7.820 KB 14 行
. . 导入了 "CHEN008"."A2" 5.656 KB 4 行
. . 导入了 "CHEN008"."DEPT" 5.656 KB 4 行
. . 导入了 "CHEN008"."DEPT10" 7.382 KB 3 行
. . 导入了 "CHEN008"."DEPT20" 7.460 KB 5 行
. . 导入了 "CHEN008"."DEPT30" 7.515 KB 6 行
. . 导入了 "CHEN008"."EMP" 7.828 KB 14 行
. . 导入了 "CHEN008"."EMP0" 7.828 KB 14 行
. . 导入了 "CHEN008"."EMP1" 7.382 KB 3 行
. . 导入了 "CHEN008"."SALGRADE" 5.585 KB 5 行
. . 导入了 "CHEN008"."U" 7.507 KB 6 行
处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/FUNCTION
处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
作业 "CHEN"."SYS_IMPORT_SCHEMA_01" 已于 14:43:02 成功完成
SQL> conn /as sysdba
已连接。
SQL> alter user chen008 identified by chen008;
用户已更改。

3 按表空间导入

[oracle@localhost chen]$ impdp chen/chen directory=chen_dir dumpfile=full.dmp tablespace=users

4 按库导入

[oracle@localhost chen]$ impdp chen/chen directory=chen_dir dumpfile=full.dmp full=y
参考:
http://blog.csdn.net/jojo52013145/article/details/7966047

作者:chenoracle

最后修改:2022 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏