日期:2014-05-17  浏览次数:20794 次

oracle数据表和表空间的一个问题。
问题描述:
2个数据库,
A:数据库有数据,包括数据库表,数据库表文件。大约5G左右的表空间占有量。
现在把A数据库的这个表清空,仅仅保利表结构。然后倒出来。大约有2M左右的11.dmp文件大小。
导出命令:exp  user/passwd  file=d:\11.dmp compress=no

B:现在把这个2M左右的表文件导入到B数据库中。那么B数据库的表结构大小必须为5G左右,不然导进去。
请问,这到底是为什么?有什么方式可以防止这样的的事情吗?
因为11.dmp文件就2M左右。为什么表空间必须得和A数据库的表空间5G大小才能导入呢?

求大神帮帮我到底哪里出问题了。

------解决方案--------------------
由于你的A数据虽然删除了,但A的表空间分配的还是5G大小。
------解决方案--------------------
如果你的“把A数据库的这个表清空”这个操作不是truncate或者drop了重建,那么之前分配给这个表的空间还是被这个表占用着
------解决方案--------------------
引用:
如果你的“把A数据库的这个表清空”这个操作不是truncate或者drop了重建,那么之前分配给这个表的空间还是被这个表占用着

顶一个
------解决方案--------------------
或者
alter table 表名 shrink space
------解决方案--------------------
引用:
或者
alter table 表名 shrink space

没错,也可以,先建出表,然后ignore=y,这样只导入数据