programing

ORA-01654: 인덱스를 확장할 수 없습니다.

i4 2023. 7. 5. 20:05
반응형

ORA-01654: 인덱스를 확장할 수 없습니다.

모든 Oracle Gurus를 호출합니다!

WebSphere에서 잘 테스트된 애플리케이션을 클러스터링하는 중입니다.문제의 애플리케이션은 이 일이 발생하기 전에 큐에서 1k의 JMS 메시지를 처리하는 과정을 절반 정도 완료했습니다.

---- Begin backtrace for Nested Throwables
java.sql.SQLException: ORA-01654: unable to extend index DABUAT.INDEX1 by 128 in tablespace DABUAT_TBLSP

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)

저는 온라인에서 간단히 살펴보았고 왜 이런 일이 발생할 수 있었는지에 대한 몇 가지 가능한 제안을 찾았습니다. 만약 누군가가 왜 이런 일이 지금 발생했는지에 대해 명확하게 설명해 주신다면 저는 제 애플리케이션이 클러스터화된 것에 매우 감사할 것입니다.

칼에 대하여

디스크 공간이 부족합니다.

사용자의 수를 늘립니다.TABLESPACE:

ALTER TABLESPACE DABUAT_TBLSP
ADD DATAFILE 'C:\FolderWithPlentyOfSpace\DABUAT_TBLSP001.DBF' 
SIZE 4M
AUTOEXTEND ON NEXT 4M
MAXSIZE 64G;

-- Put your own size parameters here

ASM을 사용하는 경우 아래 설명을 사용하여 추가할 수 있습니다.

아래 명령을 실행하여 데이터 파일의 크기를 가져올 수 있습니다.

SELECT
    file_name,
    bytes / 1024 / 1024 mb
FROM
    dba_data_files
WHERE
    tablespace_name = 'APP_DATA'
ORDER BY
    file_name;


FILE_NAME mb
------------------------------------------------------------ -------
+DATA/SID/datafile/app_data.dbf 20000
+DATA/SID/datafile/app_data.dbf 28100

크기 조정 및 추가

+DATA/path/indx_operational_00.dbf

alter database datafile '+DATA/path/indx_operational_00.dbf' resize 3000m;

이 질문에 대형 데이터베이스의 작은 부분 집합을 Docker의 테스트 데이터베이스로 마이그레이션하는 동안 동일한 오류가 발생했습니다.

저의 경우 문제는 단순히 사용자 테이블에 시스템 테이블스페이스를 사용하는 것이었는데, 이는 Oracle 이미지의 기본 설정이었습니다.명령을 사용하여 사용자 정의 테이블스페이스를 생성한 후

create tablespace mytablespace datafile '/u01/app/oracle/oradata/XE/mytablespace.dbf' size 500M autoextend on next 250M maxsize 10G;` 

(해당 테이블 영역에 있는 모든 테이블 및 인덱스를 생성할 뿐만 아니라) 문제가 사라졌습니다.데이터 파일을 특별히 다룰 필요는 없었습니다.

언급URL : https://stackoverflow.com/questions/768920/ora-01654-unable-to-extend-index

반응형