磁盘空间为0了,其中主要是有一个表的数据量特别的大,而且有表空间。我想把去年的的数据都删除,确提示我磁盘空间不足。请问如何将数据删除呢。

解决方案 »

  1.   

    楼主可以试试把归档文件先剪切出来,放到别的机子上,在删文件,删完了再把文件考回来...如果数据库的事务操作比较频繁,归档文件是比较大的,以前公司在测试系统时,200G的数据库,产生了300G的归档文件,系统直接告急呀,当时出了一身冷汗,磁盘都彪到99%了..之后就批量的剪切归档文件,磁盘总算降下去了..在还原,Rman备份... 
      

  2.   

    1、将非系统表空间离线: 
      ALTER TABLESPACE TEST OFFLINE; 
    2、用OS命令重命名或重定为数据文件(cp     mv等等): 
    COPY "C:\oracle\oradata\ORADB\test01.dbf"  "E:\Program Files\Oracle\ORADATA\ORADB\test01.dbf" 
    注意不要用 mv /move . 要是弟四步不成功显示出错,你还可以做第三步相反的动作:) 
    3、重命名数据文件: 
    ALTER TABLESPACE TEST RENAME DATAFILE 
    ‘C:\oracle\oradata\ORADB\test01.dbf ‘ 
    TO 
    ‘E:\Program Files\Oracle\ORADATA\ORADB\test01.dbf’; 
    4、将表空间联机: 
    ALTER TABLESPACE TEST ONLINE;
      

  3.   


    新加datefilealter tablespace ts01 add datafile ...... 到其他的磁盘或者rename已有的datafile到其他的磁盘 如7 楼。
      

  4.   


    数据库处于归档模式的时候,将把产生的unline redo信息全部保存到归档空间下.
    而在对数据做delete操作的时候,将产生大量的redo 和undo信息.有可能把生产系统的磁盘空间撑死.
    这个时候做delete操作就要注意了,为了避免这种现象的发生一般有两种方式去处理.
    1.把数据库临时至于非归档模式,(可以是数据库的也可以是表的)再做数据库的delete操作.
    2.把数据库的archivelog dest指派到有充足空间的磁盘上去.再做delete操作.