**************************************************************
概述
**************************************************************
在Oracle 10g以上的版本中引入了expdp/impdp,对exp/imp工具做了很大的改进.
数据泵(Data Pump)的所有工作都由数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据。通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。
数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过MPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以退出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改.
在执行过程中,可以按下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status start,stop等命令.示例参考下面的JOB的中断操作实例:
**************************************************************
EXPDP 操作实例:
**************************************************************
创建目录
Create directory dmpdir as '/opt/oracle/temp/';
grant read,write on directory dmpdir to mouse;
如果不指定目录,则默认的目录为DATA_PUMP_DIR $ORACLE_BASE/admin/$SID/dpudmp/
可以通过查询dba_directories视图得到
导出表
expdp test/test DUMPFILE=testexpdp.dmp TABLES=t
导出方案
expdp test/test DUMPFILE=test.dmp SCHEMAS=test;
导出全库
expdp system/system dumpfile=full.dmp full=y;
查询导出:注意转义符
expdp test/test DUMPFILE=testexpdp.dmp TABLES=t QUERY=\"where wner=\'TEST\'\"
导出DDL结构:
expdp test/test DUMPFILE=mouse_metadata.dmp SCHEMAS=test job_name=exptest content=all|METADATA_ONLY|data_only
exclude排它性导出(不导出表t和dept,注意要大写)
expdp test/test DUMPFILE=testexpdp.dmp schemas=test exclude=table:\"in\(\'T\',\'DEPT\'\)\";
从dump文件中提取DDL信息
impdp test/test DUMPFILE=testexpdp.dmp SQLFILE=t.sql
产生的文件除了包含基本的DDL信息外,还包含其它不知什么信息?需要看官方文档说明
并行加速,按文件大小生成多个小文件:
expdp test/test DUMPFILE=testexpdp_%U.dmp TABLES=t FILESIZE=40192k parallel=4
添加JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选)
expdp test/test DUMPFILE=test.dmp DIRECTORY=dmpdir SCHEMAS=test job_name=exptest
**************************************************************
IMPDP 操作实例:
**************************************************************
导入表
expdp test/test DUMPFILE=testexpdp.dmp DIRECTORY=dmpdir TABLES=t
导入方案
test不能已存在
impdp system/system DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR SCHEMAS=test
mouse用户不能存在
impdp system/system DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR REMAP_SCHEMA=test:mouse
**************************************************************
JOB的中断操作实例:
**************************************************************
expdp test/test DUMPFILE=test.dmp SCHEMAS=test job_name=test;
Export> status
如果想停止改任务,可以发出stop_job命令
Export> stop
接下来可以通过命令行再次连接到这个任务
expdp test/test attach=test;
通过start_job命令重新启动导出
Export> start
Export> status
Job: TEST
Operation: EXPORT
Mode: SCHEMA
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: /opt/oracle/admin/mydb/dpdump/test.dmp
bytes written: 4,096
Worker 1 Status:
Process Name: DW00
State: EXECUTING
Object Schema: TEST
Object Name: T
Object Type: SCHEMA_EXPORT/TABLE/TABLE
Completed Objects: 1
Worker Parallelism: 1
Export> stop
Are you sure you wish to stop this job ([yes]/no): yes
oracle@linux:~/temp> expdp test/test attach=test;
Export: Release 11.2.0.1.0 - Production on Thu Aug 4 22:14:55 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Job: TEST
Owner: TEST
Operation: EXPORT
Creator Privs: TRUE
GUID: A9B21A0FDFC2969BE040A8C0AD1102AA
Start Time: Friday, 05 August, 2011 1:14:56
Mode: SCHEMA
Instance: mydb
Max Parallelism: 1
EXPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND test/******** DUMPFILE=test.dmp SCHEMAS=test job_name=test
State: IDLING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: /opt/oracle/admin/mydb/dpdump/test.dmp
bytes written: 40,960
Worker 1 Status:
Process Name: DW00
State: UNDEFINED
Export> start
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10248702/viewspace-704167/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10248702/viewspace-704167/