Oracle数据泵expdp/impdp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据泵expdp/impdp相关的知识,希望对你有一定的参考价值。

   Oracle11g以后的新特性使得默认条件下在分配表空间时忽略空表,以减少表空间的资源占用,这样使得在使用Oracle的exp导出用户数据时就会忽略空表,这样就会造成数据的不完整,当然在使用exp导出数据时也不是没有办法,这个以前有提到过,在此就不做过多的赘述了http://jim123.blog.51cto.com/4763600/1934205。使用这种方法是可以解决在使用exp导出用户数据时不会忽略空表,但是还有更为高效的办法就是使用expdp/impdp ——Oracle数据泵,来对Oracle数据进行导入导出,相比exp/imp而言expdp/impdp是更为高效的数据导入导出时使用的工具,当然在这里就expdp/impdp和exp/imp的区别简单的说一说。

   和exp不同,在使用expdp导出数据时先要用DBA用户进入Oracle中执行一条指定备份路径后再授权可读写后,才能操作,具体操作步骤如下:

SQL> create or replace directory dpdata1 as ‘/data/backup/oracle_backup‘;

Directory created.

SQL> grant read,write on directory dpdata1 to u01;

Grant succeeded.

SQL> grant read,write on directory dpdata1 to u02;

Grant succeeded.

SQL> select * from dba_directories;

这里dpdatal指定下要备份导出数据的路径,然后授权这个目录给要导出用户,这里要注意的是这个目录必须是Oracle用户的属组以确保文件权限可写入,在完成指定备份目录后就可以用expdp开始导出数据了,在使用expdp导出数据时会有import.log的日志文件生成,因为在这里是多个用户导出,我这里就指定下日志文件的文件名

[[email protected] ~]$ expdp u01/passwword_u01  directory=dpdata1  dumpfile=u01.dmp logfile=u01.log
expdp u02/password_u02  directory=dpdata1  dumpfile=u02.dmp logfile=u02.log

在导出后就会在指定的备份目录下生成备份文件和日志。

   在导入的时候使用impdp导入,具体的使用方法同imp差不多,不过需要的是要指定备份目录,操作如下:

[[email protected] oracle_backup]$ impdp u01/passwword_u01 directory=dpdata1 dumpfile=u02.dmp FULL=y
[[email protected] oracle_backup]$ impdp u02/passwword_u02 directory=dpdata1 dumpfile=u02.dmp FULL=y

这样就导入完成了,不过在这里需要注意的一点是在使用impdp导入数据时,如果Oracle中没有创建相应的用户时,在导入后也会自动创建用户,所以在导入的时候需要注意千万不要把数据导错了,简单的Oracle数据泵expdp/impdp大致就是如此,其他还有按照表名、查询条件、全库导入导出的操作大致是一样,仅仅是需要修改几个参数,在此就不做过多的说明了

本文出自 “技术随笔” 博客,谢绝转载!

以上是关于Oracle数据泵expdp/impdp的主要内容,如果未能解决你的问题,请参考以下文章

03.01 Oracle数据泵导出导出(expdp/impdp)命令举例(上)

Oracle 数据泵导入导出(expdp/impdp)

expdp/impdp 数据泵导入导出

Oracle数据泵expdp/impdp

expdp/impdp oracle数据泵导入导出

Oracle 11g 数据泵技术详解(expdp impdp)