使用Oracle 10g数据泵(EXPDP/IMPDP) 一、关于数据泵的概述 在 Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行 I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。 通过数据泵,以前通过 EXP/IMP主要基于 Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。 数据泵通过新的 API来建立和管理,这些新的工作主要由 DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过 IMPDP/EXPDP执行的命令实际上都是在调用Server端的 API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在 server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改 二、数据泵的使用 示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp 注意到与 EXP不同,EXPDP增加了一个主要的参数:DIRECTORY 这个参数是用来定义一个路径,前面已经提到,数据泵主要在 Server端工作,导出文件需要写出到 Server端本地目录,这个 DIRECTORY就是对应的 Server端的路径 如: //创建目录 create or replace directory expdir as 'd:\'; //给 test赋予目录的读写权限 grant read,write on directory expdir to test; //导出数据 C:\>expdp test/test@acf dumpfile=test.dmp directory=expdir 三、EXPDP/IMPDP的停止与重启动 EXPDP和 IMPDP的本质在于,通过 API调用,把传统的 EXP/IMP类交付式模式的操作,转变成数据库内部的 job任务,从而实现了任务的可终止与重启动。 c:\expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull 在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。 在Oracle 10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status等查看命令: Export> status 如果想停止改任务,可以发出stop_job命令 Export> stop_job 接下来...