上一篇文章我们整理了“Oracle数据库EXP/IMP导入导出”,这一篇文章我们将继续整理Oracle的EXPDP/IMPDP的导出导入功能,EXPDP/IMPDP (数据泵)是Oracle10G新引入的工具.它不但包括了imp/exp的功能,还进行了扩充与加强,其速度也更快。
一、创建逻辑目录
该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理员目录
同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错
select * from dba_directories;
三、给用户赋予在指定目录的操作权限
该操作最好以system等管理员赋予
grant read,write on directory dpdata1 to scott;
四、导出数据
1)按用户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3;
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、导入数据
1)导到指定用户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION;
六、实际项目导入功能
1、将DMP文件放入指定DIRECTORY目录下面
2、执行IMPDP命令完成数据导入
IMPDP clis/********@wms DIRECTORY=DATA_PUMP_DIR DUMPFILE=20160816.DMP LOGFILE=USER_AIMP_10G.LOG FULL=Y;
3、执行完成后,查看日记是否有报错
到DIRECTORY目录下,查看USER_AIMP_10G.LOG文件,内容如下
七、注意
使用EXPDP和IMPDP时应该注意的事项:
2、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3、IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
4、expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
Oracle的expdp/impdp功能就先写到这里,以后如果有新的发现,再来补充记录。