- 浏览: 45722 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (48)
- javaee (3)
- sql (11)
- oralce (11)
- sqlServer (5)
- j2me (0)
- 软件工程 (0)
- 设计模式 (1)
- 服务器 (4)
- web (9)
- ejb3.0 (0)
- spring (1)
- hibernate (0)
- struts2.0 (0)
- 生活 (0)
- c\c++ (0)
- c# (0)
- asp.net (0)
- SOA (0)
- 行业知识 (0)
- 软件测试 (0)
- freemarker (0)
- 数据库 (5)
- 表空间 (1)
- java (2)
- HTML <fieldset> 标签 (1)
- SSH启动tomcat步骤 (1)
- 网络操作问题 (0)
- andriod (7)
- ios (2)
- 证劵知识 (0)
- 新学习的东西 (0)
- 项目管理 (0)
- 创业 (0)
- 成长历程 (0)
- mysql (2)
- 项目管理工具 (0)
- 开发网页漏洞修复 (0)
- 服务器集群 (1)
- 系统集成 (0)
- html5 ipad (1)
- html5 (2)
- html (4)
- jquery (3)
- 常用网站 (1)
- liux (4)
- redis (1)
- jetty (1)
- myibatis (2)
- mac ios (1)
- 操作系统 (1)
- 项目仓库管理 (1)
- 小程序 (1)
- 微信 (1)
- vue (1)
- spring boot (1)
最新评论
逻辑备份工具----数据泵
使用专用的API导入导出数据,速度快
EXPDP只能用于服务器端,而不能用于客户端
一,导出,导入表
C:/Users/solo>sqlplus "/ as sysdba"
SQL> create directory dump_dir as 'c:/bak/dump';
目录已创建。
SQL> grant read,write on directory dump_dir to scott;
授权成功。
察看创建的目录:
SQL> SELECT * FROM dba_directories;
C:/Users/solo>expdp scott/scott directory=dump_dir dumpfile=dumptab.dmp logfile=scott.log tables=dept,emp
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.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: 文件操作无效
分析:说明我的c:/life盘里没有一个叫dump的文件夹,所以我必须首先在c:/life盘建一个文件夹叫dump;
C:/Users/solo>expdp scott/tiger directory=dump_dir dumpfile=dumptab.dmp logfile=scott.log tables=det,emp
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 11:17:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=dumptab.dmp logfile
scott.log tables=dept,emp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 128 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/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行
. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/LIFE/DUMP/DUMPTAB.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 11:17:38 成功完成
SQL> drop table scott. emp;
表已删除。
SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
C:/Users/solo>impdp scott/scott directory=dump_dir dumpfile=dumptab.dmp tables=emp
Import: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 11:23:54
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_TABLE_01"
启动 "SCOTT"."SYS_IMPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=dumptab.dmp tables=e
mp
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SCOTT"."EMP" 7.820 KB 14 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "SCOTT"."SYS_IMPORT_TABLE_01" 已于 11:24:00 成功完成
注意:IMPDP时候,如果表在数据库里存在,那么需要加上参数table_exists_action=replace (impdp help=y)
在9i中,imp时候,如果表在数据库里存在,那么需要加上参数ignore=y
SQL> desc scott.emp;
名称 是否为空? 类型
----------------------------------------- -------- --------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
二,导出方案
C:/Users/solo>expdp scott/scott directory=dump_dir dumpfile=dumpscott.dmp schemas=scott
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 12:32:03
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=dump_dir dumpfile=dumpscott.dmp schem
as=scott
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 256 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.656 KB 10 行
. . 导出了 "SCOTT"."SOLO_LI" 5.75 KB 8 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01 的转储文件集为:
C:/LIFE/DUMP/DUMPSCOTT.DMP
作业 "SCOTT"."SYS_EXPORT_SCHEMA_01" 已于 12:32:26 成功完成
三,导出表空间
C:/Users/solo>expdp scott/scott tablespaces=users directory=dump_dir dumpfile=users.dmp
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 12:41:25
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_TABLESPACE_01": scott/******** tablespaces=users directory=dump_dir dumpfi
le=users.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 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/COMMENT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行
. . 导出了 "SCOTT"."SALGRADE" 5.656 KB 10 行
. . 导出了 "SCOTT"."SOLO_LI" 5.75 KB 8 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLESPACE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLESPACE_01 的转储文件集为:
C:/LIFE/DUMP/USERS.DMP
四,导出整个数据库
C:/Users/solo>expdp system/jiaohua directory=dump_dir dumpfile=full.dmp full=y
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_OBJECTS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_PARMS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_REFGROUPS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_SITES" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_TARGETS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_USER_AUTHORIZATIONS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_USER_PARM_VALUES" 0 KB 0 行
. . 导出了 "SYSTEM"."SQLPLUS_PRODUCT_PROFILE" 0 KB 0 行
. . 导出了 "TSMSYS"."SRS$" 0 KB 0 行
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01"
******************************************************************************
SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为:
C:/LIFE/DUMP/FULL.DMP
作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已于 12:46:40 成功完成
注意:普通用户做全库导出,需要有这个权限:
SQL> grant exp_full_database to scott;
五,并行导出
设置PARALLEL可以并行导出,导出时每个线程创建一个单独的导出文件,因此选项dumpfile应该拥有和并行线程一样多的文件
-----拥有一个通配符%U ,他指定了新创建的文件名格式为full23_xx.dmp ,其中xx从01开始,按02,03一次增加
C:/Users/solo>expdp system/jiaohua full=y directory=dump_dir dumpfile=full23_%u.dmp parallel=4
处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/TYPE_BODY
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_TABLE_ACTION
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TRIGGER
处理对象类型 DATABASE_EXPORT/SCHEMA/VIEW/TRIGGER
处理对象类型 DATABASE_EXPORT/SCHEMA/JOB
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCACT_INSTANCE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCDEPOBJ
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJ
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01"
******************************************************************************
SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为:
C:/LIFE/DUMP/FULL23_01.DMP
C:/LIFE/DUMP/FULL23_02.DMP
C:/LIFE/DUMP/FULL23_03.DMP
C:/LIFE/DUMP/FULL23_04.DMP
作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已于 12:52:39 成功完成
关于这个选项,有4个参数,分别为 skip、append、truncate、replace
skip 是如果已存在表,则跳过并处理下一个对象;
append是保留原有数据,增加增量数据;
truncate是截断表,然后为其增加新数据;
replace是删除已存在表,重新建表并追加数据。
eg:
1.将表从e用户导入到system用户下:
expdp e/e directory=dump_e dumpfile=a1.dmp tables=t
方法一:
impdp system/oracle tables=scott.emp directory=dump_dir dumpfile=e.dmp remap_schema=scott:system
方法二:sql>grant imp_full_database to e;
impdp e/e directory=dump_e dumpfile=a1.dmp tables=t remap_schema=e:system table_exists_action=replace
2.将e方案下的内容导入到system用户下:
expdp e/e directory=dump_e dumpfile=a2.dmp schemas=e
impdp e/e directory=dump_e dumpfile=a2.dmp remap_schema=e:system table_exists_action=replace
3.并行导入:
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
查询目录:dba_directories
datapump是服务器端的JOB,所以可以在执行datapump以后,通过EXIT_CLIENT退出客户端。通过DBA_DATAPUMP_JOBS视图可以检查datapump作业的情况,也可以利用ATTACH重新连接上还在进行的JOB。每个datapump可以通过JOB_NAME参数指定名称,如果不指定,那么会有默认的名称,比如上贴中的例子,名称就是SYS_EXPORT_TABLE_01,通过V$SESSION_LONGOPS也可以查看长时间运行的datapump job的具体内容。
SQL> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME
------------------------------ ------------------------------
OPERATION
------------------------------------------------------------
JOB_MODE
------------------------------------------------------------
STATE DEGREE ATTACHED_SESSIONS DATAPU
------------------------------ ---------- ----------------- ------
SCOTT SYS_IMPORT_SCHEMA_01
IMPORT
SCHEMA
EXECUTING 3 1
前台进程的会话 SID:
select sid, serial#
from v$session s, dba_datapump_sessions d
where s.saddr = d.saddr;
这条指令显示前台进程的会话。更多有用的信息可以从警报日志中获得:
kupprdp: worker process DW01 started with worker id=1, pid=26, OS id=2900
to execute - SYS.KUPW$WORKER.MAIN('SYS_IMPORT_SCHEMA_01', 'SCOTT');
kupprdp: worker process DW02 started with worker id=2, pid=27, OS id=3596
to execute - SYS.KUPW$WORKER.MAIN('SYS_IMPORT_SCHEMA_01', 'SCOTT');
Sat Apr 03 12:02:47 2010
The value (30) of MAXTRANS parameter ignored.
kupprdp: master process DM00 started with pid=22, OS id=732
to execute - SYS.KUPM$MCP.MAIN('SYS_EXPORT_SCHEMA_01', 'SCOTT', 'KUPC$C_1_20100403120247', 'KUPC$S_1_20100403120247', 0);
它显示为数据泵操作启动的会话的 PID。您可以用以下查询找到实际的 SID:
select sid, program from v$session where paddr in
(select addr from v$process where pid in (22,23));
可以大致的监控到expdp, impdp备份进行的程度
SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE '%EXP%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK;
数据泵expdp参数:
1.content: 该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
expdp scott/tiger schemas=scott content=all
expdp scott/tiger tables=emp content=data_only directory=dump_dir dumpfile=a3.dmp(只导出对象数据)
expdp scott/tiger tables=emp content=metadata_only directory=dump_dir dumpfile=a4.dmp(只有定义信息)
2.ESTIMATE: 指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
expdp scott/tiger tables=emp directory=dump_dir dumpfile=a5.dmp estimate=statistics
. 预计为 "SCOTT"."EMP" 8.140 KB
使用 STATISTICS 方法的总估计: 8.140 KB
expdp scott/tiger tables=emp directory=dump_dir dumpfile=a6.dmp estimate=blocks
. 预计为 "SCOTT"."EMP" 64 KB
3.EXTIMATE_ONLY:指定是否只估算导出作业所占用的磁盘空间,默认值为N
expdp scott/tiger schemas=scott estimate_only=y 设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Export: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 14:48: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
启动 "SCOTT"."SYS_EXPORT_SCHEMA_02": scott/******** schemas=scott estimate_only
=y
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. 预计为 "SCOTT"."SYS_EXPORT_SCHEMA_01" 192 KB
. 预计为 "SCOTT"."DEPT" 64 KB
. 预计为 "SCOTT"."EMP" 64 KB
. 预计为 "SCOTT"."SALGRADE" 64 KB
. 预计为 "SCOTT"."TEST" 64 KB
. 预计为 "SCOTT"."BONUS" 0 KB
. 预计为 "SCOTT"."MLOG$_EMP" 0 KB
. 预计为 "SCOTT"."PARTS" 0 KB
使用 BLOCKS 方法的总估计: 448 KB
4.EXCLUDE:该选项用于指定执行操作时释放要排除对象类型或相关对象
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
expdp scott/tiger schemas=scott exclude=view dumpfile=a9.dmp
5.FILESIZE:指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
6.flashback_scn: 前提闪回功能开启
expdp scott/tiger tables=emp dumpfile=e2.dmp flashback_scn=4284715 ---->如果闪回的时间点该对象结构发生变化,将报错(比如该对象没有创建或者ddl操作)
ORA-31693: 表数据对象 "SCOTT"."EMP" 无法加载/卸载并且被跳过, 错误如下:
ORA-02354: 导出/导入数据时出错
ORA-01466: 无法读取数据 - 表定义已更改
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/ADMIN/SOLO/DPDUMP/E2.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已经完成, 但是有 1 个错误 (于 15:21:36 完成)
7.FLASHBACK_TIME:指定导出特定时间点的表数据
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME="TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)"
windows下:
C:/Documents and Settings/Administrator>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=a.dmp flashback_time=/"TO_TIMESTAMP('06-04-2010 11:24:26', 'DD-MM-YYYY HH24:MI:SS')/"
数据泵impdp参数:
1,REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.
REMAP_DATAFIEL=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_dir 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’
调用IMPDP
1, 导入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.
注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system
3,导入表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
SQL> show user
USER 为 "SCOTT"
SQL>
SQL> create table range (a int,b varchar2(30)) partition by range(a)
2 (partition p1 values less than (10),
3 partition p2 values less than (20),
4 partition p3 values less than (30)
5 );
表已创建。
SQL> insert into range values(9,'aa');
已创建 1 行。
SQL> insert into range values(12,'aa');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from range;
A B
---------- ------------------------------
9 aa
12 aa
导出某个分区表的分区:
>exp scott/tiger file=c:/bak/fq.dmp tables=range:p1
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
. . 正在导出表 RANGE
. . 正在导出分区 P1导出了 1 行
成功终止导出, 没有出现警告。
expdp directory=dump_dir dumpfile=t_tt.dp tables=scott.emp,scott.range
Export: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 16:21:45
Copyright (c) 2003, 2005, Oracle. All rights reserved.
用户名: sys as sysdba
口令:
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYS"."SYS_EXPORT_TABLE_01": sys/******** AS SYSDBA directory=dump_dir dum
pfile=t_tt.dp tables=scott.emp,scott.range
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 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"."EMP" 7.367 KB 3 行
. . 导出了 "SCOTT"."RANGE":"P1" 5.234 KB 1 行
. . 导出了 "SCOTT"."RANGE":"P2" 5.234 KB 1 行
. . 导出了 "SCOTT"."RANGE":"P3" 0 KB 0 行
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/BAK/DUMP/T_TT.DP
作业 "SYS"."SYS_EXPORT_TABLE_01" 已于 16:22:04 成功完成
eg2: 分区表从scott用户导入到system用户
>expdp scott/tiger directory=DUMP_DIR dumpfile=Article_Detail_20W.dmp tables=range content=DATA_ONLY parallel=2
port: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 22:04:12
pyright (c) 2003, 2005, Oracle. All rights reserved.
接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
th the Partitioning, OLAP and Data Mining options
动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=DUMP_DIR dumpfile=
ticle_Detail_20W.dmp tables=range content=DATA_ONLY parallel=2
在使用 BLOCKS 方法进行估计...
理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
用 BLOCKS 方法的总估计: 128 KB
. 导出了 "SCOTT"."RANGE":"P1" 5.234 KB 1 行
. 导出了 "SCOTT"."RANGE":"P2" 5.234 KB 1 行
. 导出了 "SCOTT"."RANGE":"P3" 0 KB 0 行
成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
****************************************************************************
OTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/BAK/DUMP/ARTICLE_DETAIL_20W.DMP
业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 22:04:54 成功完成
SQL> conn system/oracle
已连接。
SQL> create table range (a int,b varchar2(30));
表已创建。
>impdp scott/tiger directory=DUMP_DIR remap_schema=scott:system dumpfile=Article_Detail_20W.dmp table_exists_action=APPEND parallel=2
Import: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 22:28:42
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=DUMP_DIR remap_sche
ma=scott:system dumpfile=Article_Detail_20W.dmp table_exists_action=APPEND paral
lel=2
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SYSTEM"."RANGE":"P1" 5.234 KB 1 行
. . 导入了 "SYSTEM"."RANGE":"P2" 5.234 KB 1 行
. . 导入了 "SYSTEM"."RANGE":"P3" 0 KB 0 行
作业 "SCOTT"."SYS_IMPORT_FULL_01" 已于 22:28:51 成功完成
SQL> select * from range;
A B
---------- ------------------------------
9 aa
12 aa
一.ORA-39006: Metadata processing is not available
方法一:
Cause: The Data Pump could not use the Metadata API. Typically, this is caused by the XSL stylesheets not being set up properly.
Action: Connect AS SYSDBA and execute dbms_metadata_util.load_stylesheets to reload the stylesheets.
1.select * from dba_objects
where object_name='DBMS_DATAPUMP';
没有内容就执行以下包
2.exec sys.dbms_metadata_util.load_stylesheets
方法二:
ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-00942: table or view does not exist
ORA-39097: Data Pump job encountered unexpected error -942
ACTION PLAN
===========
1.
SQL >@ $ORACLE_HOME/rdbms/admin/catdph.sql
2.
SQL >@ $ORACLE_HOME/rdbms/admin/prvtdtde.plb
3.
SQL >@ $ORACLE_HOME/rdbms/admin/catdpb.sql
4.
SQL >@ $ORACLE_HOME/rdbms/admin/dbmspump.sql
5.
SQL >@ $ORACLE_HOME/rdbms/admin/utlrp.sql
二.ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_SCHEMA_01 for user SYSTEM
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 600
ORA-39080: failed to create queues "KUPC$C_1_20071025205651" and "KUPC$S_1_20071025205651" for Data Pump job
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 1555
ORA-00832: no streams pool created and cannot automatically create one
解决方法如下:
SQL> show parameter stream
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
将streams_pool_size的值设置为非0,
SQL> alter system set streams_pool_size=10M scope=memory;
System altered.
三.ora-39139
ORA-39139: Data Pump does not support XMLSchema objects. TABLE_DATA:"UCS4"."RECEIVABLES_TABLE" will be skipped.
Total estimation using BLOCKS method: 0 KB
Tables with XML type columns are not supported until 11.1.0.6. To export that table, you need to use exp/imp not expdp/impdp.
使用专用的API导入导出数据,速度快
EXPDP只能用于服务器端,而不能用于客户端
一,导出,导入表
C:/Users/solo>sqlplus "/ as sysdba"
SQL> create directory dump_dir as 'c:/bak/dump';
目录已创建。
SQL> grant read,write on directory dump_dir to scott;
授权成功。
察看创建的目录:
SQL> SELECT * FROM dba_directories;
C:/Users/solo>expdp scott/scott directory=dump_dir dumpfile=dumptab.dmp logfile=scott.log tables=dept,emp
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.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: 文件操作无效
分析:说明我的c:/life盘里没有一个叫dump的文件夹,所以我必须首先在c:/life盘建一个文件夹叫dump;
C:/Users/solo>expdp scott/tiger directory=dump_dir dumpfile=dumptab.dmp logfile=scott.log tables=det,emp
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 11:17:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=dumptab.dmp logfile
scott.log tables=dept,emp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 128 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/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行
. . 导出了 "SCOTT"."EMP" 7.820 KB 14 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/LIFE/DUMP/DUMPTAB.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 11:17:38 成功完成
SQL> drop table scott. emp;
表已删除。
SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
C:/Users/solo>impdp scott/scott directory=dump_dir dumpfile=dumptab.dmp tables=emp
Import: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 11:23:54
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_TABLE_01"
启动 "SCOTT"."SYS_IMPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=dumptab.dmp tables=e
mp
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SCOTT"."EMP" 7.820 KB 14 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "SCOTT"."SYS_IMPORT_TABLE_01" 已于 11:24:00 成功完成
注意:IMPDP时候,如果表在数据库里存在,那么需要加上参数table_exists_action=replace (impdp help=y)
在9i中,imp时候,如果表在数据库里存在,那么需要加上参数ignore=y
SQL> desc scott.emp;
名称 是否为空? 类型
----------------------------------------- -------- --------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
二,导出方案
C:/Users/solo>expdp scott/scott directory=dump_dir dumpfile=dumpscott.dmp schemas=scott
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 12:32:03
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=dump_dir dumpfile=dumpscott.dmp schem
as=scott
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 256 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.656 KB 10 行
. . 导出了 "SCOTT"."SOLO_LI" 5.75 KB 8 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01 的转储文件集为:
C:/LIFE/DUMP/DUMPSCOTT.DMP
作业 "SCOTT"."SYS_EXPORT_SCHEMA_01" 已于 12:32:26 成功完成
三,导出表空间
C:/Users/solo>expdp scott/scott tablespaces=users directory=dump_dir dumpfile=users.dmp
Export: Release 10.2.0.3.0 - Production on 星期一, 28 7月, 2008 12:41:25
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SCOTT"."SYS_EXPORT_TABLESPACE_01": scott/******** tablespaces=users directory=dump_dir dumpfi
le=users.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 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/COMMENT
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT" 5.656 KB 4 行
. . 导出了 "SCOTT"."SALGRADE" 5.656 KB 10 行
. . 导出了 "SCOTT"."SOLO_LI" 5.75 KB 8 行
. . 导出了 "SCOTT"."BONUS" 0 KB 0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLESPACE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLESPACE_01 的转储文件集为:
C:/LIFE/DUMP/USERS.DMP
四,导出整个数据库
C:/Users/solo>expdp system/jiaohua directory=dump_dir dumpfile=full.dmp full=y
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_OBJECTS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_PARMS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_REFGROUPS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_SITES" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_TEMPLATE_TARGETS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_USER_AUTHORIZATIONS" 0 KB 0 行
. . 导出了 "SYSTEM"."REPCAT$_USER_PARM_VALUES" 0 KB 0 行
. . 导出了 "SYSTEM"."SQLPLUS_PRODUCT_PROFILE" 0 KB 0 行
. . 导出了 "TSMSYS"."SRS$" 0 KB 0 行
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01"
******************************************************************************
SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为:
C:/LIFE/DUMP/FULL.DMP
作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已于 12:46:40 成功完成
注意:普通用户做全库导出,需要有这个权限:
SQL> grant exp_full_database to scott;
五,并行导出
设置PARALLEL可以并行导出,导出时每个线程创建一个单独的导出文件,因此选项dumpfile应该拥有和并行线程一样多的文件
-----拥有一个通配符%U ,他指定了新创建的文件名格式为full23_xx.dmp ,其中xx从01开始,按02,03一次增加
C:/Users/solo>expdp system/jiaohua full=y directory=dump_dir dumpfile=full23_%u.dmp parallel=4
处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/TYPE_BODY
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_TABLE_ACTION
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TRIGGER
处理对象类型 DATABASE_EXPORT/SCHEMA/VIEW/TRIGGER
处理对象类型 DATABASE_EXPORT/SCHEMA/JOB
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCACT_INSTANCE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCDEPOBJ
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJ
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01"
******************************************************************************
SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为:
C:/LIFE/DUMP/FULL23_01.DMP
C:/LIFE/DUMP/FULL23_02.DMP
C:/LIFE/DUMP/FULL23_03.DMP
C:/LIFE/DUMP/FULL23_04.DMP
作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已于 12:52:39 成功完成
关于这个选项,有4个参数,分别为 skip、append、truncate、replace
skip 是如果已存在表,则跳过并处理下一个对象;
append是保留原有数据,增加增量数据;
truncate是截断表,然后为其增加新数据;
replace是删除已存在表,重新建表并追加数据。
eg:
1.将表从e用户导入到system用户下:
expdp e/e directory=dump_e dumpfile=a1.dmp tables=t
方法一:
impdp system/oracle tables=scott.emp directory=dump_dir dumpfile=e.dmp remap_schema=scott:system
方法二:sql>grant imp_full_database to e;
impdp e/e directory=dump_e dumpfile=a1.dmp tables=t remap_schema=e:system table_exists_action=replace
2.将e方案下的内容导入到system用户下:
expdp e/e directory=dump_e dumpfile=a2.dmp schemas=e
impdp e/e directory=dump_e dumpfile=a2.dmp remap_schema=e:system table_exists_action=replace
3.并行导入:
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
查询目录:dba_directories
datapump是服务器端的JOB,所以可以在执行datapump以后,通过EXIT_CLIENT退出客户端。通过DBA_DATAPUMP_JOBS视图可以检查datapump作业的情况,也可以利用ATTACH重新连接上还在进行的JOB。每个datapump可以通过JOB_NAME参数指定名称,如果不指定,那么会有默认的名称,比如上贴中的例子,名称就是SYS_EXPORT_TABLE_01,通过V$SESSION_LONGOPS也可以查看长时间运行的datapump job的具体内容。
SQL> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME
------------------------------ ------------------------------
OPERATION
------------------------------------------------------------
JOB_MODE
------------------------------------------------------------
STATE DEGREE ATTACHED_SESSIONS DATAPU
------------------------------ ---------- ----------------- ------
SCOTT SYS_IMPORT_SCHEMA_01
IMPORT
SCHEMA
EXECUTING 3 1
前台进程的会话 SID:
select sid, serial#
from v$session s, dba_datapump_sessions d
where s.saddr = d.saddr;
这条指令显示前台进程的会话。更多有用的信息可以从警报日志中获得:
kupprdp: worker process DW01 started with worker id=1, pid=26, OS id=2900
to execute - SYS.KUPW$WORKER.MAIN('SYS_IMPORT_SCHEMA_01', 'SCOTT');
kupprdp: worker process DW02 started with worker id=2, pid=27, OS id=3596
to execute - SYS.KUPW$WORKER.MAIN('SYS_IMPORT_SCHEMA_01', 'SCOTT');
Sat Apr 03 12:02:47 2010
The value (30) of MAXTRANS parameter ignored.
kupprdp: master process DM00 started with pid=22, OS id=732
to execute - SYS.KUPM$MCP.MAIN('SYS_EXPORT_SCHEMA_01', 'SCOTT', 'KUPC$C_1_20100403120247', 'KUPC$S_1_20100403120247', 0);
它显示为数据泵操作启动的会话的 PID。您可以用以下查询找到实际的 SID:
select sid, program from v$session where paddr in
(select addr from v$process where pid in (22,23));
可以大致的监控到expdp, impdp备份进行的程度
SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE '%EXP%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK;
数据泵expdp参数:
1.content: 该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
expdp scott/tiger schemas=scott content=all
expdp scott/tiger tables=emp content=data_only directory=dump_dir dumpfile=a3.dmp(只导出对象数据)
expdp scott/tiger tables=emp content=metadata_only directory=dump_dir dumpfile=a4.dmp(只有定义信息)
2.ESTIMATE: 指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
expdp scott/tiger tables=emp directory=dump_dir dumpfile=a5.dmp estimate=statistics
. 预计为 "SCOTT"."EMP" 8.140 KB
使用 STATISTICS 方法的总估计: 8.140 KB
expdp scott/tiger tables=emp directory=dump_dir dumpfile=a6.dmp estimate=blocks
. 预计为 "SCOTT"."EMP" 64 KB
3.EXTIMATE_ONLY:指定是否只估算导出作业所占用的磁盘空间,默认值为N
expdp scott/tiger schemas=scott estimate_only=y 设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Export: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 14:48: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
启动 "SCOTT"."SYS_EXPORT_SCHEMA_02": scott/******** schemas=scott estimate_only
=y
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. 预计为 "SCOTT"."SYS_EXPORT_SCHEMA_01" 192 KB
. 预计为 "SCOTT"."DEPT" 64 KB
. 预计为 "SCOTT"."EMP" 64 KB
. 预计为 "SCOTT"."SALGRADE" 64 KB
. 预计为 "SCOTT"."TEST" 64 KB
. 预计为 "SCOTT"."BONUS" 0 KB
. 预计为 "SCOTT"."MLOG$_EMP" 0 KB
. 预计为 "SCOTT"."PARTS" 0 KB
使用 BLOCKS 方法的总估计: 448 KB
4.EXCLUDE:该选项用于指定执行操作时释放要排除对象类型或相关对象
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
expdp scott/tiger schemas=scott exclude=view dumpfile=a9.dmp
5.FILESIZE:指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
6.flashback_scn: 前提闪回功能开启
expdp scott/tiger tables=emp dumpfile=e2.dmp flashback_scn=4284715 ---->如果闪回的时间点该对象结构发生变化,将报错(比如该对象没有创建或者ddl操作)
ORA-31693: 表数据对象 "SCOTT"."EMP" 无法加载/卸载并且被跳过, 错误如下:
ORA-02354: 导出/导入数据时出错
ORA-01466: 无法读取数据 - 表定义已更改
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/ADMIN/SOLO/DPDUMP/E2.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已经完成, 但是有 1 个错误 (于 15:21:36 完成)
7.FLASHBACK_TIME:指定导出特定时间点的表数据
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME="TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)"
windows下:
C:/Documents and Settings/Administrator>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=a.dmp flashback_time=/"TO_TIMESTAMP('06-04-2010 11:24:26', 'DD-MM-YYYY HH24:MI:SS')/"
数据泵impdp参数:
1,REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.
REMAP_DATAFIEL=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_dir 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’
调用IMPDP
1, 导入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.
注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system
3,导入表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
SQL> show user
USER 为 "SCOTT"
SQL>
SQL> create table range (a int,b varchar2(30)) partition by range(a)
2 (partition p1 values less than (10),
3 partition p2 values less than (20),
4 partition p3 values less than (30)
5 );
表已创建。
SQL> insert into range values(9,'aa');
已创建 1 行。
SQL> insert into range values(12,'aa');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from range;
A B
---------- ------------------------------
9 aa
12 aa
导出某个分区表的分区:
>exp scott/tiger file=c:/bak/fq.dmp tables=range:p1
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
. . 正在导出表 RANGE
. . 正在导出分区 P1导出了 1 行
成功终止导出, 没有出现警告。
expdp directory=dump_dir dumpfile=t_tt.dp tables=scott.emp,scott.range
Export: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 16:21:45
Copyright (c) 2003, 2005, Oracle. All rights reserved.
用户名: sys as sysdba
口令:
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYS"."SYS_EXPORT_TABLE_01": sys/******** AS SYSDBA directory=dump_dir dum
pfile=t_tt.dp tables=scott.emp,scott.range
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 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"."EMP" 7.367 KB 3 行
. . 导出了 "SCOTT"."RANGE":"P1" 5.234 KB 1 行
. . 导出了 "SCOTT"."RANGE":"P2" 5.234 KB 1 行
. . 导出了 "SCOTT"."RANGE":"P3" 0 KB 0 行
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/BAK/DUMP/T_TT.DP
作业 "SYS"."SYS_EXPORT_TABLE_01" 已于 16:22:04 成功完成
eg2: 分区表从scott用户导入到system用户
>expdp scott/tiger directory=DUMP_DIR dumpfile=Article_Detail_20W.dmp tables=range content=DATA_ONLY parallel=2
port: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 22:04:12
pyright (c) 2003, 2005, Oracle. All rights reserved.
接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
th the Partitioning, OLAP and Data Mining options
动 "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=DUMP_DIR dumpfile=
ticle_Detail_20W.dmp tables=range content=DATA_ONLY parallel=2
在使用 BLOCKS 方法进行估计...
理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
用 BLOCKS 方法的总估计: 128 KB
. 导出了 "SCOTT"."RANGE":"P1" 5.234 KB 1 行
. 导出了 "SCOTT"."RANGE":"P2" 5.234 KB 1 行
. 导出了 "SCOTT"."RANGE":"P3" 0 KB 0 行
成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
****************************************************************************
OTT.SYS_EXPORT_TABLE_01 的转储文件集为:
C:/BAK/DUMP/ARTICLE_DETAIL_20W.DMP
业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 22:04:54 成功完成
SQL> conn system/oracle
已连接。
SQL> create table range (a int,b varchar2(30));
表已创建。
>impdp scott/tiger directory=DUMP_DIR remap_schema=scott:system dumpfile=Article_Detail_20W.dmp table_exists_action=APPEND parallel=2
Import: Release 10.2.0.1.0 - Production on 星期六, 03 4月, 2010 22:28:42
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=DUMP_DIR remap_sche
ma=scott:system dumpfile=Article_Detail_20W.dmp table_exists_action=APPEND paral
lel=2
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SYSTEM"."RANGE":"P1" 5.234 KB 1 行
. . 导入了 "SYSTEM"."RANGE":"P2" 5.234 KB 1 行
. . 导入了 "SYSTEM"."RANGE":"P3" 0 KB 0 行
作业 "SCOTT"."SYS_IMPORT_FULL_01" 已于 22:28:51 成功完成
SQL> select * from range;
A B
---------- ------------------------------
9 aa
12 aa
一.ORA-39006: Metadata processing is not available
方法一:
Cause: The Data Pump could not use the Metadata API. Typically, this is caused by the XSL stylesheets not being set up properly.
Action: Connect AS SYSDBA and execute dbms_metadata_util.load_stylesheets to reload the stylesheets.
1.select * from dba_objects
where object_name='DBMS_DATAPUMP';
没有内容就执行以下包
2.exec sys.dbms_metadata_util.load_stylesheets
方法二:
ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-00942: table or view does not exist
ORA-39097: Data Pump job encountered unexpected error -942
ACTION PLAN
===========
1.
SQL >@ $ORACLE_HOME/rdbms/admin/catdph.sql
2.
SQL >@ $ORACLE_HOME/rdbms/admin/prvtdtde.plb
3.
SQL >@ $ORACLE_HOME/rdbms/admin/catdpb.sql
4.
SQL >@ $ORACLE_HOME/rdbms/admin/dbmspump.sql
5.
SQL >@ $ORACLE_HOME/rdbms/admin/utlrp.sql
二.ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_SCHEMA_01 for user SYSTEM
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 600
ORA-39080: failed to create queues "KUPC$C_1_20071025205651" and "KUPC$S_1_20071025205651" for Data Pump job
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 1555
ORA-00832: no streams pool created and cannot automatically create one
解决方法如下:
SQL> show parameter stream
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
将streams_pool_size的值设置为非0,
SQL> alter system set streams_pool_size=10M scope=memory;
System altered.
三.ora-39139
ORA-39139: Data Pump does not support XMLSchema objects. TABLE_DATA:"UCS4"."RECEIVABLES_TABLE" will be skipped.
Total estimation using BLOCKS method: 0 KB
Tables with XML type columns are not supported until 11.1.0.6. To export that table, you need to use exp/imp not expdp/impdp.
发表评论
-
分布式敏捷开发架构 my-shop
2019-03-26 19:05 528my-shop基于Spring+SpringMVC+M ... -
SQL server 2005将远程数据库导入到本地的方法
2015-04-08 17:50 637远程数据库与本地数据库数据之间的导入导出,从来都是一个值得人 ... -
Oracle常用调优手段
2014-04-04 17:46 0Oracle常用调优手段 Oracl ... -
数据库调优(4)
2014-04-04 17:45 0.事务处理调优 ... -
数据库调优(2)
2014-04-04 17:45 03.2 基本表设计优化 在基于表驱动的信息管理系统中, ... -
数据库调优(1)
2014-04-04 17:43 584据库调优(1) 1.引言 ... -
关于海量数据的SQL查询优化.........
2014-04-04 17:42 591讨论的前提是在海量数 ... -
数据批量导入Oracle数据库
2014-04-04 17:32 633今天学习了一个新的东西,觉得还挺有意思的,也是从别出COPY ... -
问题:ora-01658 :无法为表空间USERS 中的段创建INITIAL区
2014-04-04 16:08 2581--问题:ora-01658 :无法为表空间USERS 中的段 ... -
oracle对表空间 USERS 无权限
2014-04-04 15:56 1234权限赋予即可:alter user 用户名 quota unl ... -
正在检查网络配置需求
2014-03-30 13:41 782在安装oracle 10g时,在先行条件检测时会出现 ... -
表空间问题
2014-03-26 10:06 521表空间不足先查询MAXDATA表空间数据文件所在路径selec ... -
oracle存储过程生成xml
2014-03-20 13:02 792我整理了一个方法 1.创建如下存储过程,注意将其中locat ... -
10个简单步骤,完全理解SQL 来自引用
2014-01-10 15:59 65710个简单步骤,完全理解SQL 1、 SQL 是一种声明式语言 ... -
Oracle查询表结构的一些相关语句
2013-04-16 16:57 896Oracle查询表结构的一些相关语句 select * fr ... -
liux环境下操作oracle
2013-04-16 16:23 6781.登录linux,以oracle用户登录(如果是root用户 ... -
查询表空间使用率
2012-07-20 18:59 890select b.file_name 物理文件名, b.tab ...
相关推荐
### DAVE Oracle 数据泵 学习笔记 #### DataPump的工作机制 Oracle Data Pump 是一种高效的数据迁移工具,它能够显著提升数据导入导出的速度。Data Pump 的主要优点包括简化了用户界面、提供了多种导出导入模式...
### Oracle数据泵简明使用手册知识点详解 #### 一、Oracle数据泵简介 Oracle数据泵是一种高效的工具,用于实现...通过对上述内容的学习,我们可以更好地理解和掌握如何使用Oracle数据泵来完成各种数据迁移任务。
### ORACLE数据泵使用详解 #### 一、简介 ##### 1.1 目的 本文档旨在为FMIS数据库10G或更高版本提供一套完整的...通过本文档的学习,希望读者能够掌握ORACLE数据泵的基本使用方法,从而更好地管理数据库中的数据。
Oracle数据泵(Data Pump)是Oracle数据库系统中用于高效数据迁移和备份恢复的重要工具,它在数据导入导出过程中提供了显著的性能提升。本压缩包包含的资源将帮助你理解和运用Oracle数据泵进行并行导入导出操作,...
Oracle 数据泵(Data Pump)是Oracle数据库提供的一种高级数据迁移工具,它提供了高效的数据导入和...然而,数据泵还支持许多高级特性,如数据过滤、并行导入导出、表空间映射等,这需要根据实际需求进一步学习和探索。
内容概要:本文详细介绍了 Oracle 19c 数据泵 (Data Pump) 的使用方法,包括数据泵的组件(expdp、impdp、DBMS_DATAPUMP)、与 CDB 和 PDB 的兼容性、数据泵生成的文件类型(SQL 文件、转储文件、日志文件)、目录...
通过对上述内容的学习,我们可以了解到如何使用数据泵的各种选项来满足不同的需求。无论是导出整个 schema、特定表还是执行更复杂的导出任务,数据泵都能提供有效的解决方案。掌握这些技巧对于 DBA 或者需要处理大量...
Oracle数据泵(Data Pump)是Oracle数据库从10g版本开始引入的一种高效、快速的数据迁移工具,它通过服务器进程执行数据导出和导入操作,从而避免了客户端处理大量数据的压力。Data Pump工具主要包括两个主要部分:...
本文档对于希望学习和掌握Oracle数据泵技术的IT从业者来说,是一份宝贵的学习资源。同时,作者鼓励读者对文档中可能存在的错误或不足之处进行指正,以便不断完善和进步。最终,希望此文档能够帮助读者避免在进行数据...
4. **导入和导出技术**:Oracle提供数据泵(Data Pump)工具,包括EXPDP(Export Data Pump)和IMPDP(Import Data Pump),用于数据迁移和备份恢复。这些工具可以快速高效地处理大量数据,并支持元数据的导出和导入...
Oracle的备份与恢复机制,如RMAN( Recovery Manager)和数据泵(Data Pump),是保证数据安全的重要工具。 在实际应用中,你可能还会遇到性能优化的问题,这涉及到索引的合理使用、SQL查询的优化、分区策略等。...
Oracle11g引入了自动存储管理(ASM)和数据泵(Data Pump)等工具,简化了存储管理和数据迁移的过程。此外,你还会接触到性能优化,包括分析与调整SQL语句、使用Explain Plan分析执行计划、优化表和索引设计等。 在...
理解数据泵(Data Pump)导出导入工具也是关键,它们用于数据迁移和恢复。 数据库性能调优是Oracle学习中的重要部分。通过分析和调整SQL语句、优化索引、监控V$视图以及设置初始化参数,可以提高系统的响应速度。...
- 数据导入导出:了解EXPDP和IMPDP工具的使用,以及如何进行数据泵导出导入操作。 - 备份与恢复策略:学习RMAN( Recovery Manager)的使用,以及逻辑备份、物理备份和归档日志备份。 5. **性能调优**: - SQL...
oracle数据库,数据泵导入导出方法。自己总计。仅供学习。
6. **备份与恢复**:理解RMAN(恢复管理器)和数据泵的使用,掌握完整备份、增量备份、逻辑备份等策略,以及如何进行数据库恢复。 7. **集群技术**:Oracle Real Application Clusters (RAC)是实现高可用性的重要...
5. **备份与恢复**:介绍RMAN(恢复管理器)的使用,逻辑备份,数据泵导出导入,以及如何制定备份策略和执行灾难恢复。 6. **安全与权限**:用户管理、角色权限、对象权限的设定,以及审计和安全性最佳实践。 7. *...
Oracle提供多种备份工具和方法,如RMAN(恢复管理器)和数据泵导出/导入,理解这些工具的使用是确保数据安全的重要环节。 总的来说,"Oracle学习手册word版"是一个全面的教程,不仅教授SQL基础知识,还涵盖了Oracle...
此外,Oracle 9i还引入了新的特性,如自动内存管理、数据泵(Data Pump)导入导出,以及XML支持等,这些都为数据库管理和开发提供了更多便利。自动内存管理简化了内存设置,而数据泵则提高了数据迁移和备份恢复的...