oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库相关的知识,希望对你有一定的参考价值。
导入导出用的用户是一个
按用户导入是有要求的
导入用户要存在
要导入的用户表存在且结构与dmp中相同(可以不管表在哪个表空间里),自动建表时会报错:对象已存在。可以用ignore=y忽略,数据会正确导入
或者这些表空间存在且有权限和quota,它会自动建立表并导入数据
掌握这三个条件,没有什么用户不能导入的
追问在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢
追答需要你先建用户,然后再建这几个表空间,再给这个用户在这些表空间quota或者unlimited tablespace权限,导入就没问题了。
dmp里有建表语句,包含了表空间部分,所以它是不会管你默认表空间是什么,假设你默认表空间是system,而你所有的表都在其它表空间上,你导入时会按照表的原始位置建表,而不会建在你默认表空间的。
用如下命令即可:
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文件导出,再导入到另一个数据库的一个相同表结构的表中?