🚨 Failover 실습 (Primary 장애 상황 가정)
장애 발생 시
기존 Primary ❌
Standby를 강제로 Primary로 승격
(상황에 따라) 데이터 손실 가능
🧭 Failover 전체 흐름
1️⃣ Flashback 활성화
2️⃣ 장애 상황 만들기
3️⃣ Failover 가능 여부 확인
4️⃣ Failover 실행
5️⃣ (중요) 새 Primary 확인 및 이후 상태 이해
6️⃣ Reinstate 수행
1️⃣ Flashback 활성화
Redo + Flashback Log를 이용해서 DB를 과거 시점으로 수월하게 되돌리기 위함
Redo Apply 중지(Standby):
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
플래쉬백 활성화(Primary, Standby):
ALTER DATABASE FLASHBACK ONL;
Redo Apply 실행(Standby):
ALTER DATABASE RECOVERR MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
로그 스위칭(Primary):
ALTER SYSTEM SWITCH LOGFILE;
:
Flashback 조회:
SHOW PARAMETER DB_FLASHBACK_RETENTION_TARGET
SELECT FLASHBACK_SIZE, ESTIMATED_FLASHBACK_SIZE FROM V$FLASHBACK_DATABASE_LOG;
2️⃣ 장애 상황 만들기 (실습용)
기존 Primary 서버에서 DB 강제 종료
SHUTDOWN ABORT;
👉 이 순간:
- Primary = DOWN ❌
- Standby만 살아 있음
2️⃣ Standby 서버에서 상태 확인
dgmgrl sys/[패스워드]@[네트워크명]
SHOW CONFIGURATION;
결과는 보통 에러가 나옴:
Configuration Status: WARNING
ORA-16810: multiple errors or warnings detected
또는
dgpri - Primary database
Error: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
👉 정상임. Primary가 죽었기 때문에
3️⃣ Failover 실행 (핵심)
⚠️ 되돌릴 수 없는 작업 (reinstate 전까지)
Standby에서:
FAILOVER TO ORCL_STBY;
메시지 예:
Performing failover NOW, please wait...
Failover succeeded
4️⃣ 새 Primary 확인
SHOW CONFIGURATION;
결과:
Configuration - dg_orcl
Protection Mode: MaxPerformance
Members:
orcl_stby - Primary database
orcl - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 58 seconds ago)
SQL로도 확인 👇
SELECT name, database_role, open_mode FROM v$database;
결과:
DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
orcl_stby READ WRITE PRIMARY NOT ALLOWED
✅ 여기까지 오면 Failover 성공
5️⃣ 중요한 개념 정리 ⚠️
❗ Failover 이후 상태
- 기존 Primary → DISABLED
- 자동으로 Standby로 돌아오지 않음
🔀 여기서 선택지는 2가지
✅ 1번 (정석, 실무/면접 필수)
👉 Reinstate
- 기존 Primary를 Standby로 복구
- Flashback Database 필요
✅ 2번
👉 기존 Primary 폐기 후 새로 구성
6️⃣ Reinstate 수행
과거 Primary의 장애 처리 후 DB open:
startup
현재 Primary에서:
DGMGRL> REINSTATE DATABASE ORCL;
결과:
Reinstating database "orcl", please wait...
Reinstatement of database "orcl" succeeded
상태 확인(Primary, Standby):
select name, open_mode, database_role, switchover_status from v$database;
-- 과거 Primary
NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL MOUNTED PHYSICAL STANDBY NOT ALLOWED
-- 현재 Primary
NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
ORCL READ WRITE PRIMARY TO STANDBY
7️⃣ Switchover 수행
Switchover로 Primary 복원
현재 Standby에서:
DGMGRL> SWITCHOVER TO ORCL;
복원 결과 확인:
SHOW CONFIURATION;
SHOW DATABASE ORCL;
SHOW DATABASE ORCL_STB;
DGMGRL> SHOW CONFIGURATION
Configuration - dg_orcl
Protection Mode: MaxPerformance
Members:
orcl - Primary database
orcl_stby - Physical standby database
Error: ORA-16786: unable to access Oracle Data Guard broker configuration files
Fast-Start Failover: Disabled
Configuration Status:
ERROR (status updated 7 seconds ago)
👉 ORA-16786 에러는 조금 지나면 사라짐
DGMGRL> SHOW DATABASE ORCL_STBY
Database - orcl_stby
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 0 seconds ago)
Apply Lag: 0 seconds (computed 0 seconds ago)
Average Apply Rate: 75.00 KByte/s
Real Time Query: OFF
Instance(s):
orcl
Database Status:
SUCCESS
DGMGRL> SHOW DATABASE ORCL
Database - orcl
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
orcl
Database Status:
SUCCESS
🎯 여기까지 한 줄 요약
- Switchover = 평상시 역할 교체
- Failover = 장애 시 강제 승격
- Failover 다음은 무조건 Reinstate가 핵심
'🗄️ DB_이야기 > # 🛢️ Oracle' 카테고리의 다른 글
| [Oracle] Data Guard 상태 및 장애 분석 (0) | 2026.01.18 |
|---|---|
| [Oracle] Data Guard 구성 & 운영 실습 정리 (0) | 2026.01.18 |
| [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] Data Guard Broker SRL 경고 (1) | 2026.01.01 |