ora-01653表空间扩展失败产生的场景和处理方法

产生ora-01653表空间扩展失败的过程:

DBF放在E盘且E盘只有剩余的200M

--1.建表

DROP TABLE bigtab;

CREATE TABLE bigtab AS SELECT rownum as "id", a.* FROM dba_objects a;

DROP TABLE smalltab;

create table smalltab as select rownum as "id", a.* FROM dba_tables a;

--2.增加数据

 DECLARE

n NUMBER;

BEGIN

FOR n IN 1..100

LOOP

INSERT INTO bigtab SELECT rownum as "id", a.* FROM dba_objects a;

END LOOP;

COMMIT;

END;

//ora-01653异常出现。

处理办法:

先清空E盘空间到2G

查:dbf空间是否是自动增长。

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;

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;

确定后,执行:

ALTER DATABASE
    DATAFILE 'E:\DATA_DATA.DBF' AUTOEXTEND
    ON NEXT 50M MAXSIZE UNLIMITED

解决。

时间: 2024-12-17 11:39:09

ora-01653表空间扩展失败产生的场景和处理方法的相关文章

oracle数据库报错ora-01653表空间扩展失败解决方案

1)ora-01653错误截图: 可以看到有两张表的insert受到了影响,都是在USERS表空间里.用以下SQL查看表空间使用情况: SELECT a.tablespace_name "表空间名",a.bytes / 1024 / 1024 "表空间大小(M)",(a.bytes - b.bytes) / 1024 / 1024 "已使用空间(M)", b.bytes / 1024 / 1024 "空闲空间(M)",roun

ORA-01653:表空间扩展失败的问题(开启表空间自动扩展)

----查询表空间使用情况---使用DBA权限登陆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') &q

ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件

转自原文 ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件 当前系统的数据量越来越大的,昨天还运行正常的数据库,突然无法使用了.经过定位发现是"ORA-01653 " 即表空间满了,在这里简单记录下处理办法,长期来看Oracle是顶不住了,需要尽快切到Hadoop的Hbase里存储数据 参考如下SQL ----查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT

ORA-01654 索引 无法通过 表空间扩展

"ORA-01654: 索引VGSM.AUDIT_DATA_I无法通过8192(在表空间KLDB中)扩展" 1.有可能是索引表空间不够 select sum(bytes/1024/1024) sizeMB from dba_free_space z where z.tablespace_name='KLDB' 还有400M的剩余空间 应该足够. 但是通过查询发现是 select s.index_name, s.table_name, s.tablespace_name, s.initi

ORACLE 表空间扩展方法

环境: linux系统 工具:PL/SQL DEVELOPER 第一步:查看表空间的名字及文件所在位置: select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name 第二步:增大所需表空间大小: alter database datafile '表空间位置'resize 新的尺寸 例如: alter d

表空间扩展

修改数据库文件为自动扩展以达到表空间自动扩展的目的 表空间自动扩展 1.数据文件自动扩展的好处1)不会出现因为没有剩余空间可以利用到数据无法写入2)尽量减少人为的维护3)可以用于重要级别不是很大的数据库中,如测试数据库等 2.数据文件自动扩展的弊端1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大2)没有人管理的数据库是非常危险的 3.查询当前数据库中所有数据文件是否为自动扩展[email protected]> select tablespace_name,file_name

ORACLE 表空间扩展

最近公司在对即将上线的系统做数据迁移和压力测试,于是乎需要和 Oracle 经常的打交道.今天正好碰到了表空间的问题,记录下来以后备用.也是最近才学习到的,原来 Oracle 表空间也是有大小限制的,比如公司安装的 Oracle 单个 dbf 最大 31GB,所以当一个表空间文件达到最大值后就无法再增长了.需要再开辟一个表空间文件. 查看表空间的名字和物理路径 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),

oracle创建表空间 扩展表空间文件 修改表空间自动增长

1. 创建表空间create tablespace SIRM2 datafile 'D:\oracle\product\10.2.0\oradata\orcl\SIRM2.dbf' size 1024M --存储地址 初始大小1Gautoextend on next 10M maxsize unlimited   --每次扩展10M,无限制扩展EXTENT MANAGEMENT local  autoallocatesegment space management auto;2.创建用户 cre

oracle ORA-01653 表空间不能自动增长的原因及处理方法

背景:表空间已经设置自动增长,但达到一定大小后仍会报ORA-01653. 解决过程: 查阅相关资料,多数只给出了解决办法,但这个解决办法经过验证也是临时了,到了一定大小仍旧会报错,到时只能再次采取同样办法进行操作. 通过几台机器的观察发现,报出该错误时,数据表文件的大小是一致的32G.因此判断,某种原因导致了该限制.于是进行相关搜索,最终找到了答案,但是,对于这一问题描述,有2个说法:1.windows系统下,单文件有32G的限制,但该说法我没有查到有力的支持证据,即便有其他人提到该说法,但并没