熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

做了archive後如何收縮Oracle的數據文件

2013-11-13 16:23:47  來源: Oracle 

  在日常的工作和學習中很多人在對數據庫中的數據做了archive後數據量會出現減少的情況在這種前提下原來定義的數據文件假如不進行收縮就會浪費很多的空間在下文中我們將詳細介紹一種解決此問題的方法

  首先停止listener避免在rebuild時有dml操作

  ◆利用Toad的tools>rebuild multiple objects對欲收縮的表空間所涉及的表及索引進行rebuild(就是alter table table_name move tablespace 命令)

  例子

  
  Alter table SICS_HISTORYCOD_AMOUNT move
  TABLESPACE TBSP
  Parallel (Degree ) ;
  Alter Table SICS_HISTORYCOD_AMOUNT noparallel;
  Alter index SICS_HISTORYIX_COD_AMOUNT rebuild
  TABLESPACE TBSP
  Parallel (Degree ) Nologging
  online;
  Alter index SICS_HISTORYIX_COD_AMOUNT noparallel;

  選擇項中我們可以選擇rebuild associated indexes with tables這樣在產生腳本時可以同時對index做rebuild(注意table如果move了表空間必須對index做rebuild)

  ◆Rebuild結束後對數據文件的實際大小做評估

  ()找出表空間所涉及的所有數據文件

  sql>select * from dba_data_files; 》可以獲得file_id

  ()找到最大的block_id

  SQL>select max(block_id)*db_block_size// from dba_extents where file_id=;

  ◆收縮數據文件的空間

  SQL> alter database datafile path/data_file resize xxxM; 此值來自於()


From:http://tw.wingwit.com/Article/program/Oracle/201311/18261.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.