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

[Oracle] ORA-16810 / ORA-16826

by gwon_s 2026. 1. 19.

ORA-16810 / ORA-16826

상황

  • Redo는 전달되지만 MRP가 중단된 상태

 

 장애 재현 (Standby)

Standby Database Apply Stopped:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

또는 

(MRP 자동 기동 안 됨)

 

 

 장애 확인

Standby:

SELECT process, status FROM v$managed_standby;
PROCESS   STATUS
--------- ------------
ARCH      CONNECTED
DGRD      ALLOCATED
DGRD      ALLOCATED
ARCH      CONNECTED
ARCH      CONNECTED
ARCH      CONNECTED
RFS       IDLE
RFS       IDLE

8 rows selected.

 👉 MRP0 없음

 

Alert Log 확인(명령으로 Apply Off 했을때):

alter database recover managed standby database cancel
ORA-1665 signalled during: alter database recover managed standby database cancel...

 

Broker 사용 시:

DGMGRL> show configuration;
Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl      - Primary database
    orcl_stby - Physical standby database
      Error: ORA-16810: multiple errors or warnings detected for the member
      또는 ORA-16826: apply service state is inconsistent

Fast-Start Failover:  Disabled

Configuration Status:
ERROR   (status updated 50 seconds ago)

👉 ORA-16810 / ORA-16826 확인 가능

 

복구

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
 

재확인:

SELECT process, status FROM v$managed_standby;

 

 

💡인사이트

Standby Database Apply를 중지할때 SQL, DGMGRL 두 가지를 통해 Apply를 중지 시킬수 있음

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
DGMGRL> EDIT DATABASE {STANDBY_NAME} SET STATE='APPLY-OFF';

 

SQL, DGMGRL 두 가지 모두 MRP() 프로세스는 꺼진 상태로 나옴

SQL> select process, status from v$managed_standby;

PROCESS   STATUS
--------- ------------
ARCH      CLOSING
DGRD      ALLOCATED
DGRD      ALLOCATED
ARCH      CLOSING
ARCH      CLOSING
ARCH      CLOSING
RFS       IDLE
RFS       IDLE
RFS       IDLE

9 rows selected.

 

여기서 문제,

DGMGRL에서 Standby Apply를 분명히 APPLY-OFF로 변경했는데,
show configuration 결과는 여전히 SUCCESS로 표시되어 처음에는 “Apply가 꺼졌는데 왜 정상이야?”라는 생각이 들었음

DGMGRL> show configuration

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl      - Primary database
    orcl_stby - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 2 seconds ago)

 

 

이유를 찾아보니

DGMGRL을 통해 Apply를 OFF 하는 것은 장애 상황이 아니라, 사용자가 의도적으로 상태를 변경한 것
Broker는 이 변경을 정확히 인지하고 구성 정보를 정상적으로 갱신됨

즉,

  • Apply OFF 상태 자체는 비정상이 아님
  • Broker가 알고 있는 상태와 실제 DB 상태가 일치
  • Primary / Standby 역할 관계에도 문제 없음

이 조건들이 모두 만족되기 때문에
show configuration에서는 SUCCESS가 출력된다는걸 알게 되었음.