表 xxx 無法通過 8192 (在表空間 USERS 中) 擴展


向Oracle 11g數據庫中批量插入數據,當插入4千萬條數據后,報出如下錯誤:
ORA-01653: 表xx無法通過 8192 (在表空間  USERS 中) 擴展。

這個表空間是設置了自增的。導致這個問題的原因是創建數據庫時,數據庫塊大小使用了默認的8kb,在oracle中表文件的容量DB_BLOCK_SIZE的關系是 maxsize=DB_BLOCK_SIZE×4194304;4194304=4G。結果剛好是32G,也就是說,數據塊大小在8kb時,單文件的最大尺寸是32G,所以即使設置了自增,也最多只能存32G數據。

解決辦法:

 1、增加數據文件:alter tablespace xxx add datafile '/XX/XXX/XXX/XXx.dbf' size xxxxM,AUTOEXTEND ON NEXT xxxxM MAXSIZE UNLIMITED; 該辦法可臨時解決該問題。

 2、使用大文件。oracle10g之后支持大文件。但是大文件只有一個數據文件,創建后不能通過增加數據文件的方式擴展,其他特性請自行查閱資料。

 3、數據庫重建,EXP導出數據,重建數據庫,安裝時選擇合適的數據塊大小。

最根本的應該是在創建數據庫時就應該考慮到數據量的問題,選擇好合適的數據塊,但因為這個是測試數據庫,所以沒有考慮周全。我是臨時增加了一個數據文件來解決的。

----查看表空間是否自增
select file_name,tablespace_name,autoextensible from dba_data_files;
----新增一個數據文件
alter tablespace USERS add datafile 'F:\APP\DWJ\ORADATA\ORCL\USERS02.DBF' size 20480M autoextend on next 1024M Maxsize unlimited;

參考資料: 解決Oracle報錯ORA-01653: 表xx無法通過 8192 (在表空間 xx_data 中) 擴展_D的博客-CSDN博客

                      oracle ORA-01653 表空間不能自動增長的原因及處理方法_12274138的技術博客_51CTO博客


免責聲明!

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



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