ORACLE數據庫占用大量硬盤空間常規解決方法


通常ORACLE數據庫占用硬盤空間過大的原因有這么幾個(以oracle 10.2.0版本為例):

  1、oracle的安裝目錄...\oracle\product\10.2.0\admin\orcl\udump目錄下,追蹤日志文件占用大量硬盤空間;

  2、oracle的安裝目錄...\oracle\product\10.2.0\oradata\orcl目錄下,UNDO表空間文件占用大量硬盤空間。

  針對以上兩個問題,解決方法如下。

  第一個問題解決方法:

  udump目錄下面是oracle的追蹤日志文件,如果平常不去關心的話,建議刪除掉。對數據庫不會造成影響。另外在SQLPLUS中輸入:

  alter system set sql_trace =false;

  如果需要保留追蹤日志文件的,那可以給設定一個限額。命令行如下:

  alter system set max_dump_file_size='100m' ;

  注:max_dump_file_size默認大小值的單位是數據塊,因此如果限定了大小為100M,需要加單引號。

  第二個問題的解決方法:

  需要回收UNDO表空間。先創建一個新的過度的表空間UNDOTBS02,將UNDO表空間指向到UNDOTBS02,然后DROP原來的表空間UNDOTBS01,刪除UNDOTBS01.DBF文件,釋放磁盤空間。接着創建新的表空間UNDUTBS01,再將UNDO表空間指向到新建表空間的UNDOTBS01,DROP過度的表空間UNDOTBS02。

  具體操作如下:

  1)使用DBA登陸SQLPLUS

  2)建立過度表空間undotbs02

  create undo tablespace undotbs02 datafile 'e:\undotbs02.dbf' size 100M;

  3)切換UNDO表空間為新的UNDO表空間

  alter system set undo_tablespace=undotbs02 scope=both;

  4)刪除原UNDO表空間

  drop tablespace undotbs01 including contents;

  5)刪除硬盤上...\oracle\product\10.2.0\oradata\orcl目錄下的undotbs01.dbf文件。

  6)建立新的表空間undotbs01,切換UNDO表空間到新建的undotbs01,刪除undotbs02表空間。方法同上。

  至此,完成了UNDO表空間回收。

  上面的操作是臨時解決UNDO表空間過大的方法。Oracle的AUM(Auto Undo Management)從出生以來就經常出現只擴展,不收縮(shrink),通常我們可以設置足夠的UNDO表空間大小,然后取消其自動擴展屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM