首先说明的是,最好导出和导入的用户保持一致,不然会产生很多不必要的麻烦,还有数据库的字符集也要确认好。使用oracle系统用户登录,然后sqlplus /nolog进入数据库命令行界面,
conn /as sysdba;
startup;
首先在sql命令执行界面创建目录映射,这个目录需要真实存在的
create directory dump_file as '/home/oracle/backup'
然后赋予要导入的用户权限,这里我的导入用户是exoa
grant read,write on directory dump_file to exoa;
然后exit退出数据库命令执行界面,在系统命令行界面执行如下语句:
impdp 导入用户名/密码 schemas=实例名 directory=dmp文件目录名 dumpfile=dmp文件名 logfile=输出的日志名
impdp exoa/exoa schemas=exoa directory=dump_file dumpfile=exoa_20170419.dmp logfile=imp.log
需要注意的是,这里创建的目录名一定是dmp文件所在的目录,而且oracle系统用户要对目录以及文件本身有权限,给oracle系统给用户赋予权限的语句如下:
linux 中更改用户权限和用户组的命令实例;
增加权限给当前用户 chmod +wx filename
chmod -R 777 /home/oracle/backup
用户组 chgrp -R foldname zdz