Oracle Database Admin/Active Data Guard(ADG)

ADG Switchover(Active Data Guard)

다소곳한 직장인 DBA 일생 기록 2025. 9. 1. 15:27
  • DB 환경
    • Primary DB : CHOKI, Standby DB : RCHOKI
DB 구분 DB UNIQUE NAME
Primary DB CHOKI
Standby DB RCHOKI

 

 

  • 사전 점검 (Primary, Standby)
    • Primary DB 인 경우 SWITCHOVER_STATUS = "TO STANDBY" 인지 확인
    • Standby DB 인 경우 SWITCHOVER_STATUS = "NOT ALLOWED" 인지 확인
      • Standby DB 경우 Primary가 switchover(Primary 🔜 Standby) 된 후에는 "TO PRIMARY" 로 바뀜 (아래 설명) 
set lines 555 pages 1000
col database_role for a20
col SWITCHOVER_STATUS for a30
SELECT DATABASE_ROLE, SWITCHOVER_STATUS FROM V$DATABASE;


-- PRIMARY
DATABASE_ROLE     SWITCHOVER_STATUS
----------------- ---------------------
PRIMARY           TO STANDBY


-- STANDBY
DATABASE_ROLE     SWITCHOVER_STATUS
----------------- ---------------------
PHYSICAL STANDBY  NOT ALLOWED

 

 

  • Primary DB(CHOKI) Switchover 수행
    • Primary DB 에서 Standby DB 로 전환(Switchover) 수행
$ sqlplus / as sysdba

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;

Database altered.

 

 

 

  • Standby DB(RCHOKI) Switchover 수행
    • Standby DB에서 Primary DB로 전환(Switchover) 수행
    • SWITCHOVER_STATUS = "TO PRIMARY"  상태 확인  
    • Databaes 기동 - switchover 후 Mount 상태이므로 alter database open 명령어로 OPEN 수행
$ sqlplus "/as sysdba"

SQL>
SQL> set lines 555 pages 1000
SQL> col database_role for a20
SQL> col SWITCHOVER_STATUS for a30
SQL> SELECT DATABASE_ROLE, SWITCHOVER_STATUS FROM V$DATABASE;

DATABASE_ROLE        SWITCHOVER_STATUS
-------------------- ------------------------------
PHYSICAL STANDBY     TO PRIMARY

SQL>
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

Database altered.

SQL>
SQL> ALTER DATABASE OPEN;

Database altered.

SQL>

 

 

  • ADG Apply 적용
    • Switchvoer 이후로 역활 변경 됨.
    • 다시 mrp 프로세스 기동하여 logfile 전송 및 동기화 수행 

Switchover 이 의 DB 환경

DB 구분 DB UNIQUE NAME
Primary DB CHOKI
Standby DB RCHOKI

 

Switchover 이 의 DB 환경

DB 구분 DB UNIQUE NAME
Primary DB RCHOKI
Standby DB CHOKI

 

-- DB 기동 
startup

-- MRP 프로세스 기동
alter database recover managed standby database using current logfile disconnect from session;


-- MRP 프로세스가 기동되었는지 확인
select thread#, sequence#, process, client_process, status, blocks
from   v$managed_standby
where  process = 'MRP0';


-- DataGuard 상태 확인 - 데이터 동기화 Gap 확인
col value for a27
col name for a30
select name, value,  UNIT from v$dataguard_stats;

 

 

 

  • 원복 Switchover
    • 다시 복귀 시 위에서 수행한 대로 그대로 서버만 바꿔서 수행하면 됨.
      1.  RCHOKI (현 Primary DB) : TO STANDBY 명령어로 STANDBY 로 전환(SWITCHOVER) 수행
      2.  CHOKI(현 Standby DB) : TO PRIMARY 명령어로 PRIMARY로 전환(SWITCHOVER) 수행
      3.  RCHOKI (Standby로 전환된 DB) : log apply 전송 및 적용을 위해 mrp 기동
반응형