我实现的是从VMware+oracle11gR2 用expdp导出全库 expdp 用户名/密码 DIRECTORY=dump_dir DUMPFILE=full.dmp logfile=full.log full=y;
然后将备份好的full.dmp文件用二进制传输模式 传输到linux服务器上(用其他模式容易导致.dmp文件损坏)
目的端配置如下:
先安装好数据库软件;
/*第1步:创建数据表空间 */
/*第2步:创建用户并指定表空间 */
/*第3步:给用户授予权限 */
(同源端保持一致)
完成后
1.先在linux系统上创建 /home/dump目录。
2.启动数据库,在sql命令行创建数据库的dump目录,如下:
SQL> CREATE DIRECTORY dump_dir AS '/home/dump';
3.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
4.给导入用户赋予在指定目录的操作权限,最好以system等管理员赋予。
SQL> grant read,write on directory dump_dir to 用户;
执行impdp 用户名/密码 dumpfile = full.dump directoy=dump_dir full=y
出现错误:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
出现以上情况会有两方面原因:
1.对存放dmp文件或log文件的路径没有权限。
2.对dmp文件没有权限。
我的是第一种问题 对full.dmp所在的/home/dump没有权限
执行以下命令解决:
chown -R oracle:oinstall /home/dump
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30211111/viewspace-1609637/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30211111/viewspace-1609637/