由于前期的分配分析不够透彻;造成目前以下的窘境:
1、部分用户表空间数据使用率高达99.71%
2、部分用户表空间不到1%
3、通常同一表空间建有3个以上的数据文件有同事问我,能否将占用低的数据文件挪出空间给高占用率的表空间,前提是在不影响和破坏数据库的条件下。
不讨论扩硬盘空间的方式。

解决方案 »

  1.   

    可以将数据段和索引段迁移到其他的表空间中,对于数据段,用
    ALTER TABLE table_name MOVE TABLESPACE new_tablespace命令。查询表所在的表空间及占用的大小的sql语句
    SELECT segment_name,tablespace_name,bytes/1024/1024/1024 
      FROM dba_segments;SELECT segment_name,tablespace_name,bytes/1024/1024/1024 
      FROM user_segments;
    对于索引,只需要重建索引就可以了,具体的命令可以参考oracle文档。
      

  2.   

    谢谢zcs_1(生生不息)的及时回复,再请教一个问题;
    因为是在线系统,以上操作会影响业务吗?