ORA-01654_TableSpace空間不足問題處理


操作環境:Windows Server 2008 R2,32位Oracle11g R2。

導入大批量數據時報如下錯誤信息:

image

ORA-01654: 索引IOT.IDX_IOT_EQUIP_ID無法通過1024(在表空間USERS中)擴展

百度發現出現這種情況的可能是表空間不足,通過如下SQL統計表空間使用情況,發現確實空間剩余不多。

-- 查看所有表空間的數據使用情況
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 1
image

image

目前所有的表都放在了USERS表空間中,已經擴展到了32GB,目前使用了99.98%,剩余8M。空間確實不足,需要進行擴展。

 

通過如下SQL擴展表空間大小

alter database datafile 'D:\app\Administrator\oradata\orcl\USERS01.DBF' resize 51200M

發現又報了另外一個錯誤:

image

百度發現默認表空間數據文件大小根據DATA BLOCKS的大小有關,默認最大為32GB,目前USERS表空間對應的數據文件USERS01.DBF已經達到了32個GB,無法再進行擴展了。

解決辦法是增加表空間數據文件。

 

通過如下SQL增加表空間數據文件

alter tablespace USERS add datafile 'D:\app\Administrator\oradata\orcl\USERS02.DBF' size 10240M;

以上SQL語句為USERS表空間創建了一個名稱為USERS02.DBF的數據文件,該數據文件默認大小為10GB。

image

此時,USERS表空間有了兩個數據文件。

再次執行表空間使用情況SQL語句,查看表空間使用情況。

image


免責聲明!

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



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