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;'🗄️ DB_이야기 > # 🛢️ Oracle' 카테고리의 다른 글
| [Oracle] Data Gurad Switchover (0) | 2026.01.01 |
|---|---|
| [ORACLE] ORA-16736: unable to find the destination entry of member "dgpri" in V$ARCHIVE_DEST (0) | 2026.01.01 |
| [Oracle] Oracle Data Guard 설치(4) (0) | 2025.12.30 |
| [Oracle] Data Guard Duplicate 재구성 (0) | 2025.12.30 |
| [Oracle] ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set Failed. (0) | 2025.12.30 |