ORA-30036 表空間溢出


ORA-30036刪除大數據量報錯
a:分析是undo表空間不足造成
t1 300w行記錄




SQL> delete from t1;
delete from t1
            *1 行出現錯誤:
ORA-30036: 無法按 8 擴展段
 (在還原表空間 'UNDOTBS5' 中)




select (tablespace_name) "表空間名",     
       sum(total_size) "總空間/M",     
       sum(total_free) "剩余空間/M",     
       sum(max_continue) "最大連續空間/M",     
       round(sum(total_free) / sum(total_size) * 100) "剩余百分比/ratio"    
  from ((select tablespace_name,     
                (0) total_size,     
                round(sum(bytes) / 1024 / 1024, 2) total_free,     
                round(max(bytes) / 1024 / 1024, 2) max_continue     
           from dba_free_space     
          group by tablespace_name) union all    
        (select tablespace_name, round(sum(bytes) / 1024 / 1024, 2), 0, 0     
           from dba_data_files     
          group by tablespace_name))     
 group by tablespace_name     
 order by 5 asc;  



表空間名                         總空間/M 剩余空間/M 最大連續空間/M 剩余百分比/ratio
------------------------------ ---------- ---------- -------------- ----------------
UNDOTBS5                               50          0              0                0
UNDOTBS3                               10          0              0                0
UNDOTBS2                               10        .13            .06                1
UNDOTBS4                               10        .31            .06                3
USERS                               317.5     127.13          126.5               40
SYSAUX                                600     353.38            352               59
SYSTEM                                700     428.38            428               61
JERRY                                 550     411.94         362.94               75
TEST                                    5       3.81           3.75               76
TBS2                                    5       3.94           3.88               79
TOM                                     5       3.94           3.94               79

表空間名                         總空間/M 剩余空間/M 最大連續空間/M 剩余百分比/ratio
------------------------------ ---------- ---------- -------------- ----------------
UNDOTBS1                              200     178.44            174               89
TOM2                                   20         19             19               95
SOCTT_TBS                             200     198.63         198.63               99



解決方案
1:調整表空間的大小
 //300w
 alter database datafile 'D:\DEV\ORACLEDATA\TEST\UNDOTBS05.DBF' resize 1000M;//解決方案ok


2:重新創undo表空間並切換為當前undo表空間
select tablespace_name from dba_tablespaces;
select file_name from dba_data_files; 
create undo tablespace undotbs6 datafile 'D:\DEV\ORACLEDATA\TEST\UNDOTBS06.DBF' size 2000m;
alter system set undo_tablespace=UNDOTBS6

原本想創建一個大的表空間替換現有的表空間,,報錯
ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-30036: 無法按 8 擴展段 (在還原表空間 'UNDOTBS5' 中)

 


免責聲明!

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



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