impdp和expdp的使用

oracle11g开始,exp和imp不支持空表导出。

意思是说,虽然create table的ddl操作,但没有insert数据,则oracle为效率计,不实际创建该表并分配段。

这样exp的dmp文件就不包含空表,需要使用数据泵技术来做备份恢复。

impdp和expdp不关系操作系统的目录,只关心oracle的目录。根据需要可以先创建目录。

但一般使用oracle默认的data_dump_dir就足够了。

data_pump_dir默认为$ORACLE_BASE\admin\<SID>\dpdump

 

执行备份导出:

\>expdp userid=user1/pwd@orcl  directory=data_pump_dir dumpfile=dp_0319.dmp

如果恢复到另外的数据库,需要从expdp的服务器的data_pump_dir目录中,将dp.dmp文件手工复制到待恢复的服务器的

data_pump_dir目录中。

然后执行恢复:

\>impdp userid=user2 /pwd@orcl  directory=data_pump_dir dumpfile=dp_0319.dmp

remap_schema=user1:user2

如果用户名不同,需要使用remap_schema参数进行schema映射;如果表空间还不同,需要remap_tablespace;

 

impdp和expdp使用oracle的后台进程进行数据操作,效率为客户端工具imp和exp的几十倍。

 

 

 

Tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *