ORA-01653:表 DBTABLE.XXX 无法通过 8 (在表空间XXX中扩展)如何处理?

Oracle数据库表空间不足::ORA-01653

原因分析

出现该错误的原因是由于“表空间数据太大”问题导致,Oracle数据库在创建表的时候会默认给一个表空间作为表数据存储的默认表空间,当数据库中某个表空间数据无法新增(存满了,一个数据文件最大为32G)的时候,恰好系统调用数据库应用到了该表空间,就会报错异常!

如何处理

  • 查看数据库中所有表空间相关信息,执行一下SQL:
SELECT T.TABLESPACE_NAME,D.FILE_NAME,   
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS   
FROM DBA_TABLESPACES T,DBA_DATA_FILES D   
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME 
ORDER BY TABLESPACE_NAME,FILE_NAME;

该SQL可以查看表空间是否有自动扩展能力,同时BYTES是表空间已使用值,MAXBYTES是表空间可存储最大值,如下图所示:
请添加图片描述
第一条记录就是我的USERS表空间数据已经无法存储,所以我创建了第二个数据存储文件来保证该表空间可以正常运行。

  • 创建新数据文件,并且允许数据文件自动增长,执行SQL:
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 1G
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

其中设置的每个文件初始分配空间为1G, AUTOEXTEND ON为自动增长大小,oracle单个文件大小最大不超过32G,创建好以后就有了上图的第二条数据。

当然,还有其他一些方式,比如 允许已存在的数据文件自动增长 或者 手工改变已存在数据文件的大小等等,不过上面新增数据文件的方式应该可以解决以上类似问题!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值