ORACLE ORA-01653: unable to extend table
今天用PL SQL Developer往oracle數據庫中導入數據時,忽然報錯,只能終止,錯誤的具體內容以下:oracle
ORA-01653: unable to extend table USER_DATA.JKHDFXJL by 128 in tablespace MSMSapp
大概意思是說USER_DATA表空間不足了,因而google了一下,大概有了些眉目。出現這種表空間不足的問題通常有兩種狀況:一種是表空間的自動擴展功能沒有開;另外一種是空間確實不夠用了,已經達到了自動擴展的上限。大數據
因此咱們解決問題的步驟就是先查看Oracle數據庫表空間大小,而後看一下表空間下的全部的數據文件的自動擴展功能是否打開;若確實是表空間不夠用了,那麼咱們就須要擴大表空間了。google
具體步驟以下:spa
SELECT a.bytes / (a.bytes - b.bytes) / b.bytes / round(((a.bytes - b.bytes) / a.bytes) * FROM FROM GROUP (SELECT FROM GROUP WHERE ORDER |
"表空間大小(M)"表示表空間全部的數據文件總共在操做系統佔用磁盤空間的大小;
好比:USER_DATA表空間有2個數據文件,datafile1爲300MB,datafile2爲400MB,那麼USER_DATA表空間的"表空間大小"就是700MB。
"已使用空間(M)"表示表空間已經使用了多少;
"空閒空間(M)"表示表空間剩餘多少;
"使用比"表示已經使用的百分比;
SELECT tablespace_name, bytes / maxbytes / FROM WHERE |
SELECT FROM WHERE ORDER |
查看"autoextensible"對應的值是YES仍是NO,如果NO,說明MSMS表空間的自動擴展功能沒有開,改爲YES就能夠了。
擴大表空間又分兩種作法:一種是增大數據文件大小,一種是增長數據文件數量。
首先找出該表空間對應的數據文件及路徑
SELECT |
--查找對應的表空間中的數據文件的全路徑,該路徑對應FILE_NAME字段。
alter |
--增長對應的表空間裏面的某個數據文件的大小爲***M。
獲取建立表空間的語句:
SELECT |
alter autoextend |
--新增一個數據文件,全路徑的數據文件名稱爲該新增數據文件的全路徑文件名稱。大小爲***M,自動擴展功能打開,且該數據文件的最大擴展值爲20G。
SELECT FROM WHERE |
altertablespace DROP |
PS:表空間通常讓空閒百分比保持在10%以上,且數據文件大小最好不要超過2G。當表空間不足時,要麼resieze datafile,要麼增長datafile。