역할 전환과 오류 상태
역할 전환, 준비 검사, Broker 상태를 구분하며 오류별 상세 출력, Failover, 재편입 결과는 기재 없음
#핵심 요약
실습에서는 Broker의 SWITCHOVER TO로 Standby를 새 Primary로 전환하고 반대 방향으로 다시 전환함
전환 전후 SHOW CONFIGURATION과 V$DATABASE로 구성원 역할과 OPEN_MODE를 확인함
SUCCESS 출력에는 성공 사례가 있지만 WARNING, ERROR 각각의 상세 출력과 원인 분류는 기재 없음
적용 재개와 아카이브 반복을 모든 오류의 해결책으로 사용할 근거는 없음
#개념과 동작 원리
| 실습 단계 | 기록된 변화 |
|---|---|
| 최초 구성 | 초기 Primary와 Physical Standby, 구성 SUCCESS |
| Switchover | 초기 Standby가 새 Primary로 OPEN되고 이전 Primary는 재기동 후 MOUNT |
| 전환 후 SQL 확인 | 새 Primary는 PRIMARY, READ WRITE, 이전 Primary는 PHYSICAL STANDBY, MOUNTED |
| Switchback | 새 Primary 쪽 DGMGRL에서 초기 Primary 고유 이름으로 다시 SWITCHOVER TO 실행 |
실습의 Switchback은 반대 방향의 Switchover를 가리키며 별도의 SWITCHBACK 명령은 제시하지 않음 Fast-Start Failover는 실습 출력에서 DISABLED이며 장애 시 강제 Failover 명령과 이전 Primary 재편입 절차는 기재 없음
역할 전환에 사용하는 Broker 구성과 상태 조회는 Data Guard Broker와 DGMGRL에서 다룸
#주요 용어와 구성 요소
| 구문 | 의미 |
|---|---|
| SUCCESS | Broker가 검사한 구성 상태이며 애플리케이션 접속 성공이나 전환 준비 완료와 동일한 판정은 아님 |
| WARNING, ERROR | 동반된 오류 번호와 DB별 상태를 읽어 원인을 좁혀야 함 |
| Transport Lag, Apply Lag | 미수신 지연과 이미 수신한 변경의 가시성 지연을 구분함 |
#필수 명령어 또는 SQL
| 항목 | 실행 조건 |
|---|---|
| 작업 대상 | 전환 대상 DB, Broker 구성, DB 역할, 열림 상태, 적용 상태 |
| 필요 권한 | DGMGRL SYSDBA 또는 SYSDG, V$DATABASE는 관리자 조회 권한 |
| 바꿀 입력값 | 초기 Primary, Standby의 DB_UNIQUE_NAME 자리표시와 현재 역할 |
| 결과 해석 | 기존 성공 사례와 별도로 준비 검사, 오류 해소, 업무 재연결 결과는 기재 없음 |
#전환 전 확인
show configuration;
show database verbose '<INITIAL_STANDBY_UNIQUE_NAME>';결과 해석: 실습에서는 구성 SUCCESS와 Standby의 Transport Lag, Apply Lag 0 seconds를 확인한 다음 Switchover를 제시함 이 외의 전환 가능 조건과 준비 상태 검사 명령은 해당 실습 절에 기재 없음
#Switchover와 전환 후 확인
switchover to '<INITIAL_STANDBY_UNIQUE_NAME>';show configuration;select name, db_unique_name, database_role, open_mode
from v$database;결과 해석: 실습에서는 Switchover succeeded 응답, 구성 SUCCESS와 서로 바뀐 Primary, Physical Standby 역할을 기록함 SQL 결과는 새 Primary READ WRITE, 이전 Primary MOUNTED이며 DB_NAME과 DB_UNIQUE_NAME을 함께 표시함
#원래 역할로 복귀
switchover to '<INITIAL_PRIMARY_UNIQUE_NAME>';show configuration;결과 해석: 실습에서는 초기 역할로 돌아온 구성원 목록과 SUCCESS를 기록함
#Broker 상태별 확인 사항
| Broker 상태 | 실습의 출력과 대응 안내 | 추가 확인 사항 |
|---|---|---|
| SUCCESS | 최초 구성, 전환, 복귀의 정상 예시 출력 | 현재 DB가 같은 상태인지는 확인 불가 |
| WARNING | 해당 상태일 때 SHOW DATABASE로 문제 항목을 확인하라는 안내 | 구체적인 출력과 원인별 분류는 기재 없음 |
| ERROR | WARNING과 같은 복구 안내만 제시 | ERROR 고유 원인과 전환 중단, 재시도 판단 기준은 기재 없음 |
show database '<STANDBY_UNIQUE_NAME>';결과 해석:
실습에서는 적용이 멈춘 경우에 한해 다음 재개 명령을 제시함
edit database '<STANDBY_UNIQUE_NAME>' set state='APPLY-ON';결과 해석: 이 오류 보충 페이지에는 재개 명령의 성공 출력이나 이후 오류 해소 출력이 기재되어 있지 않음(확인 불가)
#구문과 옵션 설명
#역할 전환 준비 검사
VALIDATE DATABASE VERBOSE <STANDBY_UNIQUE_NAME>;결과 해석: 전환 준비, 전송, 적용 등 검사 항목을 읽는 명령이며 이 실습의 출력은 기재 없음
VALIDATE는 SHOW CONFIGURATION의 SUCCESS, WARNING 상태 출력과 형식이 다르므로 항목별 조치 필요 여부를 읽어야 함
#사용 조건과 주의사항
실습에서는 계속 실패하면 Primary에서 ARCHIVE LOG CURRENT를 두세 번 수행해 갭을 메우라고 적지만 갭 원인, 누락 로그 확인, 복구 완료 판단 절차는 없음
아카이브 반복을 일반 복구 절차로 적용할 수 없으며 WARNING, ERROR의 해결 여부는 확인 불가
Broker 기동 문서의 양쪽 APPLIED='YES' 최대 번호 비교는 조회 대상과 비교 조건이 없어 전환 안전성의 근거로 사용하지 않았음
ADG 실습에서는 구성 상태가 SUCCESS가 아니면 ADG 작업을 진행하지 말라고 적음
WARNING, ERROR면 먼저 해당 DB의 SHOW DATABASE와 함께 나온 오류를 확인하고 전송, 적용, 접속 조건을 구분함
지연 수치의 계산 시각이 오래됐으면 0이라는 값만으로 동기화 완료를 판정하지 않음
APPLY-ON은 적용을 켜는 요청이며 모든 오류의 원인을 없애는 복구 명령은 아님