'LOG_REDO_PRIORITIZATION'에 해당되는 글 1건

  1. 2026.08.24 26ai 23.26.3 버전 LOG_REDO_PRIORITIZATION

26ai 23.26.3 버전부터 LOG_REDO_PRIORITIZATION (자동 Redo 우선순위 지정) 라는 새로운 파라미터가 도입되었다.

 

https://blogs.oracle.com/maa/auto-redo-prioritization-helping-manage-redo-generation-spikes


SQL> show parameter log_redo_prioritization

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_redo_prioritization              boolean     FALSE

기본값은 FALSE

SQL> ALTER SYSTEM SET LOG_REDO_PRIORITIZATION = TRUE SCOPE=BOTH;
재기동 필요없이 동적으로 적용가능함.

 

기본적으로는 Primary 에 설정, 하지만 switchover 되는 상황을 고려한다면 양쪽 다 셋팅.

: 대량의 DML이나 배치 작업으로 인해 Redo Log Buffer 경합이 발생할 때, OLTP 트랜잭션의 지연을 방지하기 위해 배치 세션의 Redo 생성을 일시적으로 조절하는 역할을 한다.

- 동작원리 및 매커니즘

1. 버퍼 사용률 모니터링 : 파라미터를 TRUE로 설정하면 오라클 인스턴스가 Redo Log Buffer의 여유 공간을 실시간으로 감시.

2. 자동 워크로드 분류 :  관리자가 Resource Manager 컨슈머 그룹을 사전에 수동 매핑하지 않아도, 데이터베이스가 세션의 Redo 발생량 및 호출 지속 시간(Call Duration) 등을 분석하여 OLTP 성격과 배치(Batch) 성격 세션을 자체 판별.

3. 선별적 쓰로틀링(Throttling) : 여유 공간이 내부 임계치 미만으로 떨어지면, 배치 세션에 대기를 유발하여 Redo 생성을 지연시킴. 이때 지연된 세션은 redo prioritization for log write lag 대기 이벤트를 기록.

4. OLTP 세션 보호 : Redo Log Buffer 여유 공간을 Latency에 민감한 OLTP 세션이 우선 선점하도록 하여 log buffer space 대기 발생을 최소화합니다.

 

우선순위는 OLTP가 동작하는 세션에는 영향을 주지 않으며, 배치 동작을 하는 세션에만 영향을 준다.

여기서, LOG_REDO_PRIORITIZATION의 내부 임계값은 사용자가 수동으로 지정하는 고정된 단일 수치(예: 80% 고정 등)가 아니라, 커널 내부 알고리즘에 의해 실시간 동적(Dynamic)으로 계산되는 적응형 임계치를 사용함.

- 오라클 백그라운드 프로세스(LGWR 및 워커 프로세스)가 판단에 활용하는 핵심 기준 지표는 다음과 같음.

1. Redo Log Buffer 가용 임계치 (Buffer Headroom)

동적 가용률 감시: Redo Log Buffer 전체 크기 중 미기록된 Redo가 차지하는 비중을 실시간 추적.

LGWR I/O 처리율 대비 생성 속도: 버퍼의 단순 점유율뿐만 아니라, LGWR의 초당 디스크 Write 처리량(Redo Write Rate) 대비 현재 전체 세션의 Redo 생성 속도(Redo Generation Rate)의 비율이 1을 초과하여 급격한 버퍼 소진(log buffer space 발생 위험)이 예측되는 시점을 임계 상태로 판별.

2. 세션별 Redo 생성률 임계치 (Batch vs. OLTP 분류 기준)

단위 호출당 Redo 생성량(Redo per Call / Transaction): 짧은 트랜잭션(일반적인 OLTP)과 달리, 단일 DB Call 또는 단위 시간(초) 동안 대량의 Redo Vector를 지속적으로 쏟아내는 세션을 시스템 통계(AWR 기준 상위 p95/p99 생성 패턴)와 비교하여 배치 세션으로 동적 마킹함

지속 시간(Burst Duration): 일시적인 짧은 스파이크가 아닌, 수 초 이상 지속적으로 높은 Redo 발생량을 유지하는 세션이 쓰로틀링 대상이 됨.

3. Data Guard 연계 시의 전송 지연 임계치 (Transport Lag Threshold)

LOG_ARCHIVE_DEST_n의 REDO_PRIORITIZATION_WHEN_TRANSPORT_LAGS_BY_SEC 옵션과 연계된 경우, 이 파라미터에 명시된 초(Seconds) 단위의 전송 지연 시간이 절대 임계값으로 작용합니다. (예: 30초 이상 Lag 발생 시 배치 쓰로틀링 강도 급증)

 

ADG 환경이라면 이렇게 활용할 수 있다.

ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 =  'SERVICE=boston ASYNC NOAFFIRM   VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)   DB_UNIQUE_NAME=boston REDO_PRIORITIZATION_WHEN_TRANSPORT_LAGS_BY_SEC=20';

 

DG broker 를 사용한다면..

 

EDIT DATABASE newyork SET PROPERTY
   AdditionalLadAttributes='REDO_PRIORITIZATION_WHEN_TRANSPORT_LAGS_BY_SEC=20';

 

->  우선순위 지정으로 Async physical standby destination 에  대한 목표 전송 지연을 정의합니다. 전송 지연이 목표를 초과하면 재전송이 자원 관리자에게 알림을 보내고, 자원 관리자가 재 우선순위를 적용한다.

 

Posted by pat98
이전버튼 1 이전버튼

08-26 18:12
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 2026.8
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

최근에 달린 댓글