怎么解決數據庫表空間不足

一、數據庫表空間不足導致了,插入操作會報出

conn.msg?=?ORA-01653:?表?*******表名字********無法通過?8192?(在表空間?USERS?中)?擴展  ORA-06512:?在?"調用的函數",?line?58  ORA-01403:?未找到任何數據  ?[db.cpp:233]

這個操作報出 ?查詢得到是數據表空間大小不足導致。

二、查看表空間占用的一些相關信息

–查詢表空間大小 占用的內容

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;

結果:

怎么解決數據庫表空間不足這個是所有的表的空間的所有的占用的信息大小,表的空間大小是分配給表空間的所有大小信息。使用比如果比較高的話可能就會出現空間不足的情況導致數據無法插入。

三、查詢表空間對應的物理磁盤的絕對地址和大小和文件ID

—查詢數據文件以及數據文件大小

select?tablespace_name,?file_id,?file_name,  round(bytes/(1024*1024),0)?total_space  from?dba_data_files  order?by?tablespace_name;

怎么解決數據庫表空間不足

四、以下三種都可以進行對表空間增加大小

1、直接不改變之前的DBF文件,另外添加一個文件的語句,可以增加表空間的大小

–讓數據文件自動擴展

alter?tablespace?users?add?datafile?'D:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF'?size?32760m?autoextend?on?next?1024m?maxsize?unlimited;?  --segment?space?management?auto?extent?management?local;

據說可以連接上一句一起執行(把上一句分號去掉即可),沒執行,不知道執行效果,謹慎期間,慎用

2、–讓數據文件自動擴展 在源文件中直接改動表空間大小 設置成自動擴展的形式 ?增速是以100m的大小自動擴展 ?擴展最大到10000m為止

alter?database?datafile?'D:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF'?autoextend?on?next?100m?maxsize?10000m

3、–把數據文件大小調整 ?重新調整源文件的內容大小 不是自動擴展的 ?直接寫死的大小情況

alter?database??datafile?'D:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF'??resize??500M;

五、把4的上面的操作執行完之后 在進行查詢就可以看到分配的總空間有了很大的增加 占用率占用下降。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享