oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库相关的知识,希望对你有一定的参考价值。

导入导出用的用户是一个

按用户导入是有要求的

    导入用户要存在

    要导入的用户表存在且结构与dmp中相同(可以不管表在哪个表空间里),自动建表时会报错:对象已存在。可以用ignore=y忽略,数据会正确导入 

    或者这些表空间存在且有权限和quota,它会自动建立表并导入数据

掌握这三个条件,没有什么用户不能导入的

追问

在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢

追答

需要你先建用户,然后再建这几个表空间,再给这个用户在这些表空间quota或者unlimited tablespace权限,导入就没问题了。
dmp里有建表语句,包含了表空间部分,所以它是不会管你默认表空间是什么,假设你默认表空间是system,而你所有的表都在其它表空间上,你导入时会按照表的原始位置建表,而不会建在你默认表空间的。

参考技术A

用如下命令即可:

imp 用户名/密码@实例名称 file=磁盘路径\\文件名.dmp fromuser=来自用户的名称 touser=导入到用户的名称

参考技术B 首先用这个用户登录到oracle数据库。
imp username/pwd@SID file=d:\daochu.dmp
imp username/pwd@SID@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
或者用plsql中的Tools--import tables --oracle import 选择你的dmp文件导入即可。追问

在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢

追答

建表空间和用户,要与之相对应。否则数据在导入时会报错。找不到用户或者表空间。

oracle的dmp数据文件的导出和导入以及创建用户

关于dmp文件我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。

 

dmp文件导出

 

dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据、导出指定用户的所有表、导出指定表。

   这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图 

技术分享

 

打开命令行:

1,将数据库ORACLE完全导出,用户名system密码manager 导出到c:\daochu.dmp中

exp system/manager@ORACLE file=c:\daochu.dmp full=y

 

2,将数据库中RFD用户与,JYZGCX用户的表导出

exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)

 

3,将数据库中的表T_USER、T_ROLE导出

expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp tables=(T_USER,T_ROLE) 

上面的system为用户名,manager为密码,ORACLE为数据库实例名,其实不一定非的用system用户,只要是拥有管理员权限的用户都可以。

 

 

dmp文件导入 

1,打开“开始”-->输入cmd—> sqlplus /nolog;

2,输入 conn / as sysdba管理员账户登录;

3,需要创建表空间,如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用txt打开dmp文件,
  使用快捷键ctrl+F,查找tablespace,就可以找到这个dmp文件所对应数据库的表空间,然后创建我们找到的表空间就可以;   步,不创建的表空间,创建用户,并分配权限; 5,打开“开始”-->输入cmd(注意:这里是cmd窗口,不是sqlplus窗口!!!),输入以下语句:
  “imp kang/[email protected]/ORACLEfile="C:\daochu.dmp"full=y ignore=y”
上述语句说明如下: kang是创建的登录数据库用户名; 123456是登录数据库的密码; localhost:代表当前数据库的地址是本机,如果是远程导入,替换成对应的ip地址就行 ORACLE:是实例名称) file:后面的是你当前dmp文件存放的路径 full=y,这个貌似是全部 ignore=y,忽略一些错误

  

导入给指定用户:

  imp system/[email protected] fromuser=aaa touser=bbb file=aaa.dmp

 

创建新用户:    

1 create user uepro identified by uepro default tablespace orcl temporary tablespace orcl  ACCOUNT UNLOCK;
2 GRANT CONNECT TO uepro; 连接数据库
3 GRANT RESOURCE TO uepro; 
4 grant alter,delete,update,insert,select on 表名 to 用户名;

 

 

小结 

  本篇文章主要讲述了,oracle数据导出和导入的具体步骤,其中导入dmp文件的时候即便不知道表空间、用户名和密码也可以进行导入。Oracle的学习确实是路漫漫其修远兮啊!

以上是关于oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE中用PLSQL如何把.DMP文件导入到库中?

ORACLE中用PLSQL如何把一个表中数据通过.DMP文件导出,再导入到另一个数据库的一个相同表结构的表中?

如何在Oracle中使用exp和imp导出,导入dmp数据库文件

oracle如何在本机导出dmp文件?

oracle 11g如何导入.dmp文件

oracle怎么导入dmp文件