expdp/impdb数据泵导入导出数据

  数据泵导出导入与传统导出导入的区别

在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:

1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。

2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

3)IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

 

使用数据泵工具时,如果不指定目录,会有“ORA-39087: 目录名 DATA_PUMP_DIR 无效”错误。DATA_PUMP_DIR是默认的目录,如果这个目录没有创建或者无效,那么就会出现这个问题。可以通过下面的语句来查看有哪些目录:


 SELECT privilege, directory_name,DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+)=d.directory_name ORDER BY 2,1;

 


可以用CREATE DIRECTORY来创建目录,例如:

SQL> CONNECT system/manager
SQL> CREATE OR REPLACE DIRECTORY db_dump as 'D:\ora_bak\db_dump';
SQL> GRANT read,write ON DIRECTORY db_dump TO xxx用户;

上面创建了db_dump。使用EXPDP时,可以用DIRECTORY=db_dump来指定,也可以在使用expdp之前设置环境变量,例如:set data_pump_dir=db_dump,然后再来导出。当然也可以在参数文件中来设置。

示例导出

expdp user/pwd@orcl directory=db_dump  dumpfile=DB%date:~0,4%%date:~5,2%%date:~8,2%.dmp logfile=DB%date:~0,4%%date:~5,2%%date:~8,2%.log  schemas=用户或表空间

示例导入

impdp user/pwd@orcl directory=db_dump  dumpfile=DB20170112.dmp logfile=IMPDP%date:~0,4%%date:~5,2%%date:~8,2%.log  schemas=用户或表空间TABLE_EXISTS_ACTION=TRUNCATE 

注:如果提示连接不上,将@orcl写成ip+orcl的形式,如:127.0.0.1/orcl

只导入某几张表

impdp user/pwd@orcl directory=db_dump  dumpfile=20170112.DMP tables=表名,表名

注意:如果导入某几张表,要把数据库中同名的表drop掉,不然会报错

 

posted @ 2017-01-13 17:50  北湮  阅读(612)  评论(0编辑  收藏  举报