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

[Oracle] ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set Failed.

by gwon_s 2025. 12. 30.

ORA-16698 에러 시 Broker 적용을 위한 정리

 

Primary에 아래와 같은 파라미터가 있음

  • log_archive_dest_2 = 'SERVICE=DGDB_STBY … DB_UNIQUE_NAME=DGSTBY'

Broker는 redo 전송 경로를 자기가 관리하려고 하는데, DB 쪽에 이미 log_archive_dest_2 = 'SERVICE=…'가 박혀 있어서 충돌남 → ORA-16698

 


✅Standby에서 APPLY(Managed Recovery) 중지

Apply 기능 중 log_archive_dest_state_2이 사용 중일 때에 삭제가 불가능하기 때문에 Apply 중지

Standby에서:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

확인(선택):

select process, status from v$managed_standby;

MRP0가 없어지면 중지됨

✅ Primary와 Standby에서 동일하게 SERVICE 제거

alter system set log_archive_dest_2='' scope=both;

만약 dest_3, dest_4 등에 SERVICE가 있으면 동일하게:

alter system set log_archive_dest_3='' scope=both;
dest_1(로컬 아카이브)은 건드리지 말고
Broker가 원격 전송용 dest를 따로 잡아야함
 

✅ DB 재기동(깔끔하게)

primary:

shut immediate
startup

 

standby:

shut immeidate
startup mount

Standby에서는 아직 apply 적용 X

 

✅ 이제 DGMGRL로 다시 추가

Primary에서 DGMGRL:

DGMGRL> ADD DATABASE DGSTBY AS CONNECT IDENTIFIER IS DGDB_STBY MAINTAINED AS PHYSICAL;

이제 ORA-16698이 안 떠야 정상.

 

✅ Broker가 redo 전송 재구성하게 만들기

추가 후:

DGMGRL> ENABLE DATABASE DGSTBY;
DGMGRL> ENABLE CONFIGURATION;
DGMGRL> SHOW CONFIGURATION;

그리고 상태가 SUCCESS로 가는지 확인.