oracel数据库 impdp导入.dmp文件的操作

首先创建一个新用户,保证和导出dmp文件时的用户名,密码以及对应的表空间名相同。

不多说,直接上图


(基本只用改下面备注中文部分,根据需求对应替换就行)

1.创建用户
create user 用户 identified by 口令;

2.创建一个表空间
create tablespace 表空间变量名 logging datafile ‘路径\表空间名.dbf’ size 50m autoextend on next 32m maxsize unlimited extent management local;

绑定表空间在刚才创建的用户上
alter user 用户名 default tablespace 表空间名;

3.为用户赋权限
grant dba to 用户名; 这里为了图省事,直接赋的最高权限,

(这里我试过用以下语句:
grant create any table ,create any sequence,create any view ,create session,unlimited tablespace to 用户名;
在后面仍然提示权限不足,这方法由于太麻烦被我放弃了,暂时没找到差一个什么权限,后面如果找到将会更新)

4.创建一个目录变量
create directory 目录名 as ‘目录路径’;

注意点:上面语句只是告诉oracel有这个目录,这条命令自己不会自动创建,需要自己手动去创建!!!!!!!

5.将该目录的可读写权限赋值给该用户
grant read,write on directory 目录变量名 to 用户名;

如果未将该目录的读写权限赋给该用户,可能会报如下的错误


6.导入dmp文件
impdp 用户名/口令 directory=目录名 dumpfile=文件名.dmp full=y table_exists_action=replace
(这里用到的用户名为刚创建的用户,目录不能直接用目录路径,必须得用目录的变量名,然后将该dmp文件放到该目录下,此处所填文件名需要带上文件后缀)

由于导出dmp文件的用户名在导入的oracle中不存在,所以会报错。
在impdp后边加上:

REMAP_SCHEMA=sourcename:targetname
比如导出时用户名为A,导入是用户名为B。
REMAP_SCHEMA=A:B

加上后导入可能还会提示tablespace不存在,再加上:

REMAP_TABLESPACE=sourcespacename:targetspacename
 

你可能感兴趣的:(oracel)