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的几十倍。
相关文章