EXPDP/IMPDP

Posted kawashibara

tags:

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

Oracle11G之前我们通常的备份和恢复策略用的可能都是imp/emp简单快速,上手方便,当时当上了11G之后,多出了一个Impdp/Empdp命令,这俩命令的出现主要是为了解决Oracle11G在使用上一些差别而出现的。在Oracle11g中,exp默认是不能导出空表,用传统的exp/imp比较麻烦,所以出现了。

 

              我们通常使用的时候,都是将表结构建立在用户的下面,所以我们一般备份数据都是按照用户来进行备份,但是用户下的数据都是存储在表空间的,所以备份数据之前,先查看数据库用户有那些表空间,将表空间名称进行记录,在恢复数据库的时候要新建这些表空间,否则数据无法准确恢复。建立完表空间后,登录plsql或者是sqlplus,以管理员的身份登录,执行一下操作

 

connect sys/password  as sysdba

 

create or replace directory db_back as ‘D:db_back‘;

 

grant read,write on directory db_back to sys;

 

select * from dba_directories;

 

通过以上步骤实际上是建立的逻辑路径,不会真的在硬盘中建立相印的文件,还需手工在D盘建立db_back文件目录,以后无路备份还是恢复,同自动将备份文件和日志文件定位到这个盘符。

 

导出数据库备份:

 

empdp sys/password Directory db_back schemas=要备份的用户名 dumpfile=backup.dmp;

 

导入数据库备份

 

impdp sys.password directory db_back dumpfile=backup.dmp remap_schema=备份出来的用户:备份进入的用户 logfile=logfile.log  transform=OIDN;

 

《名词解释》

 

 sys/password-----------管理员用户名和密码(system也可以)

 

directory------------------数据库中创建的逻辑路径

 

schemas------------------需要备份的用户名

 

dumpfile------------------备份数据库文件

 

remap_schema---------前面的用户为备份出来的用户,后面的用户为备份要导入的用户,是用户之前的映射

 

transform-OIDN------赋予的新的OID,此处一般不需要修改。

 

 

导出HR用户下所有数据

 

[[email protected] ~]$ expdp system/oracle dumpfile=hr_expdp.dmp logfile=hr_expdp.log schemas=hr directory=d1

 

 

 

HR用户所有数据导入到HR6

 

impdp system/oracle remap_schema=hr:hr6 dumpfile=hr_expdp.dmp  logfile=hr6_impdp.log directory=d1;

 

导出与导入空表

expdp system/oracle dumpfile=kongbiao.dmp tables=hr.employees content=metadata_only directory=d1

impdp system/oracle remap_schema=hr:scott dumpfile=kongbiao.dmp directory=d1

 

Content=data_only 只导出数据

Content=metadata_only 只导出对象定义

 

以上是关于EXPDP/IMPDP的主要内容,如果未能解决你的问题,请参考以下文章