5. ORA-01653: unable to extend table xxx by xxx in tablespace xxx
详细原因
数据表空间对应数据文件已满,且未开启自动扩展;磁盘分区空间耗尽;自动扩展 maxsize 设置上限已打满。执行 insert/update 批量数据时触发。
完整排查 & 解决
- 检查表空间使用率
SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) TOTAL_M, ROUND(SUM(MAXBYTES)/(1024*1024),2) MAX_M, ROUND((SUM(BYTES)/SUM(MAXBYTES))*100,2) USAGE_RATE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME;
开启现有文件自动扩展
alter database datafile '/u01/oradata/orcl/users01.dbf' autoextend on next 100m maxsize unlimited;
新增数据文件扩容
alter tablespace users add datafile '/u01/oradata/orcl/users02.dbf' size 1G autoextend on next 100m maxsize 30G;
磁盘不足则清理服务器无用文件释放存储空间。