EXPDP小结

数据泵EXPDP/IMPDP
1,create directory dd1 as 'd:expdpdump';
2.grant read,write on directory dd1 to cpxyts; 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;
3.expdp system/oracle dumpfile=d:expdpdumpexpdp_1.dump logfile=d:expdpdumpexpdp_1.log schemas=scott directory = d1;
4.impdp system/cpxyts remap_schema=scott:a1 dumpfile=d:expdpdumpexpdp_1.dump logfile=d:expdpdumpimpdp_1.log directory=d1;

EXPDP全库导出
expdp system/cpxyts@CPXYTS dumpfile=full_2.dump logfile=full_2.log full=y directory = dd1

IMPDP按user导入

impdp system/cpxyts@CPXYTS dumpfile=full_1.dump logfile=full_1_impdp.log directory = dd1 schemas=scott

试验一、 运用数据泵EXPDP备份导出SCOTT用户的所有数据转储到用户aaa(数据库中没有此用户)
1.备份导出
expdp system/cpxyts dumpfile=scott.dump logfile=scott.log directory = dd1 schemas=scott
2.导入
impdp system/cpxyts@cpxyts directory=dd1 dumpfile=scott.dump logfile=impdp_scott.log remap_schema=scott:aaa
3.完成
注:因为aaa是数据库本来没有的用户,所以备份恢复之后aaa的密码是导出用户的密码。

试验二、有全库导出(EXPDP)的.dump文件恢复a1用户的表到aaa用户上
1.全库备份
expdp system/cpxyts@CPXYTS dumpfile=full_1.dump logfile=full_1.log full=y directory = dd1
2.现有需求把a1用户的表全部恢复到aaa用户上
impdp system/cpxyts@cpxyts directory=dd1 dumpfile=full_1.dmp logfile=impdp_full.log remap_schema=a1:aaa
3.完成恢复操作

试验三、全库导出,全库导入

1.全库备份导出
expdp system/cpxyts@CPXYTS dumpfile=full_1.dump logfile=full_1.log full=y directory = dd1
2.全库导入
impdp system/cpxyts@cpxyts directory=dd1 dumpfile=full_1.dmp logfile=impdp_full.log full=y
注:此试验将数据库全库备份导出,经过一部分增加表、删除表、增加用户、删除用户等行为。
将全备的dump文件全库导回数据库。
结果是:导回恢复之后,原有的用户,数据,表不会减少,在备份状态之后删除的表、用户、数据 将会恢复,

结论:将全备的dump文件上传到其他机器上将会将备份的数据库全部恢复

小结:logfile是记录每次操作的,dumpfile是记录备份的数据库的文件。特别需要注意的是expdp/impdp是需要在服务器上执行的命令
用远程工具连接将无效。切记在敲expdp命令的时候末尾不要加‘;‘。

原文地址:https://www.cnblogs.com/Wardenking/p/9964548.html