버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

Data Guard Broker

네트워크 설정

Primary의 listener.ora 파일 수정

코드 블럭
languagebash
titlePrimary의 listener.ora
linenumberstrue
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora_act)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

Data Guard Broker를 사용한다면 DGMGRL 서비스를 리스너에 별도로 등록해줍니다.

서비스를 등록하지 않을 경우, DGMGRL에서 데이터베이스를 재기동하거나 switchover하는 과정에 서비스를 찾지 못해 실패하게 됩니다.

코드 블럭
titleSID_LIST_LISTENER의 SID_LIST에 추가
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )

Standby의 listener.ora 파일 수정

코드 블럭
languagebash
titleStandby의 listener.ora
linenumberstrue
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora_stb)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

Standby 리스너도 마찬가지로 DGMGRL 서비스를 추가합니다.

코드 블럭
titleSID_LIST_LISTENER의 SID_LIST에 추가
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )

Data Guard Broker 환경 구성

Data Guard Broker 활성화

코드 블럭
titlesys 유저로 primary와 standby에서 모두 수행
ALTER SYSTEM SET dg_broker_start=true;
펼치기
서식 미적용
SQL> ALTER SYSTEM SET dg_broker_start=true;

System altered.

Primary와 Standby 양쪽에 dg_broker_start를 true로 변경하여, Data Guard Broker를 기동시킵니다.

DGMGRL 접속

코드 블럭
languagebash
titlesys 유저로 접속
dgmgrl sys/oracle@orcl
펼치기
서식 미적용
[oracle@orcl ~]$ dgmgrl sys/oracle@orcl
DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected.

원격 접속이 구성된 환경에서 오라클 클라이언트를 통해 DGMGRL에 접속할 수 있습니다.

데이터베이스 등록

코드 블럭
titleData Guard 대상 데이터베이스 등록
linenumberstrue
CREATE CONFIGURATION orcl_dg AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl;
ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL;
펼치기
서식 미적용
DGMGRL> CREATE CONFIGURATION orcl_dg AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl;
Configuration "orcl_dg" created with primary database "orcl"
서식 미적용
DGMGRL> ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL;
Database "orcl_stb" added

Primary 데이터베이스와 standby 데이터베이스를 Broker에 등록합니다.

Data Guard Broker 설정 활성화

코드 블럭
title설정 활성화
ENABLE CONFIGURATION;
펼치기
서식 미적용
DGMGRL> SHOW CONFIGURATION;

Configuration - orcl_dg

  Protection Mode: MaxPerformance
  Databases:
    orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED


DGMGRL> ENABLE CONFIGURATION;
Enabled.

등록된 설정값을 갖고 Data Guard Broker를 활성화합니다.

Data Guard Broker 등록 정보 조회

코드 블럭
titleBroker에 등록된 정보 조회
linenumberstrue
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stb;
펼치기
서식 미적용
DGMGRL> SHOW CONFIGURATION;

Configuration - orcl_dg

  Protection Mode: MaxPerformance
  Databases:
    orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS
서식 미적용
DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:            PRIMARY
  Intended State:  TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS
서식 미적용
DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds (computed 1 second ago)
  Apply Lag:       0 seconds (computed 1 second ago)
  Apply Rate:      0 Byte/s
  Real Time Query: OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

Data Guard Broker에 등록된 내용을 SHOW 명령어로 조회할 수 있습니다.

Switchover

Standby로 switchover하기

코드 블럭
titleStandby로 switchover 수행
SWITCHOVER TO orcl_stb;
펼치기
서식 미적용
DGMGRL> SWITCHOVER TO orcl_stb;
Performing switchover NOW, please wait...
New primary database "orcl_stb" is opening...
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "orcl_stb"
서식 미적용
DGMGRL> SHOW CONFIGURATION;

Configuration - orcl_dg

  Protection Mode: MaxPerformance
  Databases:
    orcl_stb - Primary database
    orcl     - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

Switchover 명령어를 이용하면 standby로 서비스를 switch over할 수 있습니다.

Primary로 원복을 하려면 다음의 명령어를 입력하면 됩니다.

코드 블럭
SWITCHOVER TO orcl;

Switchover 시 standby가 자동으로 mount되지 않을 경우, 수동으로 mount한 후에 네트워크나 리스너 설정에 잘못된 부분이 있는지 확인해야 합니다.