TheKoguryo's 기술 블로그

Version 2019.06.03

1.5 Database VM - Data Guard를 통한 HA 만들기

Silver Reference Architecture 레벨

장애시 재시작, 백업으로 복구정도의 시간도 수용이 어려운 데이터베이스에 대해 가용성을 제공하기 위해 Data Guard를 통한 가용성을 제공합니다.

Data Guard 설정하기

DB System 만들기

  1. OCI 콘솔에서 내비게이션 메뉴를 엽니다. [Databases] >> [Bare Metal, VM, and Exadata] 항목으로 이동합니다.

  2. Compartment를 확인하고 [Launch DB System] 클릭합니다.

  3. 생성 정보 입력

    • DB System Information
      그림과 같이 생성될 DB의 정보를 입력합니다.

      • DISPLAY NAME: 이름 입력, SilverPrimaryDB
      • AVAILIBILITY DOMAIN: AD-2
      • SHAPE TYPE: VIRTUAL MACHINE 유형 선택
      • SHAPE: VM.Standard2.1
      • ORACLE DATABASE SOFTWARE EDITION: Enterpries Edition 선택
        • Data Guard는 Standard Edition은 지원하지 않음. Enterpries Edition 이상에서 지원
        • Active Data Guard는 Enterprise Edition - Extreme Performance 에서 지원함
      • 이하 설정은 앞서 DB 시스템 생성하는 것과 같은 방식으로 설정합니다.
        그림
    • Network Information

      • 이하 설정은 앞서 DB 시스템 생성하는 것과 같은 방식으로 설정합니다.
    • Database Information

      • 이하 설정은 앞서 DB 시스템 생성하는 것과 같은 방식으로 설정합니다.
  4. 아래쪽 [Launch DB System]을 클릭

  5. 생성 완료
    그림

Data Guard를 위한 Security List

  1. Data Guard를 활성화하기 위해서는 Primary DB와 Secondary DB간의 1521포트로 서로 들어오고, 나가는 통신이 가능해야 합니다.

  2. DB를 위한 기본적인 Security List는 Custom Security List란 이름으로 이미 생성하였습니다.

  3. 앞서 생성한 ExampleVCN >> Custom Security List 으로 이동합니다.

  4. 1521 포트에 대한 Ingress Rule은 이미 있으며, 빠진 Egress Rule을 추가해 줍니다.
    그림

Data Guard 활성화 하기

  1. DB System 목록에서 대상 DB 시스템을 클릭합니다.

  2. DB 시스템 상세화면에서 [Resources] >> [Databases]에서 Database를 확인합니다

  3. 대상 백업의 우측 액션메뉴에서 [Enable Data Guard] 클릭
    그림

  4. Data Guard 생성 정보 입력

    • DB System Information
      그림과 같이 생성될 DB의 정보를 입력합니다.
      • DISPLAY NAME: 이름 입력, SilverStandbyDBDB
      • AVAILIBILITY DOMAIN: AD-2
        • 멀티 AD인 Region: 가용성을 위해 Primary DB와 다른 AD를 선택함.
        • 단일 AD인 Region: 동일한 AD를 선택하더라도 하나의 AD 내에서 다른 Fault Domain을 통해서 가용성을 보장함.
      • VIRTUAL CLOUD NETWORK: Primary와 동일한 VCN 선택됨.
      • CLIENT SUBNET: 앞서 생성한 DB Regional Subnet 선택
      • HOSTNAME PRIEFIX: 생성될 서버 호스트명 입력
    • PROTECTION MODE: Maximum Performance
    • TRANSPORT TYPE: Async
    • DATABASE ADMIN PASSWORD: Primary DB의 dba 패스워드 입력
      그림
  5. Data Guard 활성화 중
    그림

  6. StandBy DB 생성 완료
    그림

  7. Primary DB 시스템을 클릭합니다.

  8. 아래쪽 Database를 보면 Data Guard가 있음을 표시하는 아이콘이 생겼습니다.
    그림

  9. Primary Database를 클릭합니다.

  10. 왼쪽 [Resources] >> [Data Guard Associations] 에 아래와 같이 Primary DB에 연결된 Standby DB가 보입니다.
    그림

