1. 程式人生 > 其它 >oracle資料庫報錯:ORA-01654: 索引 aaa 無法通過 128 (在表空間 bb 中) 擴充套件

oracle資料庫報錯:ORA-01654: 索引 aaa 無法通過 128 (在表空間 bb 中) 擴充套件

技術標籤:ORACLE

1.有可能是索引表空間不夠
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 4 DESC;
還有1M的剩餘空間。
在這裡插入圖片描述

通過查詢發現是
select t.index_name,
t.table_name,
t.tablespace_name,
t.initial_extent,
t.next_extent
from user_indexes t
where t.index_name = ‘aaa’

在這裡插入圖片描述
索引的 NEXT_EXTENT 過大,剩餘空間不滿足擴充套件需要

網上查了一下,說是可以通過加大資料檔案來解決,這個我沒有執行
alter database datafile 'D:\ORACLE\ORADATA\DMSDB\DIMS_INVALID_PICTURE.DBF'
resize 1000M 擴大檔案大小 例子:ALTER tablespace "safeneeds" add datafile'/home/oracle/app/oradata/POLICE_OICP/SAFENEEDS2.DBF' size 2056M AUTOEXTEND ON NEXT 50M maxsize UNLIMITED ALTER tablespace "表空間名" add datafile'路徑/名字隨便起一個(一般在原來基礎上加數字).DBF' size 2056M AUTOEXTEND ON NEXT 50M maxsize UNLIMITED SAFENEEDS2.DBF 改成 其他名字就行 注意:雙引號 "safeneeds"

我是重建了該索引
alter index aaa rebuild tablespace bb storage(initial 64K next 256K pctincrease 0):