2014年4月14日 星期一

Oracle - Tablespace 空間不足

今天打開資料庫查一個 table 的時候發現沒資料?
重新用 plsql 再倒還是沒資料?
看了一下錯誤訊息是

ORA-01658: 無法建立表格空間 (TABLESPACE NAME) 中區段的 INITIAL 擴充區塊

應該是 TABLESPACE 空間不夠的關係,

用下面這個 SQL 查一下目前 TABLESPACE ,

SELECT A.TABLESPACE_NAME, A.BYTES / 1024 / 1024 "Sum MB",
       (A.BYTES - B.BYTES) / 1024 / 1024 "used MB", B.BYTES / 1024 / 1024 "free MB",
       ROUND(((A.BYTES - B.BYTES) / A.BYTES) * 100, 2) "percent_used"
FROM (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES
       FROM DBA_DATA_FILES
       GROUP BY TABLESPACE_NAME) A,
     (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES, MAX(BYTES) LARGEST
       FROM DBA_FREE_SPACE
       GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
ORDER BY ((A.BYTES - B.BYTES) / A.BYTES) DESC

果然有一個滿了!

用下面這個 SQL 可以查到資料庫的實體檔案,

SELECT FILE_ID, FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE, INCREMENT_BY
FROM DBA_DATA_FILES
ORDER BY FILE_ID DESC;

查到之後,就可以用下面的語法去增加檔案的大小。

ALTER DATABASE  
DATAFILE 'C:\APP\FRANKIE\ORADATA\XXXXXXXX.DBF'  
RESIZE 400M;

調整一下 RESIZE 後面的數字就可以了,就這樣~~~



























沒有留言:

張貼留言