创建的表空间数据文件能否顺序存储。

全栈极简
博客专家认证
2010-03-10 08:58:01
一开始,划得表空间数据文件多了,能否实现文章标题所述功能,这样我就可以删除几个数据文件,回收一些空间了。

请高手指教。谢谢。
...全文
115 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2010-03-11
  • 打赏
  • 举报
回复
了解了,原来数据文件已经有数据的话,就没办法删除了,只有先dmp再exp,或者将数据文件大小修改一下,以释放一些磁盘空间。如果没有数据,直接删除之,也可。感谢大家的回复。
tangren 2010-03-10
  • 打赏
  • 举报
回复
收缩表是可以的,但要删除数据文件就麻烦了,因为数据文件等记录在控制文件中,不好处理的
如果丢了强行删除,可能造成数据库不能启动。
sorry0481 2010-03-10
  • 打赏
  • 举报
回复
引用 3 楼 tangren 的回复:
简化一下:
1、export要减少数据文件的表空间,例:
  c:\>exp test/test file=tbs.dmp tablespace=(tbs)

2、使用include content子句删除表空间,例:
  sql>drop tablespace tbs including contents;
  c:>del \oracle\oradata\tbs*.dbf

3、重建表空间,例:
  sql>create tablespace tbs datafile '\oracle\oradata\tbs01.dbf' size 500m;

4、import表空间的所有数据对象,例:
  c:\>imp test/test file=tbs.tmp full=y ignore=y log=tbs.log


这方法挺好了
全栈极简 2010-03-10
  • 打赏
  • 举报
回复
补充一句,数据已经分布到同一个表空间的多个数据文件中了。。。
能否收缩下,转移下。。。
tangren 2010-03-10
  • 打赏
  • 举报
回复
简化一下:
1、export要减少数据文件的表空间,例:
c:\>exp test/test file=tbs.dmp tablespace=(tbs)

2、使用include content子句删除表空间,例:
sql>drop tablespace tbs including contents;
c:>del \oracle\oradata\tbs*.dbf

3、重建表空间,例:
sql>create tablespace tbs datafile '\oracle\oradata\tbs01.dbf' size 500m;

4、import表空间的所有数据对象,例:
c:\>imp test/test file=tbs.tmp full=y ignore=y log=tbs.log
全栈极简 2010-03-10
  • 打赏
  • 举报
回复
引用 1 楼 tangren 的回复:
一种方案:
1、使用exp逻辑导出在该表空间的用户的所有对象;
2、删除用户,删除表空间数据文件,并重建表空间,增加用户;
3、使用imp导入相应的对象;


oracle太麻烦了,感觉什么操作都要copy一下,应该会有比较简单的方法吧。不过还是谢谢1楼的回复!
tangren 2010-03-10
  • 打赏
  • 举报
回复
一种方案:
1、使用exp逻辑导出在该表空间的用户的所有对象;
2、删除用户,删除表空间数据文件,并重建表空间,增加用户;
3、使用imp导入相应的对象;
Dave 2010-03-10
  • 打赏
  • 举报
回复


resize 表空间..





------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