본문 바로가기
🗄️ DB_이야기/# 🛢️ Oracle

[Oracle] Data Guard Broker SRL 경고

by gwon_s 2026. 1. 1.

Switchover 테스트 중 경고 발생

GMGRL> validate database dgstby;

  Database Role:     Physical standby database
  Primary Database:  dgpri

  Ready for Switchover:  Yes
  Ready for Failover:    Yes (Primary Running)

  Flashback Database Status:
    dgpri :  Off
    dgstby:  Off

  Managed by Clusterware:
    dgpri :  NO
    dgstby:  NO
    Validating static connect identifier for the primary database dgpri...
    The static connect identifier allows for a connection to database "dgpri".

  Standby Apply-Related Information:
    Apply State:      Running
    Apply Lag:        13 minutes 52 seconds (computed 29 seconds ago)
    Apply Delay:      0 minutes

  Future Log File Groups Configuration:
    Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
              (dgstby)                (dgpri)
    1         3                       0                       Insufficient SRLs
    Warning: standby redo logs not configured for thread 1 on dgpri

분명 Standby Redo Log(SRL) 을 생성했고, v$standby_log 조회 결과도 정상인데
Broker 경고는 계속 남아있음


📌 SRL 상태 확인

🔹 Primary (dgpri)

SELECT GROUP#, THREAD#, SEQUENCE#, BYTES/1024/1024 AS MB, STATUS
FROM v$standby_log
ORDER BY GROUP#;

 

결과:

    GROUP#    THREAD#  SEQUENCE#         MB STATUS
---------- ---------- ---------- ---------- ----------
         4          0          0        200 UNASSIGNED
         5          0          0        200 UNASSIGNED
         6          0          0        200 UNASSIGNED
         7          0          0        200 UNASSIGNED

🔹 Standby (dgstby)

SELECT GROUP#, THREAD#, SEQUENCE#, BYTES/1024/1024 AS MB, STATUS
FROM v$standby_log
ORDER BY GROUP#;

 

결과:

    GROUP#    THREAD#  SEQUENCE#         MB STATUS
---------- ---------- ---------- ---------- ----------
         4          1         45        200 ACTIVE
         5          1         46        200 ACTIVE
         6          1         47        200 ACTIVE
         7          1         48        200 ACTIVE

➡️ Redo Apply 및 Transport는 정상 동작 중


🔍 원인

이 경고는 SRL이 없는 문제가 아니라
THREAD 번호 기준으로 SRL이 인식되지 않는 문제

즉,

  • DB 관점에서는 정상
  • Data Guard Broker 관점에서는 미구성 상태

👉 dgpri의 SRL은 모두 THREAD# = 0

THREAD# = 0 → Broker 기준으로는 “미할당”

Broker는:

  • THREAD 1에 매핑된 SRL만 유효한 SRL로 판단
  • THREAD 0 SRL은 “존재하지 않는 것”으로 본다

그래서 결과가 이렇게 나온다.


✅ 해결 방법 (정석)

✔ Primary(dgpri)에 THREAD 1로 명시적으로 SRL 생성

1️⃣ 기존 SRL 제거

ALTER DATABASE DROP STANDBY LOGFILE GROUP 4;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;
ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;

 

2️⃣ Standby에서 MRP 중지

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

 

3️⃣THREAD 1로 SRL 재생성

ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 11 ('/u01/app/oracle/oradata/DGPRI/sr101.log') SIZE 200M;

ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 12 ('/u01/app/oracle/oradata/DGPRI/sr102.log') SIZE 200M;

ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 13 ('/u01/app/oracle/oradata/DGPRI/sr103.log') SIZE 200M;

ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 14 ('/u01/app/oracle/oradata/DGPRI/sr104.log') SIZE 200M;

👉 Group 넘버는 online redo log와 혼동되지 않도록 11부터 시작

👉 srl log의 사이즈는 online redo log 사이즈와 동일하게 

 

4️⃣ Standby에서 MRP 재기동

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;