SQL Developer로 Primary DB 연결하기

1.3 Database VM - 사용하기을 참고하여 SQL Developer로 Primary DB에 접속하여 demo 유저에 emp 테이블을 생성합니다.

연결정보 만들기 - sys 유저

전과 동일하게 SQL Developer로 Primary DB에 접속합니다.

DBA 접속 및 사용자 생성

전과 동일하게 SQL Developer로 Primary DB에 DBA로 접속하여 demo 유저를 생성하고 접속 권한을 부여합니다.

사용자 접속 및 SQL 실행

전과 동일하게 SQL Developer로 Primary DB에 demo 유저로 접속하여 emp 테이블을 생성하고 초기 데이터를 삽입니다.

  1. SQL Query를 통해 이후 정상적으로 조회할 수 있습니다.
    그림

Database Switch Over

Primary DB와 Standby DB간의 역할 전환을 위해 다음과 같이 Switch Over를 수행할 수 있습니다.

Switch Over 실행

  1. Primary DB 시스템의 Database로 상세화면으로 이동합니다.

  2. Primary DB 시스템의 현재 역할이 Primary임을 확인할 수 있습니다. 왼쪽 [Resources] >> [Data Guard Associations]로 이동하여 Standby DB의 우측 액션 메뉴에서 Switchover를 클릭합니다.
    그림

  3. 다이얼로그가 뜨면 관리자 암호를 입력합니다.
    그림

  4. Switchover 작업 수행중입니다.
    그림

  5. Primary DB 시스템의 현재 역할이 Standby로 전환되었음을 확인할 수 있습니다.
    그림

  6. Standby DB 시스템의 Database로 상세화면으로 이동합니다. Standby DB 시스템의 현재 역할이 Primary임을 확인할 수 있습니다.
    그림

사용자 접속 및 SQL 실행

  1. 전과 동일하게 SQL Developer로 Primary DB 시스템에 demo 유저로 접속합니다.

  2. Primary DB 시스템은 이제 Standby로 접속이 되지 않습니다.
    그림

  3. SQL Developer로 Standby DB 시스템에 demo 유저로 접속합니다.

  4. SQL Query를 통해 이후 정상적으로 조회할 수 있습니다.
    그림

원복

원복을 위해 다시 Switch Over하여 Primary DB 시스템을 Primary로 전환합니다.

Database Fail Over

Primary DB 시스템의 장애시 Standby DB 시스템이 Primary 역할을 수행하고, 기존 Primary DB 시스템은 Disabled Standby 상태로 전환합니다.

Fail Over 실행

  1. Standby DB 시스템의 Database로 상세화면으로 이동합니다.

  2. Standby DB 시스템의 현재 역할이 Standby임을 확인할 수 있습니다. 왼쪽 [Resources] >> [Data Guard Associations]로 이동하여 Standby DB의 우측 액션 메뉴에서 Failover를 클릭합니다.
    그림

  3. 다이얼로그가 뜨면 관리자 암호를 입력합니다.
    그림

  4. Failover 작업 수행중입니다.
    그림

  5. Standby DB 시스템의 현재 역할이 Primary로 전환되었음을 확인할 수 있습니다.

  6. Primary DB 시스템의 아래와 같이 Disabled_standby 상태가 된 것을 확인할 수 있습니다.
    그림

Reinstate 실행

기존 Primary DB 시스템의 장애에서 복구된 경우 Reinstate 통해 Standby 상태로 전환합니다.

  1. 현재 Primary 역할인 Standby DB 시스템의 Database로 상세화면으로 이동합니다.

  2. 왼쪽 [Resources] >> [Data Guard Associations]로 이동하여 Standby DB의 우측 액션 메뉴에서 Reinstate를 클릭합니다.
    그림

  3. 다이얼로그가 뜨면 관리자 암호를 입력합니다.
    그림

  4. 작업이 완료되면 Primary DB 시스템의 아래와 같이 Standby 상태가 된 것을 확인할 수 있습니다.
    그림

원복

원복을 위해 다시 Switch Over하여 Primary DB 시스템을 Primary로 전환합니다.



** 이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다. **
Last updated on 14 May 2019