프린트 하기 URL 복사

OS 환경 : Oracle Linux 9.6 (64bit)

 

DB 환경 : Oracle AI Database 23.26.2.0.0 ai, 19.31

 

방법 : 오라클 26ai autoupgrade시 block checking 이벤트로 인한 hang 현상

26ai 업그레이드 시 Block Checking 관련 문제가 발생한다고함(~23.26.2)
이 문제는 AutoUpgrade를 사용하여 업그레이드할 때 발생할 수 있는 문제로
23ai부터 Index Block의 최대 INITRANS 값이 255에서 169로 변경되었는데 업그레이드 과정 중 Block Checking 단계에서 기존 최대값을 가진 블록을 검사할 경우 업그레이드 시 Hang이 발생할 수 있다고 함

 

 

이 문제의 조치 방안은 아래와 같음
- Bug 38946554 패치 적용
- Oracle AI Database 26ai RU 23.26.3 이상 적용(곧출시)
- 아래 파라미터를 이용한 임시 우회
- db_block_checking=FALSE
- "_db_always_check_system_ts"=FALSE
- 문제가 발생한 인덱스 Rebuild

 

 

참고용 공식문서 :
MAXTRANS 매개변수
이전 버전에서는 해당 MAXTRANS매개변수가 세그먼트 내 각 데이터 블록에 허용되는 최대 동시 업데이트 트랜잭션 수를 결정했습니다.
이 매개변수는 더 이상 사용되지 않습니다. 이제 Oracle은 블록의 사용 가능한 공간에 따라 모든 데이터 블록에 대해 최대 255개의 동시 업데이트 트랜잭션을 자동으로 허용합니다.
최대 동시 업데이트 트랜잭션 수는 블록 크기에 따라 결정됩니다.
이미 값이 MAXTRANS설정된 기존 객체는 해당 설정을 유지합니다. 그러나 MAXTRANS 값을 변경하려고 하면 Oracle은 새 값을 무시하고 오류를 반환하지 않고 255라는 값으로 대체합니다.
참고 : https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/physical_attributes_clause.html

 

 

실제 확인 테스트(19c, 26ai)
샘플 테이블 및 인덱스 생성

1
2
3
4
5
6
7
SQL> create table t1 (col1 number);
 
Table created.
 
SQL> create index t1_ix1 on t1(col1) initrans 255;
 
Index created.

 

 

인덱스의 initrans 값 확인

1
2
3
4
5
6
7
8
9
SQL> 
set lines 200 pages 1000
col index_name for a10
select index_name, ini_trans from dba_indexes
where index_name = 'T1_IX1';
 
INDEX_NAME  INI_TRANS
---------- ----------
T1_IX1            255

19c, 26ai 모두 initrans 값이 255로 잘 설정되어 있음
하지만 MOS 노트처럼 실제로는 내부적으로 169라는 값이 사용되는듯함

 

 

실제 업그레이드 하여 확인
참고 : 오라클 19c to 26ai AutoUpgrade Refreshable Pluggable Database 이용 업그레이드 ( https://positivemh.tistory.com/1336 )
19c에서 먼저 샘플 테이블, 인덱스 생성 후 데이터 삽입

1
2
3
4
5
SQL> 
create table t1 (col1 number);
create index t1_ix1 on t1(col1) initrans 255;
insert into t1 select object_id from dba_objects;
commit;

 

 

autoupgrade 수행

1
2
$ java -jar autoupgrade.jar -config ORA19DBFS.cfg -mode deploy
(동작)

테스트 환경에서는 인덱스가 하나여서 그런지 업그레이드가 잘 수행되었음
아마 운영 환경처럼 데이터가 많은경우 문제가 발생하는듯 함

 

 

참조 : 

Autoupgrade :Database upgrade to 26ai hung with block checking events(KB914929)
38946554 - HANG ON BLOCKCHECK DUE OVERFLOW ON MAX ITL COUNT
https://mikedietrichde.com/2026/07/15/upgrade-to-26ai-may-hang-due-to-block-checking-events/
https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/physical_attributes_clause.html