最近有现场给我一份用expdp导出dmp文件,我用imp导入时,报错。因为导出dmp的数据库是11g,导入的数据库也是11g,
但客户端安装的是10g,不能用imp导入;所以只能试着用impdp导入;
一:在Linux环境下impdp导入:
1.在操作系统上创建存放dmp文件目录
>mkdir pathname
2.在数据库层面,创建存放dmp文件对应目录
CREATE [OR REPLACE] DIRECTORY directory AS ' pathname ';
3.对这个目录授权, 把读写权限授予特定用户
GRANT READ[,WRITE] ON DIRECTORY directory TO username ;
4.在服务器上执行导入命令
impdp usr_x3/usr_x3@urpdb directory=exp_dir dumpfile=1.dmp remap_schema=x3:usr_x3 remap_tablespace=TS_W1:TS_W2
二:在window环境下impdp导入
和Linux环境下一样,也要创建目录并授权。
三:impdp导入一些说明
1:一直以为impdp只能在数据库服务器端使用,今天试了,在客户端也是可以的。
2:如果导入过程中,出现如下提示
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and
Data
Mining options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation
问题原因:
可能1:虽然在数据库中建立了/oradata/yn,但是因为在操作系统中没有建这个文件夹,结果导致了这个错误。
可能2:在redhat下已经建立了这个文件夹,为什么还有这个错误呢?
问题原因:/oradata/yn这个目录的owner必须是 oracle,不能是root,并且最好附777权限。