首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

导入数据库时指定表空间的遇到的有关问题

2012-02-17 
导入数据库时指定表空间的遇到的问题新创建了一个用户USER,并为其指定默认的表空间TABLESPACE_NEW,这个TAB

导入数据库时指定表空间的遇到的问题
新创建了一个用户USER,并为其指定默认的表空间TABLESPACE_NEW,这个TABLESPACE_NEW也是新建的。

然后回收了该用户对表空间的unlimited权限,并将用户USER在System表空间和原有的默认表空间TABLESPACE_OLD的配额置为0,又将在表空间TABLESPACE_NEW的配额设置成unlimited,以使用户USER导入数据库时,数据会放在表空间TABLESPACE_NEW里。

用imp命令导入时,发现数据的确导入了TABLESPACE_NEW中。

但是现在发现了一个问题,导入过程中,某些表出现了“超出表空间TABLESPACE_OLD的配额”,导致了无法导入该表。

想问的是,既然现在导入在TABLESPACE_NEW里,那么为什么还和TABLESPACE_OLD有关系?

[解决办法]
查看一下,出问题的表是否有lob类型,如blob,clob,long等
[解决办法]
你导出数据的表空间是在OLD的吧,那么导入时候去找表的默认表空间OLD,

[解决办法]

探讨
引用:

你导出数据的表空间是在OLD的吧,那么导入时候去找表的默认表空间OLD,
是这样的,导出数据的表空间是在OLD。但是其他的表都可以导入NEW中,为何这几个不行呢?

[解决办法]
lob类型的存储方式和其他字段类型不一样,他与对应user的default tablespace没有必然的联系。在exp/imp的时候,用普通的方法不行。好像10以后去掉了这个限制。
可变通实现,如先在目标用户及新表空间上建表,然后导入的时候ignore=y。
或者通过copy将含有lob的表迁移
[解决办法]
探讨
想问的是,既然现在导入在TABLESPACE_NEW里,那么为什么还和TABLESPACE_OLD有关系?

[解决办法]
探讨
引用:

lob类型的存储方式和其他字段类型不一样,他与对应user的default tablespace没有必然的联系。在exp/imp的时候,用普通的方法不行。好像10以后去掉了这个限制。
可变通实现,如先在目标用户及新表空间上建表,然后导入的时候ignore=y。
或者通过copy将含有lob的表迁移
原来是这样。也就说不含lob类型的表是会和use……

热点排行