Oracle解決Ora-01653無法擴展表空間問題


先針對可能性1查看表空間使用情況 

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
       D.TOT_GROOTTE_MB "表空間大小(M) ",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') "使用比",
       F.TOTAL_BYTES "空閑空間(M) ",
       F.MAX_BYTES "最大塊(M) "
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY 4 DESC

通過上表我們可以看出,表空間***_TRD的表空間的空間使用率已經達到99.6%,只剩下133.88M可用,而其索引空間 ***_TRD_IDX的空間使用率更是達到了99.97%,只剩下4.94M可用。

SELECT T.TABLESPACE_NAME,
       D.FILE_NAME,
       D.AUTOEXTENSIBLE,
       D.BYTES,
       D.MAXBYTES,
       D.STATUS
  FROM DBA_TABLESPACES T, DBA_DATA_FILES D
 WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
 ORDER BY TABLESPACE_NAME, FILE_NAME;

 

從上表可以看出,所有的表空間都開啟了自動擴展的功能,而且狀態都是available的。

 綜合上述檢查結果,可斷定遇到的問題是因為可能性1—表空間不足導致。解決辦法也就是擴大表空間。

 

擴大表空間的四種方法: 
1、增加數據文件 
ALTER TABLESPACE ***_TRD ADD DATAFILE 
‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M;

2、增加數據文件並允許自動增長 
ALTER TABLESPACE ***_TRD ADD DATAFILE 
‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

3、允許已存在的數據文件自動增長 
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’ 
AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

4、手工改變已存在數據文件的大小 
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’ 
RESIZE 10240M;

實際解決過程中,我們使用的是方法2。

對於具體的項目,需要根據表空間中各個表的實際情況來確定具體那種方法最優,在此不做進一步闡述。

 


免責聲明!

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



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