Oracle 11g EXPDP/IMPDP介绍与一些ORA解决方法

定义

EXPDP/IMPDP,即数据泵工具,主要用于:
1)将数据从开发环境转到测试环境或产品环境
2)在不同的操作系统平台上的oracle数据库直接的传递数据
3)在修改重要表之前进行备份
4)备份数据库
5)把数据库对象从一个表空间移动到另一个表空间
6)在数据库直接移植表空间
7)提取表或其他对象的DDL

注意事项

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

操作步骤

创建目录

目录又分实际目录与逻辑目录,创建逻辑目录的命令不会在OS上创建真实的目录,所以要先在服务器上创建真实的目录。这样Oracle才能判断是否能够读取写入目录内的文件。

创建OS目录

mkdir -p /test/dumpfile    // -p为创建所有子目录

chown oracle:#groupname /test/dumpfile
chmod -R 775 /test/dumpfile

创建逻辑目录

sqlplus / as sysdba

create directory dirname as '/test/dumpfile';

expdp导出dmp

expdp system/‘密码’ directory=dirname dumpfile=#dumpfile_name

常用参数介绍:
1)“full=y”,全库导出;
2)“schemas=user”,按用户导出;
3)“tablespace=tbs1,tbs2”,按表空间导出;
4)“tables=table1,table2”,导出指定表;
5)“content=metadata_only”,只导出表结构;
6)“exclude=table:\"in(\'table1\',\'table2\')\"”,指定表或多个表不导出;
7)“PARALLEL”,指定导出作业使用多少并行度;

impdp导入dmp

expdp system/‘密码’ directory=dirname dumpfile=#dumpfile_name

在不加任何参数的情况下,从源库如何导出,就如何导入目标库。
另外,在导入目标库时,如果需要改变用户名等,可使用以下重新映射的参数:
1)REMAP_SCHEMA=username1:username2
2)

遇到的故障及解决

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DUMP_DIR is invalid
解决:用户需要授予导出导入的权利

grant read,write on directory #dirname to #username;

ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39142: incompatible version number 3.1 in dump file "/……/XXX.dmp"
解决:确认实际目录与逻辑目录是否一致,文件是否放在逻辑目录路径下,重建逻辑目录。

确认实际目录:pwd
确认逻辑目录:select * from dba_directories;
重建目录:create directory #dirname as '/实际目录'

……持续更新

Related Posts