기술 정보
home
채널 소개
home

tbboot Failover 수행 시 Crash Recovery 지연 현상

문서 유형
장애 해결
분야
백업/복구
키워드
recovery
TSC
tbboot
crash
failover
적용 제품 버전
6FS07
7FS02
1 more property

현상

Standby를 tbboot failover 명령어로 기동할 때, Crash Recovery 과정에서 시간이 오래 소요되는 현상이 발생합니다. slog 상의 THREAD #0 adjust ckpt rba ~ REDO THREAD #0 CKPT updated to 로그 구간에서 지연이 관찰됩니다.

원인

일부 lscan 로직에서 블록을 LSCAN_MULTI_READ_BLKCNT 값인 8블럭 단위로만 읽도록 구현된 부분이 존재합니다.
이로 인해 redo log를 8블럭씩 읽어가며 리커버리를 수행하게 되어, 전체 Crash Recovery가 매우 느린 속도로 진행되는 상황이 발생하였습니다.
현상 발생 시, ilog 로그 내 아래 같은 메시지를 통해 blkcnt=8로 제한된 블록 읽기가 수행되고 있음을 확인할 수 있습니다
07/31 10:47:22.6 0-0937 rv Iscan:354 lscan read block, one of logfiles in group #32, blkno-3455073, blkcnt=8 07/31 10:47:22.5 0-0937 rv Iscan:354 lscan read block, one of logfiles in group #32, blkno-3459001, blkcnt=8 07/31 10:47:22.6 0-8937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3458009, blkcnt=8 07/31 10:47:22.6 0-0937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459097, blkcnt=8 07/31 10:47:22.6 0-0937 rv 1scan:354 lscan read block. one of logfiles in group #32, blkno-3459105, blkcnt=8 07/31 10:47:22.5 0-0937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459113, blkcnt=8 07/31 10:47:22.6 0-0937 rv 1scan:354 lscan read black. one of logfiles in group #32, blkno-3459121, blkcnt=8 07/31 10:47:22.6 0-0937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459129, blkcnt=8 07/31 18:47:22.6 0-9937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459137, blkcnt=8 07/31 10:47:22.6 0-0937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459145, blkcnt=8 07/31 10:47:22.6 0-9937 rv Iscan:354 lscan read block. one of logfiles in group #32, blkno-3459153, blkcnt=8 07/31 10:47:22.7 0-0937 rv Iscan:354 lscan read block. one of logfiles in group a32, blkno-3459161, blkcnt=8
SQL
복사

해결

308619 패치는 적용하면 해당 케이스에서 2048 블록(기본값 기준) 단위로 읽어 Crash Recovery를 수행할 수 있도록 수정한 패치입니다.
해당 패치를 적용함으로써 2048 블록씩 대량으로 읽어 들이게 되어, 불필요한 반복 작업 없이 리커버리 성능이 개선됩니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
패치 적용 후에는 blkcnt=2048로 대량 블록을 읽고 있는 것을 확인할 수 있습니다.
08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=1, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=2049, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=4097, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=6145, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=8193, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=10241, blkcnt=2048 08/03 09:40:52.2 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=12289, blkcnt=2048 08/03 09:40:52.3 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=14337, blkcnt=2048 08/03 09:40:52.3 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=16385, blkcnt=2048 08/03 09:40:52.3 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=18433, blkcnt=2048 08/03 09:40:52.3 0-0138 rv_lscan:353 lscan read block. one of logfiles in group #4, blkno=20481, blkcnt=2048
SQL
복사
참고
CF 재생성 후 resetlogs 부팅을 통해 위의 현상이 발생하는 로직을 우회하여 빠르게 기동할 수는 있으나, resetlogs 사용에 따른 영향도 함께 고려해야 합니다.
tbboot failover 과정에서 resetlogs 기동 시, 기존 백업은 사용할 수 없게 되며 원복를 위한 신규 Standby 구성을 위해 전체 백업부터 다시 시작해야 하는 부담이 발생할 수 있습니다.