expdp / impdp 用法详解

一、注意事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

二、使用expdp导出文件前的设置:

1、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建(我登录的是root用户),选取linux上一个实际目录,或者新建一个目录,这里我选的是'/usr/local/tomcat'这个已经有的目录,并将tomcat文件夹权限设为最高777,最简单的方式就是右键文件夹,修改属性.....:

expdp / impdp 用法详解

expdp / impdp 用法详解

进入oracle模式:su - oracle     
[[email protected] ~]$ sqlplus / as sysdba

SQL>create directory dmp_dir as '/usr/local/tomcat';

2、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
SQL>select * from dba_directories;

expdp / impdp 用法详解

3、给用户赋予在指定目录的操作权限,最好以system等管理员赋予(我这里登录的是root用户,所以设置为public)。
SQL>grant read,write on directory dmp_dir to public;

SQL> show user;

SQL> host

三、导出数据

退出sql模式到oracle

1、按用户导出数据

[[email protected] ~]$ expdp test_demo/[email protected] schemas=test_demo DIRECTORY=dmp_dir DUMPFILE=TestDemo.dmp;

2、按表名导
[[email protected] ~]$ expdp test_demo/[email protected] TABLES=sys_log,dept dumpfile=sys_log.dmp DIRECTORY=dmp_dir;

3、按查询条件导
[[email protected] ~]$ expdp test_demo/[email protected] directory=dmp_dir dumpfile=sys_log1.dmp Tables=sys_log query=\"WHERE id=\'5280e\'\";

五、导入数据
1、导到指定用户下

如果想导入的用户已经存在,并且导入用户名和导出的用户名不一致:
[[email protected] ~]$ impdp user2/pass2 directory=dmp_dir dumpfile=TestDemo.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER

如果想导入的用户不存在:
[[email protected] ~]$impdp system/passsystem directory=dmp_dir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2

user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码

如果想导入的用户已经存在,并且导入用户名和导出的用户名一致:

[[email protected] ~]$ impdp test_demo/test_demo DIRECTORY=dmp_dir DUMPFILE=expdp.dmp SCHEMAS=test_demo;
2、改变表的owner
[[email protected] ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3、导入表空间
[[email protected] ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4、导入数据库
[[email protected] ~]$ impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5、追加数据
[[email protected] ~]$ impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION