programing

누가 ORA-29861 오류와 그 가능한 원인을 쉬운 영어로 설명해 줄 수 있습니까?

yellowcard 2023. 6. 24. 08:58
반응형

누가 ORA-29861 오류와 그 가능한 원인을 쉬운 영어로 설명해 줄 수 있습니까?

기본 Hibernate를 사용하여 Grails 프레임워크에 애플리케이션을 구현했습니다.잠시 실행된 후 Oracle DB 오류가 발생하여 문제의 인덱스를 다시 작성하여 해결했습니다.발생 가능한 원인과 방지 방법을 제안할 수 있는 사람이 있는지 궁금합니다.

원인: org.springframework.jdbc.범주화되지 않은 SQLE 예외:

최대 절전 모드 작동:JDBC 배치 업데이트를 실행할 수 없습니다. SQL [update RSS_ITEM set guid=?, pubdate=?, link=?, rss_source_id=?, title=?, description=?, rating_raw=?, rating_created=?, date_locked=?에 대한 분류되지 않은 SQL 예외입니다.여기서 RSS_ITEM_ID=?]; SQL 상태 [9999]; 오류 코드 [29861]; ORA-29861: 도메인 인덱스가 LOADING/FAILED/UNAVAILABLE로 표시됩니다.

중첩 예외는 java.sql입니다.BatchUpdateException: ORA-29861: 도메인 인덱스가 LOADING/FAILED/UNAVISEBLE로 표시되어 있습니다.

손상된 인덱스를 찾으려면 다음을 사용합니다.

select index_name,index_type,status,domidx_status,domidx_opstatus from user_indexes where index_type like '%DOMAIN%' and (domidx_status <> 'VALID' or domidx_opstatus <> 'VALID');

인덱스를 다시 작성하려면 다음을 사용합니다.

alter index INDEX_NAME rebuild;

도메인 인덱스는 특수한 유형의 인덱스입니다.OCI를 사용하여 자체 개발이 가능하지만 Oracle Text에서 제공하는 인덱스 유형 중 하나를 사용하고 있을 가능성이 높습니다.당신의 표에 자유 텍스트 열이 포함되어 있는 것처럼 보이기 때문에 이 말을 합니다.

가장 일반적으로 사용되는 텍스트 색인은 CTXSYS.CONTEX 색인 유형입니다.이 색인 유형의 요점은 큰 문서 색인 작업을 최소화하기 위해 트랜잭션으로 유지 관리되지 않는다는 것입니다.즉, 표에 문서를 삽입하거나 업데이트할 때 문서는 즉시 색인화되지 않습니다.대신 데이터베이스 작업과 같은 백그라운드 프로세스가 정기적으로 인덱스 동기화를 시작합니다.동기화되는 동안에는 인덱스를 사용할 수 없습니다.어떤 이유로든 다시 동기화에 실패하면 인덱스를 삭제하고 다시 만들어야 합니다.

이것은 당신에게 정기적인 일입니까?그렇다면 지원서를 다시 평가해야 할 수도 있습니다.다른 종류의 인덱스(예: CTXSYS.CTXCAT)가 더 적합할 수 있습니다.오류 메시지에 대해 한 가지 인상적인 점은 UPDATE 문이 기본 키처럼 보이는 열을 포함하여 많은 열을 건드린다는 것입니다.따라서 실제로 변경되었는지 여부에 관계없이 모든 열을 설정하는 단일 일반 업데이트 문이 있다고 생각합니다.이것은 일반 인덱스에서는 좋지 않은 방법입니다. 텍스트 인덱스를 사용하는 경우 응용 프로그램이 중지됩니다.

http://ora-29861.ora-code.com/

원인: 빌드 중이거나 DDL에 의해 실패한 것으로 표시되거나 DDL 작업에 의해 사용할 수 없는 것으로 표시된 도메인 인덱스에 액세스하려고 했습니다.

조치: 지정된 인덱스가 LOADING으로 표시된 경우 대기 지정된 인덱스를 삭제합니다. FAILED로 표시된 경우 삭제하거나 UNABLE로 표시된 경우 지정된 인덱스를 다시 작성합니다.

바라건대 그것이 충분한 맥락이 될 것입니다.당신은 그것으로 문제를 알아낼 수 있습니까?

언급URL : https://stackoverflow.com/questions/2587572/can-someone-explain-ora-29861-error-in-plain-english-and-its-possible-cause

반응형