ORA-01654: 索引 GDYLSY.PK_ACD1 无法通过 1024 (在表空间 GDYLSY_DATA 中) 扩展

酷执行写入语句的时候,报了下面的异常信息:

ORA-01654: 索引 GDYLSY.PK_ACD1 无法通过 1024 (在表空间 GDYLSY_DATA 中) 扩展

第一反应是表空间不足了,数据没法写入到存储文件中。

更具体的是,ACD1表的索引 PK_ACD1 是自动扩展的,数据的写入使得它需执行自动扩展动作,但扩展所需要的空间占用了 名称为GDYLSY_DATA的表空间,而此表空间不够分配给索引自动扩展。

select sum(bytes/1024/1024) sizeMB from dba_free_space z where z.tablespace_name='GDYLSY_DATA'

还剩 18.56 mb 表空间

SELECT a.tablespace_name,a.table_name,a.index_name,a.initial_extent,a.next_extent FROM user_indexes a WHERE a.index_name='PK_ACD1';

 初始 196608, 下一次扩展 1048576  , 1mb

增加表空间:

ALTER TABLESPACE GDYLSY_DATA ADD DATAFILE

'+DATADG/PBE8CD3/440FF24BC46801B0E053BF6480510F0B/DATAFILE/gdylsy_data2.dbf' SIZE 50M

AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

剩余表空间==>>67.5625mb

再次尝试写入,还是报了同样的错误。

再给表空间增加数据文件,这次加一个1000mbDe

alter database GDYLSY_DATA ADD DATAFILE '+DATADG/PBE8CD3/440FF24BC46801B0E053BF6480510F0B/DATAFILE/gdylsy_data3.dbf' size 1000M

 AUTOEXTEND ON NEXT 10M MAXSIZE 2000M。

成功写入。

再看剩余表空间:

1236.56mb ?   自动扩展了?==问题解决了,但不太理解

扩展==增加表空间的方式

增加表空间大小的四种方法
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
 
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;

补充:

查询datafile路径的方法

SELECT * FROM dba_data_files a WHERE a.tablespace_name in ('GDYLSY_INDEX','GDYLSY_DATA');

猜你喜欢

转载自yhzhangdota.iteye.com/blog/2385044