問題描述
在向orale數據庫導入數據的時候報 ORA-01658: 無法為表空間 XXX中的段創建 區錯誤。
這是由于表空間對應的數據文件中數據量超過在創建表空間的時候數據文件初始化大小值,當數據量達到這個值,再向數據庫中導入數據就會報錯。解決方案
解決辦法就是擴展表空間,可以選擇將表容量擴大,比如擴展到,或者當表空間不夠時每次自動增加一定的容量,如每次自增200M。
--查看表空間大小
SELECT FILE_NAME as 數據文件,TABLESPACE_NAME as 表空間名稱,AUTOEXTENSIBLE as 自動擴展,STATUS as 狀態,MAXBYTES as 可擴展最大值,USER_BYTES as 已使用大小,INCREMENT_BY as 自動擴展增量 FROM dba_data_files
--擴展空間,將數據文件擴大至5000MB
alter database datafile 'D:\DataBase\Test.DBF' resize 5000m;
--自動增長,表空間不足時增加200MB,最大擴展5000MB
alter database datafile 'D:\DataBase\Test.DBF' autoextend on next 200m maxsize 5000m;
--擴展無限大空間
alter database DATAFILE 'D:\DataBase\Test.DBF' autoextend on maxsize unlimited;

所以將設置為也并非能無限擴展,還受限于區塊大小,即大小,如一般默認8k,數據文件大小最大也只能擴展到32GB。當然可以設置(大文件表空間)修改臨時表空間大小,8k的表空間文件理論上最大可以擴展32TB,但是實際上受操作系統的文件系統限制。使用大文件表空間( )可以大幅度增強數據庫的存儲能力修改臨時表空間大小,簡化數據庫管理工作。與此同時,付出的代價是增加備份與恢復的時間。如果是中小型項目,數據量在TB級以內,建議使用小文件表空間。一個小文件表空間( )最多可以包含1022個數據文件()。詳細可看物理文件限制大小表格
添加表空間數據文件sql腳本如下:
--增加數據文件,TestTablespace是這里測試使用的表空間名稱
alter tablespace TestTablespace add datafile 'D:\DataBase\Test2.DBF' size 1024m;