🔍 1단계. Data Guard 전체 상태 한눈에 확인
가장 먼저 동기화 상태와 에러 존재 여부를 봅니다.
SELECT
name,
database_role,
open_mode,
protection_mode,
protection_level,
switchover_status
FROM v$database;
✅ 체크 포인트
- DATABASE_ROLE
- PRIMARY / PHYSICAL STANDBY 인지
- OPEN_MODE
- Standby는 보통 MOUNTED 또는 READ ONLY WITH APPLY
- SWITCHOVER_STATUS
- NOT ALLOWED / FAILED 면 문제 가능성 있음
🔍 2단계. Data Guard Broker 사용 시
Broker를 쓰고 있다면 가장 빠른 진단 도구입니다.
DGMGRL> show configuration;
DGMGRL> show database verbose <DB_NAME>;
❗ 여기서 바로 보이는 것
- ORA-xxxx 에러 코드
- Transport / Apply Lag
- Network / Archive 오류
👉 운영 환경에서는 Broker 상태 먼저 보는 게 정석
🔍 3단계. Archive Log 전송 상태 확인 (Primary)
Primary에서 로그가 정상적으로 Standby로 전달되는지 확인합니다.
SELECT dest_id, status, error, destination FROM v$archive_dest
🚨 자주 나오는 문제
- STATUS = ERROR
- ERROR 컬럼에 ORA-xxxx 메시지
- ORA-12154 (TNS 문제)
- ORA-16057 (DG 설정 오류)
🔍 4단계. Standby 로그 수신 / 적용 상태
Standby에서 로그는 오는데 적용이 안 되는 경우가 많습니다.
📌 수신 상태
SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY sequence# DESC;
📌 적용 프로세스 확인
SELECT process, status, sequence# FROM v$managed_standby;
❗ 핵심 포인트
- MRP0 프로세스가 RUNNING / APPLYING_LOG 상태인지
- APPLIED = NO 로그가 계속 쌓이면 Apply 장애
🔍 5단계. Apply / Transport Lag 확인
실시간 지연 여부 확인 (특히 성능 이슈)
SELECT name, value, unit FROM v$dataguard_stats;
주요 항목
- transport lag
- apply lag
👉 수 분 이상 누적되면 네트워크 / I/O / Standby 성능 의심
🔍 6단계. GAP 발생 여부 확인
Archive Log 누락 여부 확인 (자주 발생)
SELECT * FROM v$archive_gap;
- no rows selected → 정상
- 결과가 나오면 해당 sequence 로그 수동 전송 필요
🔍 7단계. Alert Log 확인 (가장 중요)
SQL로 안 잡히는 오류는 Alert Log에 다 나옵니다.
vi {Alert Log Name}
특히 많이 보게 되는 메시지
- ORA-16055 / ORA-16086
- ORA-19527 (Archive 실패)
- ORA-00313 / ORA-00312 (Redo 문제)
🔍 8단계. 네트워크 / TNS 문제 의심 시
lsnrctl status
tnsping <STANDBY_TNS>
- DG 장애의 절반은 네트워크/TNS 문제입니다.
🏆 실무에서 쓰는 “장애 분석 순서 요약”
1️⃣ v$database 상태
2️⃣ DGMGRL> show configuration
3️⃣ v$archive_dest (Primary)
4️⃣ v$managed_standby / v$archived_log (Standby)
5️⃣ v$dataguard_stats
6️⃣ v$archive_gap
7️⃣ alert.log
🔥 DBA 관점 핵심 정리
- Primary 문제인지 / Standby 문제인지 먼저 구분
- Transport vs Apply 중 어디서 막혔는지 확인
- SQL 결과 + alert.log 둘 다 봐야 원인 확정 가능
'🗄️ DB_이야기 > # 🛢️ Oracle' 카테고리의 다른 글
| [Oracle] Data Guard 점검 & 운영 명령어 정리 (1) | 2026.01.20 |
|---|---|
| [Oracle] ORA-16810 / ORA-16826 (1) | 2026.01.19 |
| [Oracle] Data Guard 구성 & 운영 실습 정리 (0) | 2026.01.18 |
| [ORACLE] Data Guard Failover (0) | 2026.01.16 |
| [Oracle] Data Gurad Switchover (0) | 2026.01.01 |