기술 정보
home
채널 소개
home

DB 기동 시 UNDO 부족현상 에러 발생

문서 유형
장애 해결
분야
모니터링/점검
키워드
index Block
TX_RECOVERY
적용 제품 버전
6FS07
오류 코드
21004
21028

현상

_USGMT_ONLINE_MIN를 디폴트인 11개에서 200개로 조정 시 에러가 발생, 파라미터값 원복된 상황으로
DB 기동 시 UNDO 부족현상 에러가 발생하며 기동이 불가능한 현상 입니다.
참고
21004 에러: RROR_TX_CANT_ALLOC_EXT, No more extent available in tablespace 'UNDO'.
21028 에러: ERROR_TX_CANT_ONLINE_MIN_USGMT, Unable to bring minimum number of undo segments online.
[2022-12-10T03:30:05.801057] [TXT-242] [I] can't extend tablespace TS #1(UNDO) [2022-12-10T03:30:05.878756] [FRM-242] [I] THROW. ec=ERROR_TX_CANT_ALLOC_EXT(-21004) [ No more extent available in tablespace 'UNDO'.] (csr_id:4294967295) [tx_ts.c:1337:ts_extend] [2022-12-10T03:30:05.887286] [FRM-242] [I] THROW. ec=ERROR_TX_CANT_ONLINE_MIN_USGMT(-21028) [ Unable to bring minimum number of undo segments online.] (csr_id:4294967295) [tx_usgmt.c:2585:usgmt_create_min] [2022-12-10T03:30:05.887306] [FRM-242] [I] ******************************************************** * Critical Warning : Server Boot failed. The reason is * TBR-21028 : Unable to bring minimum number of undo segments online. * Process shutdown. ******************************************************** [2022-12-10T03:30:05.887349] [FRM-00] [I] MTHR received SHUTDOWN message! SHUTTING DOWN... [2022-12-10T03:30:05.887367] [MT-00] [I] MTHR starts to shutdown mode=4, CUR_SVRMODE=7 [2022-12-10T03:30:05.887374] [MT-00] [I] MTHR terminiates all childs
SQL
복사

원인

_USGMT_ONLINE_MIN을 200으로 증가 시, usgmt를 생성할 공간이 부족하여 에러가 발생했습니다.
다만 v$undo_free_space 상의 공간이 충분하고 undo datafile의 개수가 충분한 것으로 보아, active인 undo block이 많아서가 아닌 usgmt에 소속되어 expired된 undo block이 많은 상황입니다.
부팅 시 _USGMT_ONLINE_MIN 값으로 생성되는 usgmt들은 다른 usgmt에 소속된 공간에서 가져올 수 없고, 오직 undo datafile 상의 freespace 공간에서만 가져올 수 있으므로 이와 같은 상황에서는 다른 usgmt에 소속된 undo 공간을 disk의 freespace로 반환한 뒤, 새로운 undo segment를 생성해야 합니다.

해결

1. 명령어 수행

SQL> alter rollback segment all shrink;
SQL
복사

2. _USGMT_ONLINE_MIN 값 변경

slog를 볼때 특정 시점에 tx가 많이 몰리는 것으로 보이므로, _USGMT_ONLINE_MIN 값을 1000 정도 증가시키는 것도 고려할 수 있습니다.
_USGMT_ONLINE_MIN=1000
SQL
복사
참고
아래 파라미터 설정 시, 주기적으로 usgmt에 소속된 expired된 undo 공간을 disk상의 free space로 반환할 수 있습니다. (분 단위)
USGMT_AUTO_SHRINK_INTERVAL = 180
SQL
복사