oracle导入dmp的时候提示某个表空间不存在,但这个表空间确实已经建立好了,是什么问题呢
该dmp文件有多个表空间,我把这些表空间都给同一个用户user配额了,user也授权了dba,resource权限了,但imp的时候就是提示tablespaceXXXdo...
该dmp文件有多个表空间,我把这些表空间都给同一个用户user配额了,user也授权了dba,resource权限了,但imp的时候就是提示tablespace XXX dose not exist
展开
4个回答
展开全部
建议你使用下面的语句(在源库),查看一下用户所用的表空间,是否真的在你的目的库已经存在了
--源库
select distinct a.tablespace_name from dba_segments a where a.owner =upper('username');
select distinct a.temporary_tablespace from dba_users a where a.username =upper('username');
--目的库select name from v$datafile;
提示:既然系统都报错了,肯定八九不离十,先核对核对吧!
--源库
select distinct a.tablespace_name from dba_segments a where a.owner =upper('username');
select distinct a.temporary_tablespace from dba_users a where a.username =upper('username');
--目的库select name from v$datafile;
提示:既然系统都报错了,肯定八九不离十,先核对核对吧!
更多追问追答
追问
我查了一下,我原先给这个用户分配了5个表空间,其中一个是默认的,另外4个表空间是用如下语句分配的:alter user username quota unlimited on tablespace_name;结果刚刚查下来该用户的表空间只有默认的表空间和用上面语句执行分配的最后一个表空间,其他的表空间也是用上面的语句执行的,会不会系统只认最后一个分配给他的表空间?
追答
系统默认的给用户的存储表数据的表空间是在创建用户的时候指定的,如果没有指定就默认在user表空间,指定表空间的语句如下:
create user testserver_user identified by testserver_user default tablespace table_spacename;
你如果迁移的话,按照源库先整理吧,然后在目的库,再做合理的分配,比如这个用户需要建立分区表,就要指定表空间去建立这样的表,又或该用户下的表比较多,那么就可以考虑将表的索引建立在一个单独的表空间了,这样的话,便于管理。
展开全部
在数据库里面你没有指定dmpd的路径这个是需要创建的 然后授权才能读取导入
CREATE OR REPLACE DIRECTORY
DMPDP AS
'/oracledata/dmpdp';//你的dmpdp的文件存在路径
//用户授权
GRANT READ, WRITE ON DIRECTORY SYS.DMPDP TO IMA_MLC;
CREATE OR REPLACE DIRECTORY
DMPDP AS
'/oracledata/dmpdp';//你的dmpdp的文件存在路径
//用户授权
GRANT READ, WRITE ON DIRECTORY SYS.DMPDP TO IMA_MLC;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哪个表空间没有就建哪个,这样应该就没有问题,从未遇到过楼主的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dmp文件导出的时候表空间的命名和你现在新建的表空间是一致的吗?
追问
很肯定是一致的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询