데이터베이스 연구실.log

Data Guard Broker와 DGMGRL

실습 Broker 구성의 리스너, 설정 파일, DMON 준비와 DGMGRL 등록, 상태 조회

Data Guard BrokerDGMGRLDMONDG_BROKER_START

#핵심 요약

DGMGRL은 Data Guard 구성을 등록하고 상태를 조회하며 역할을 전환하는 명령 인터페이스임

실습에서는 양쪽 리스너에 일반 서비스와 DGMGRL용 정적 서비스를 등록함

Broker 파일 경로 변경 전에 DG_BROKER_START를 FALSE로 두고 경로 지정 뒤 TRUE로 활성화함

SHOW CONFIGURATION과 SHOW DATABASE VERBOSE로 구성과 개별 DB 상태를 구분함

#개념과 동작 원리

준비 및 관리 항목 설정과 등록 순서
리스너 양쪽 listener.ora에 DB 서비스와 DGMGRL용 GLOBAL_DBNAME, ORACLE_HOME, SID_NAME 정적 등록
접속 실습 Primary 서버에서 SYSDBA로 DGMGRL 접속
LOG_ARCHIVE_CONFIG 두 DB_UNIQUE_NAME을 DG_CONFIG에 지정
DG_BROKER_CONFIG_FILE1, 2 각 서버에 Broker 구성 파일 경로 두 개를 지정
DG_BROKER_START 경로 변경 전 FALSE, 변경 후 TRUE 순서
DMON 양쪽 서버에서 프로세스 존재 확인
Configuration Primary 등록, Physical Standby 추가, 구성 활성화 순서

Broker 구성과 기동 순서는 추가 확인이 필요함

#필수 명령어 또는 SQL

#양쪽 Broker 준비

각 DB의 SQL*Plus (SYSDBA)조회만 함
show parameter dg_broker_start

결과 해석: 실습 Primary 예시는 DG_BROKER_START가 TRUE인 상태를 먼저 보여줌

각 DB의 SQL*Plus (SYSDBA)객체 또는 설정을 변경함
alter system set log_archive_config='DG_CONFIG=(<PRIMARY_UNIQUE_NAME>,<STANDBY_UNIQUE_NAME>)' scope=both;
alter system set dg_broker_start=false scope=both;
각 서버의 OS 셸 (DB 소프트웨어 소유자)조회만 함
ps -ef | grep dmon | grep -v grep

결과 해석: 실습에서는 FALSE 설정 뒤 DMON 조회가 비어 있는지를 확인함

각 DB의 SQL*Plus (SYSDBA)객체 또는 설정을 변경함
alter system set dg_broker_config_file1='<BROKER_FILE1>' scope=both;
alter system set dg_broker_config_file2='<BROKER_FILE2>' scope=both;
alter system set dg_broker_start=true scope=both;
각 DB의 SQL*Plus (SYSDBA)조회만 함
show parameter dg_broker
각 서버의 OS 셸 (DB 소프트웨어 소유자)조회만 함
ps -ef | grep dmon | grep -v grep

결과 해석: 실습에서는 설정한 구성 파일 두 경로와 TRUE를 확인하고 양쪽 DMON 프로세스 출력 예시를 제시함 Primary와 Standby 양쪽의 저장 경로 준비 여부를 확인해야 함

#등록과 활성화

Primary 서버의 DGMGRL (SYSDBA 연결)객체 또는 설정을 변경함
create configuration '<CONFIG_NAME>' as
  primary database is '<PRIMARY_UNIQUE_NAME>'
  connect identifier is <PRIMARY_CONNECT_ID>;

add database '<STANDBY_UNIQUE_NAME>' as
  connect identifier is <STANDBY_CONNECT_ID>
  maintained as physical;

enable configuration;

결과 해석: 실습에서는 Primary를 포함한 Configuration 생성, Standby 추가와 Enabled 응답을 순서대로 기록함

#구성과 개별 DB 조회

Primary 서버의 DGMGRL (SYSDBA 연결)조회만 함
show configuration;
show database verbose '<STANDBY_UNIQUE_NAME>';

결과 해석: 실습 구성 출력은 Primary, Physical Standby, MaxPerformance, Fast-Start Failover DISABLED와 Configuration Status SUCCESS임 개별 DB 출력은 PHYSICAL STANDBY, Transport Lag 0 seconds, Apply Lag 0 seconds, Database Status SUCCESS를 보여줌 이 값은 실습 예시이며 현재 DB 상태 확인 결과가 아님

#사용 조건과 주의사항

실습에서는 정적 등록을 확인할 때 리스너의 UNKNOWN을 정상이라고 적으며 이를 Broker의 SUCCESS와 같은 종류의 상태로 혼동하지 않음

기존 수동 전송 설정과 Broker 구성 뒤의 속성 변화를 모두 대조한 기록이 없어 SYNC AFFIRM과 MaxPerformance를 같은 전송 조건으로 설명하지 않음

실습 기동 문서는 DISABLE과 REMOVE를 모두 구성이 사라지는 것으로 묶지만 Oracle Database 19c 기준에서는 효과가 다름
DISABLE CONFIGURATION은 Broker 관리를 중지하고 구성 파일의 정의는 남김
REMOVE CONFIGURATION은 구성 정의와 관리를 제거하며 기본적으로 Primary의 관련 LOG_ARCHIVE_DEST_n과 구성원들의 LOG_ARCHIVE_CONFIG 설정도 제거함
PRESERVE DESTINATIONS는 이 전송 관련 설정을 보존하는 옵션임
REMOVE는 DB 인스턴스나 데이터 파일을 삭제하는 명령은 아님

실습 접속 권한은 SYSDBA이며 최소 필요 권한과 다른 인증 방식은 기재 없음

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기