oracle pump expdp impdp初试
用expdp或impdp命令时, 可暂不指出用户名/密码@实例名 as 身份, 然后根据提示再输入, 如:
host expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一. 创建逻辑目录, 该命令不会在操作系统创建真正的目录. 最好以system等管理员创建.
create directory dpdata1 as 'd:/test/dump';
二. 查看管理理员目录(同时查看操作系统是否存在, 因为Oracle并不关心该目录是否存在, 如果不存在, 则出错.)
select * from dba_directories;
三. 给scott用户赋予在指定目录的操作权限, 最好以system等管理员赋予.
grant read, write on directory dpdata1 to scott;
四. 导出数据
1)按用户导
host expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp
DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp
parallel=40 job_name=scott3
3)按表名导
host expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp
DIRECTORY=dpdata1;
4)按查询条件导
host expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp
Tables=emp query='WHERE deptno=20';
5)按表空间导
host expdp system/manager DIRECTORY=dpdata1
DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
host expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp
FULL=y;
五. 还原数据
1)导到指定用户下
host impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
SCHEMAS=scott;
2)改变表的owner
host impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
host impdp system/manager DIRECTORY=dpdata1
DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
host impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp
FULL=y;
5)追加数据
host impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
SCHEMAS=system TABLE_EXISTS_ACTION=append;
from:http://www.blogjava.net/javaex/articles/218519.html
-----------------------------------------------------------------------------------------------------------------
SQL> conn scott/tiger
已连接。
SQL> select object_name from user_objects;
OBJECT_NAME
--------------------------------------------------------------------------------
BONUS
DEPT
EMP
PK_DEPT
PK_EMP
SALGRADE
已选择6行。
SQL> create directory c1 as 'd:/temp';
create directory c1 as 'd:/temp'
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> conn / as sysdba
已连接。
SQL> grant create directory to scott;
grant create directory to scott
*
第 1 行出现错误:
ORA-00990: 权限缺失或无效
SQL> grant create any directory to scott;
授权成功。
SQL> conn scott/tiger
已连接。
SQL> create directory c1 as 'd:/temp';
目录已创建。
SQL> conn / as sysdba
已连接。
SQL> select * from dba_directories;
D:/>expdp scott/tiger directory=c1 dumpfile=scott.dmp
Export: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:09:11
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
启动 "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=c1 dumpfile=scott.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
处理对象类型 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/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行
. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行
. . 导出了 "SCOTT"."SALGRADE" 5.585 KB 5 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01 的转储文件集为:
D:/TEMP/SCOTT.DMP
作业 "SCOTT"."SYS_EXPORT_SCHEMA_01" 已于 16:09:45 成功完成
D:/>
注意以下两个测试导出结果不同!
1.
D:/>expdp scott/tiger directory=c1 dumpfile=scott4.dmp tables=scott.dept query=dept:/"WHERE deptno in(
20)/"
Export: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:30: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
启动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=c1 dumpfile=scott4.dmp tables=scott.dept
query=dept:"WHERE deptno in(20)"
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.585 KB 1 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
D:/TEMP/SCOTT4.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 16:30:37 成功完成
2.
D:/>expdp scott/tiger directory=c1 dumpfile=scott5.dmp query=dept:/"WHERE deptno in(20)/"
Export: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:31:16
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
启动 "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=c1 dumpfile=scott5.dmp query=dept:"WHER
E deptno in(20)"
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
处理对象类型 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/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.585 KB 1 行
. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行
. . 导出了 "SCOTT"."SALGRADE" 5.585 KB 5 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01 的转储文件集为:
D:/TEMP/SCOTT5.DMP
作业 "SCOTT"."SYS_EXPORT_SCHEMA_01" 已于 16:31:44 成功完成
D:/>
3.
再看一个特殊的导出:当前盘符是 C: ,生成的导出文件路径没有指定,默认情况下,生成的pump文件保存在创建的directory c1中!
C:/>expdp scott/tiger directory=c1 dumpfile=scott7.dmp tables=scott.dept query=dept:/"WHERE deptno=20/
"
Export: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 18:45: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
启动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=c1 dumpfile=scott7.dmp tables=scott.dept
query=dept:"WHERE deptno=20"
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.585 KB 1 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
D:/TEMP/SCOTT7.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 18:45:40 成功完成
C:/>
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
导入测试:
C:/>impdp scott/tiger directory=c1 dumpfile='d:/temp/scott4.dmp' schemas=test
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:37:49
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-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39088: 文件名不能包含路径说明
pump文件位置不需要指出,impdp程序会自动去之前创建的directory中查找impdp命令中指定的文件名是否存在!
C:/>sqlplus test2/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 19:01:28 2010
Copyright (c) 1982, 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
SQL> select object_name from user_objects;
未选定行
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:/>impdp test2/test directory=c1 dumpfile=scott7.dmp
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 19:02: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
已成功加载/卸载了主表 "TEST2"."SYS_IMPORT_FULL_01"
启动 "TEST2"."SYS_IMPORT_FULL_01": test2/******** directory=c1 dumpfile=scott7.dmp
处理对象类型 TABLE_EXPORT/TABLE/TABLE
ORA-39151: 表 "SCOTT"."DEPT" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "TEST2"."SYS_IMPORT_FULL_01" 已经完成, 但是有 1 个错误 (于 19:02:35 完成)
C:/>impdp test2/test directory=c1 dumpfile=scott7.dmp remap_schema=scott:test2
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 19:03:23
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
已成功加载/卸载了主表 "TEST2"."SYS_IMPORT_FULL_01"
启动 "TEST2"."SYS_IMPORT_FULL_01": test2/******** directory=c1 dumpfile=scott7.dmp remap_schema=scott
:test2
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "TEST2"."DEPT" 5.585 KB 1 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "TEST2"."SYS_IMPORT_FULL_01" 已于 19:03:33 成功完成
C:/>sqlplus test2/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 19:03:42 2010
Copyright (c) 1982, 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
SQL> select object_name from user_objects;
OBJECT_NAME
--------------------------------------------------------------------------------
DEPT
PK_DEPT
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
20 RESEARCH DALLAS
SQL>
C:/>d:
D:/>cd temp
D:/TEMP>impdp scott/tiger directory=c1 dumpfile='scott4.dmp' schemas=test
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:38:16
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-39165: 未找到方案 TEST。
D:/TEMP>impdp scott/tiger directory=c1 dumpfile='scott4.dmp' remap_schema=scott:test;
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:39:22
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-31631: 需要权限
ORA-39122: 未授权的用户不能执行 REMAP_SCHEMA 重新映射。
D:/TEMP>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 16:39:49 2010
Copyright (c) 1982, 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
SQL> grant read,write on directory c1 to test;
授权成功。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
D:/TEMP>impdp scott/tiger directory=c1 dumpfile='scott4.dmp' remap_schema=scott:test;
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:40:14
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-31631: 需要权限
ORA-39122: 未授权的用户不能执行 REMAP_SCHEMA 重新映射。
D:/TEMP>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 16:42:18 2010
Copyright (c) 1982, 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
SQL> grant imp_full_Database to test;
授权成功。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
D:/TEMP>impdp scott/tiger directory=c1 dumpfile='scott4.dmp' remap_schema=scott:test;
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:42:37
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-31631: 需要权限
ORA-39122: 未授权的用户不能执行 REMAP_SCHEMA 重新映射。
D:/TEMP>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 16:43:41 2010
Copyright (c) 1982, 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
SQL> grant imp_full_Database to scott;
授权成功。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
D:/TEMP>impdp scott/tiger directory=c1 dumpfile='scott4.dmp' remap_schema=scott:test;
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:43:57
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
已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_FULL_01"
启动 "SCOTT"."SYS_IMPORT_FULL_01": scott/******** directory=c1 dumpfile='scott4.dmp' remap_schema=sco
tt:test;
处理对象类型 TABLE_EXPORT/TABLE/TABLE
ORA-39083: 对象类型 TABLE 创建失败, 出现错误:
ORA-01918: 用户 'TEST;' 不存在
失败的 sql 为:
CREATE TABLE "TEST;"."DEPT" ("DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13)) PCTFREE 1
0 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS
1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "U
SERS"
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-39112: 跳过从属对象类型 INDEX:"TEST;"."PK_DEPT", 创建基本对象类型 TABLE:"TEST;"."DEPT" 失败
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ORA-39112: 跳过从属对象类型 CONSTRAINT:"TEST;"."PK_DEPT", 创建基本对象类型 TABLE:"TEST;"."DEPT" 失败
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39112: 跳过从属对象类型 INDEX_STATISTICS, 创建基本对象类型 INDEX:"TEST;"."PK_DEPT" 失败
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-39112: 跳过从属对象类型 TABLE_STATISTICS, 创建基本对象类型 TABLE:"TEST;"."DEPT" 失败
作业 "SCOTT"."SYS_IMPORT_FULL_01" 已经完成, 但是有 5 个错误 (于 16:43:59 完成)
D:/TEMP>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 17 16:44:20 2010
Copyright (c) 1982, 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
SQL> select object_name from user_objects;
未选定行
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
D:/TEMP>impdp test/test directory=c1 dumpfile='scott4.dmp' remap_schema=scott:test
Import: Release 10.2.0.1.0 - Production on 星期六, 17 7月, 2010 16:45:30
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
已成功加载/卸载了主表 "TEST"."SYS_IMPORT_FULL_01"
启动 "TEST"."SYS_IMPORT_FULL_01": test/******** directory=c1 dumpfile='scott4.dmp' remap_schema=scott
:test
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "TEST"."DEPT" 5.585 KB 1 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "TEST"."SYS_IMPORT_FULL_01" 已于 16:45:32 成功完成
D:/TEMP>