一、用途
1、在不同的系统平台间移植数据;
2、数据库的备份和恢复手段之一;
3、用于用户间的数据移动。
二、基本语法和实例
如果觉得以下命令行这种方式这样不好理解,可以直接敲入EXP/IMP然后按照提示一步步的操作就可以了(除了“导出文件:expdat.dmp“这里输入一个路径外,例:C:\FULL.DMP。一般只要不断回车就行)。
1、EXP
有三种主要的方式(完全、用户、表)。
(1)完全
EXP ‘SYS/bpm as sysdba’ BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限。
(2)用户模式
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP WNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
(3)表模式
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP WNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出。
2、IMP
具有三种模式(完全、用户、表)。
(1)完全
IMP ‘SYS/bpm as sysdba’ BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
(2)用户模式
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
(3)表模式
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP WNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入
三、注意:
一般情况下,你备份出来是没有问题的,但是导入时就相对麻烦些,因为如果该数据存在,你是导不进去的。这个时候需要把相关的数据删除掉再导入。
因为一般我都是直接备份和导入该用户的数据,即用户模式,所以我讲一下大致过程:
首先,因为有用户连接是不能删除该USER的,所以要先查询出有哪些用户在连接:
Select sid,serial#,user#,username from v$session;
然后断开他们
Alter system kill session ‘sid,serial#’
这个时候就可以开始删除该USER和其下所有的表:(bpmmes为用户名)
Drop user bpmmes cascade;
随后创建该用户(脚本在另一篇文章里),然后再IMP就好了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/295691/viewspace-211641/ ,如需转载,请注明出处,否则将追究法律责任。