*数据泵只有在oracle 10g后的版本可用,并只有在服务端可用。
1.练习时,出现了ORA-39002、ORA-39070、ORA-39087这三个错误,如图:
解决方法:
用sysdba身份连接数据库:conn / as sysdba
查看字典目录:select * from all_directories;
select * from dba_directories; (dba_directories更全)
在数据库中创建逻辑目录:create or replace directory expbk as '/home/oracle/expbk';
(注意:这条命令只会创建逻辑目录,并不会在操作系统中的/home/oracle创建expbk目录,所以还要在操作系统中/home/oracle下执行 mkdir expbk)
授予相关用户操作权限,比如:grant read,write on directory expbk to scott;
2.导出时又出现了这个错误,如图:
遇到此问题,第一个要想到的是相关文件和目录的权限有没有给足。
比如导出的directory的权限 等等。既要在数据库里‘grant read,write on directory 目录名 to 用户名’,也要在操作系统中通过chmod 给目录授权。
3.用impdp导入时,导入用的dump文件的权限也要给足哦!
比如直接给个777...如图
4.用xshell导出时,没有用nohup,导出过程中xshell突然断了,脑子里第一反应是要重新导出......
***!谨记:导库时无论数据量大还是小,都用nohup
先写个.sh脚本(注意要记得#!/bin/bash),再nohup xxx.sh & ,放到后台执行,以防止断开时停止导出。
5.导入的语句如图:
个人觉得这句导入的语句没毛病,但是报错如下图:
ORA-39000、ORA-31640、ORA-27037 报错说无法打开这个文件,首先看了下,文件的权限是足的,这个目录里也的确有这个文件,如图:
后来才发现原因是:大小写!!!
这几个DUMP文件都是大写的!!!
解决方法:将导入语句中的orcl%U.dump改成ORCL%U.DUMP,就导入成功啦!
6.导入时,可登入数据库,查看数据库是否在变大,如在变大,则说明在导入:
select sum(bytes/1024/1024/1024) from dba_segments;