OCI 전체 스택 DR 및 사용자정의 스크립트를 사용하여 OCI 데이터베이스 서비스에서 수동으로 구성된 Oracle Data Guard에 대한 데이터베이스 롤 변경 자동화

소개

Oracle Cloud Infrastructure Full Stack Disaster Recovery(OCI Full Stack DR)는 클릭 한 번으로 전 세계 Oracle Cloud Infrastructure(OCI) 리전 간의 컴퓨트, 데이터베이스, 애플리케이션 전환을 통합관리합니다. 고객은 전문화된 관리 또는 변환 서버 없이도 기존 인프라, 데이터베이스 또는 애플리케이션을 재설계하거나 재설계하지 않고도 하나 이상의 비즈니스 시스템을 복구하는 데 필요한 단계를 자동화할 수 있습니다.

OCI Full Stack DR은 OCI의 다양한 Oracle Database 서비스에 대한 완전히 통합된 지원을 제공합니다. 이러한 데이터베이스는 OCI Full Stack DR 보호 그룹의 멤버로 추가될 수 있으므로 조정된 재해 복구 작업을 수행할 수 있습니다.

OCI의 Oracle Databases 관리형 서비스의 경우 OCI 콘솔, OCI CLI(Oracle Cloud Infrastructure Command Line Interface) 또는 OCI SDK를 사용하여 Oracle Data Guard를 구성하는 것이 좋습니다. 이렇게 하면 OCI Full Stack DR이 Data Guard 구성을 자동으로 감지하고 DR 계획의 일부로 롤 전환을 위한 내장 계획 그룹을 생성할 수 있습니다.

그러나 다음과 같은 특정 기술 또는 운영 요구 사항으로 인해 수동 Oracle Data Guard 구성(OCI의 기본 인터페이스 외부)이 필요한 시나리오가 있습니다.

이러한 경우 OCI 데이터베이스 서비스 제어 플레인에서 Oracle Data Guard 설정을 인식하지 못할 수도 있지만 OCI Full Stack DR은 여전히 유연성을 제공합니다. 사용자 정의 스크립트를 만들고 DR 계획 내의 사용자 정의 계획 그룹에 통합하여 역할 전환을 처리할 수 있습니다.

이 솔루션은 OCI 콘솔, SDK 또는 API를 통해 Data Guard 구성이 관리되는 Oracle Database Cloud 서비스와 호환되지 않습니다.

이 사용지침서에서는 Oracle Data Guard가 수동으로 구성된 OCI 데이터베이스 서비스에 대한 사용자정의 데이터베이스 처리기 스크립트를 사용하여 Oracle Data Guard 롤 전환을 관리하기 위한 표준화된 접근 방식을 안내합니다.

주: 이 사용자정의 스크립트 솔루션은 다음 OCI 데이터베이스 서비스에 적용됩니다.

아키텍처 설명

이 자습서에서는 Oracle Data Guard가 수동으로 구성된 두 개의 OCI 영역에 배치된 두 개의 DB 시스템과 함께 Oracle Base Database Service를 사용합니다.

커스텀 데이터 가드 구성
그림 A: Oracle Base Database Service를 사용한 사용자정의 Data Guard 구성

자습서 전체의 정의 및 가정

목표

이 자습서에서는 다음 작업에 대해 다룹니다.

필수 조건

다음 리소스를 사용하여 자습서를 시작합니다.

리소스 지역 1 - 애슈번 지역 2 - 피닉스
구획 app app
DB 시스템 adghol-12345 adghol-12345
DB 이름 adghol adghol
DB 고유 이름 adghol-site0 adghol-site1
DB 역할 기본 대기
컴퓨트 VM 스크립트-iad 스크립트-phx
버킷 IAD PHX

주: 계속하기 전에 필요한 모든 선행 조건을 완료하십시오. 이러한 단계는 원활하고 성공적인 OCI Full Stack DR 설정을 위한 토대를 마련합니다.

  1. Admin Access or Required Oracle Cloud Infrastructure Identity and Access Management(OCI IAM) 정책.

    관리자 권한이 있는지 확인하거나 OCI Full Stack DR을 사용하기 위해 필요한 OCI IAM 정책 및 동적 그룹을 구성하십시오. 이 솔루션에서 데이터베이스 처리기 스크립트는 내부적으로 OCI 컨테이너 인스턴스를 실행하므로 그에 따라 정책을 추가해야 합니다.

    주: <compartment_ocid><compartment_name>의 모든 항목을 실제 OCI 컴파트먼트 OCID 및 이름으로 바꿉니다.

    1. 동적 그룹 생성: 예제 이름(FullStackDR_Database_DG)을 사용하여 동적 그룹을 생성하고 다음과 같은 일치 규칙을 추가합니다.

       Any {instance.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'instance', resource.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'computecontainerinstance', resource.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'drprotectiongroup', resource.compartment.id = '<compartment_ocid>'}
      
    2. OCI IAM 정책 생성: 예제 이름(FullStackDR_Database_Group_Policies)을 사용하여 정책을 생성하고 다음 allow 문을 추가합니다.

       Allow dynamic-group FullStackDR_Database_DG to read secret-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage virtual-network-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage instance-agent-command-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage instance-agent-command-execution-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage objects in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage database-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage compute-container-family in compartment <compartment_name>
      

    자세한 내용은 OCI 재해 복구 정책 – 공식 문서IAM 정책 구성(Oracle 블로그)을 참조하십시오.

  2. 두 리전에서 OCI 컴퓨트 인스턴스 프로비저닝: scripts.For 세부 단계를 호스팅하고 실행하기 위한 점포스트 역할을 할 각 리전에서 OCI 컴퓨트 인스턴스를 생성합니다. OCI 인스턴스 생성을 참조하십시오. 단순성을 위해 이 OCI 컴퓨트 인스턴스를 이미 점포스트로 작동할 수 있는 기존 OCI 컴퓨트 인스턴스가 있는 tutorial.If 전체에서 점포스트로 참조할 것입니다. 이 단계를 건너뛸 수 있습니다. Jumphost에 Oracle Cloud Agent가 실행 중인지 확인하고 실행 명령 플러그인이 사용으로 설정되어 있는지 확인하십시오. 자세한 내용은 Oracle Cloud Agent를 참조하십시오.

  3. OCI 컴퓨트 인스턴스에서 실행 명령 액세스: DR 작업 중 스크립트를 실행하기 위해 사용자 정의 계획 그룹을 사용하므로 점포스트에서 실행 명령 필요 조건을 설정해야 합니다. 자세한 내용은 인스턴스에 대한 명령 실행을 참조하십시오

  4. 두 리전의 점포에서 OCI CLI 설치하기: 점포스트 운영 체제를 기반으로 두 리전에 OCI CLI를 설치하고 OCI CLI 명령을 호출할 수 있는지 확인합니다. 스크립트에서 인스턴스 주체를 사용합니다. 자세한 내용은 OCI CLI 설치를 참조하십시오.

  5. Set Up VCNs in both Regions with Remote VCN Peering: Create VCNs in both the primary and standby regions and setup remote VCN peering. 이는 영역 간 Oracle Data Guard를 설정하는 데 필요합니다. 자세한 내용은 OCI Base DB 네트워킹 구성을 참조하십시오.

  6. 수동 Oracle Data Guard 구성: Oracle Data Guard Broker의 요구 사항에 따라 Oracle Data Guard 설정을 수동으로 구성합니다. 자세한 내용은 Oracle Data Guard Broker and Oracle Clusterware를 참조하십시오.

  7. 점포스트에서 데이터베이스 처리기 스크립트 다운로드: 스크립트를 다운로드하여 두 영역의 점포스트에 보관해야 합니다.

    1. Data Guard DB 처리기 스크립트 저장소에서 Oracle Data Guard 데이터베이스 처리기 스크립트를 다운로드합니다.

    2. 스크립트를 두 영역의 점포스트에 있는 /home/opc/ 디렉토리(또는 다른 선호 경로)로 복사합니다.

    3. 스크립트 파일에 실행 가능한 권한이 있는지 확인하십시오.

    4. full_stack_dr_non_std_db_handler.py는 Oracle Data Guard 롤을 처리하는 Python 스크립트입니다. transitions.The 연관된 Bash 스크립트는 템플리트로 제공되며 특정 요구사항에 맞게 수정할 수 있습니다. Python 역할 변경 스크립트 자체를 수정하지 마십시오.

  8. OCI 저장소 및 암호 생성: OCI 저장소를 생성하고 데이터베이스 인증서를 두 영역에 모두 암호로 저장해야 합니다.

    1. OCI 콘솔 또는 CLI를 사용하여 각 리전에 OCI Vault를 생성합니다.
    2. 저장소에 암호를 생성하여 데이터베이스에 대한 SYS 사용자 암호를 저장합니다.

    자세한 내용은 OCI Vaults를 참고하세요.

  9. 점포스트의 연결성 검사: 컴퓨팅 인스턴스에서 OCI 데이터베이스 서비스, OCI Vault 서비스 및 OCI 컨테이너 인스턴스 서비스에 액세스할 수 있는지 확인합니다. 이는 OCI 전체 스택 DR 스크립트가 기본대기 영역 모두에서 데이터베이스 세부정보를 인출하기 위한 검사를 수행하기 때문에 필요합니다.

    1. 연결성은 점포에서 작동해야 합니다. 점포스트에서 다음 명령을 실행합니다.

        # Primary Region
        curl -v telnet://database.<primary_region>.oraclecloud.com:443
        curl -v telnet://secrets.vaults.<primary_region>.oci.oraclecloud.com:443
        curl -v telnet://iaas.<primary_region>.oraclecloud.com:443
        curl -v telnet://compute-containers.<primary_region>.oci.oraclecloud.com:443
      
        # Standby Region
        curl -v telnet://database.<standby_region>.oraclecloud.com:443
        curl -v telnet://secrets.vaults.<standby_region>.oci.oraclecloud.com:443
        curl -v telnet://iaas.<standby_region>.oraclecloud.com:443
        curl -v telnet://compute-containers.<standby_region>.oci.oraclecloud.com:443
      

      주: <primary_region><standby_region>를 실제 OCI 지역 식별자로 바꿉니다.
      예:

      • 애슈번의 경우 us-ashburn-1
      • 피닉스의 경우 us-phoenix-1

      전체 목록은 OCI 지역 식별자를 참조하십시오.

      예상 출력: 각 명령은 Connected to ...와 유사한 메시지를 반환해야 합니다.

      연결이 실패하면 점포스트의 VCN/서브넷에 대한 보안 목록, 라우팅 테이블 및 서비스 게이트웨이 구성을 확인합니다.

  10. 오브젝트 스토리지 버킷 생성: 여기에 설명된 대로 복구 작업 중 OCI Full Stack DR에서 생성된 로그를 저장할 기본 및 대기 영역에 OCI 오브젝트 스토리지 버킷을 생성합니다. 작업 로그에 대한 로그 위치 준비.

  11. 데이터베이스 처리기 스크립트 사용 및 사용자 정의: 언급된 GitHub 저장소에서 데이터베이스 처리기 스크립트를 다운로드할 수 있습니다. 다음은 데이터베이스 처리기 스크립트 사용 및 필수 매개변수입니다.

    db 처리기-script.png
    그림 B: DB 처리기 스크립트 사용

    지원되는 --db_operation 옵션은 다음과 같습니다.

    • 전환
    • SWITCHOVER_PRECHECK
    • 페일오버
    • FAILOVER_PRECHECK
    • CONVERT_PHYSICAL_TO_SNAPSHOT_STANDBY
    • CONVERT_PHYSICAL_TO_SNAPSHOT_STANDBY_PRECHECK
    • REVERT_SNAPSHOT_TO_PHYSICAL_STANDBY_PRECHECK
    • REVERT_SNAPSHOT_TO_PHYSICAL_STANDBY

    OCI Full Stack DR은 데이터베이스 처리기 스크립트를 실행할 때 필요한 모든 매개변수를 전달해야 합니다. 유용성 및 반복성 향상을 위해 다음과 같은 래퍼 bash 스크립트를 생성하는 것이 좋습니다.

    • 필수 매개변수를 제공합니다.
    • 감사 및 문제 해결을 위해 로깅을 사용으로 설정합니다.

    샘플 예: 데이터베이스 전환 스크립트(db-switchover-iad-phx.sh)

    #!/bin/bash
    
    # Define log file with date and time
    LOG_FILE="db-switchover-iad-phx-$(date +%Y%m%d_%H%M%S).log"
    
    # Define Python script and argument
    PYTHON_SCRIPT="full_stack_dr_non_std_db_handler.py"
    ARGUMENT="--database_ocid="ocid1.database.oc1.phx.xxxxxxxx" --vault_ocid="ocid1.vaultsecr
    et.oc1.phx.xxxxx" --region="us-phoenix-1" --primary_db_unique_name="adghol_site0" --st
    andby_db_unique_name="adghol_site1" --drpg_ocid="ocid1.drprotectiongroup.oc1.phx.axxxxxxax
    " --db_operation="SWITCHOVER" --auth_type=INSTANCE_PRINCIPAL"
    
    # Execute Python script and log output
    echo "Executing Python script: $PYTHON_SCRIPT with argument: $ARGUMENT" | tee -a $LOG_FILE
    /usr/bin/python3 $PYTHON_SCRIPT $ARGUMENT 2>&1 | tee -a $LOG_FILE
    
    echo "Execution completed. Logs saved in $LOG_FILE"
    

    주: 이 래퍼 스크립트를 데이터베이스 처리기 스크립트와 동일한 위치에 저장하고 실행 가능한지 확인하십시오. OCID는 스크립트에서 익명화됩니다.

    chmod +x db-switchover-wrapper.sh
    

    지역 1(애슈번)에서 실행 중인 DB가 기본이고 지역 2(피닉스)가 대기인 DR 계획 스크립트 매핑

    DR 계획 유형 대상 Instance 스크립트 이름 설명:
    Switchover script-phx db-prechk-switchover-iad-phx.sh Prechk DB IAD에서 PHX로 전환
    Switchover script-phx db-switchover-iad-phx.sh DB IAD에서 PHX로 전환
    Failover script-phx db-prechk-failover-iad-phx.sh IAD에서 PHX로 Prechk DB 복구
    Failover script-phx db-failover-iad-phx.sh IAD에서 PHX로 DB Failover
    Start drill script-phx db-prechk-startdrill-phx.sh PHX에서 DR 드릴 시작 사전 확인
    Start drill script-phx db-startdrill-phx.sh PHX에서 DR 드릴 시작
    Stop drill script-phx db-prechk-stopdrill-phx.sh 사전 확인 PHX에서 DR 드릴 중지
    Stop drill script-phx db-stopdrill-phx.sh PHX에서 DR 드릴 중지

    지역 2(피닉스)에서 실행 중인 DB가 기본이고 지역 2(애슈번)가 대기인 DR 계획 스크립트 매핑

    DR 계획 유형 대상 Instance 스크립트 이름 설명:
    Switchover script-iad db-prechk-switchover-phx-iad.sh Prechk DB PHX에서 IAD로 전환
    Switchover script-iad db-switchover-phx-iad.sh DB PHX에서 IAD로 전환
    Failover script-iad db-prechk-failover-phx-iad.sh PHX에서 IAD로 Prechk DB 복구
    Failover script-iad db-failover-phx-iad.sh PHX에서 IAD로 DB Failover
    Start drill script-iad db-prechk-startdrill-iad.sh IAD에서 DR 드릴 사전 확인 시작
    Start drill script-iad db-startdrill-iad.sh IAD에서 DR 드릴 시작
    Stop drill script-iad db-prechk-stopdrill-iad.sh IAD에서 DR 드릴 사전 확인 중지
    Stop drill script-iad db-stopdrill-iad.sh IAD에서 DR 드릴 중지

주: 명확성과 유용성을 높이기 위해 특정 DR 계획 유형 및 영역에 맞게 조정된 여러 바시 래퍼 스크립트를 생성했습니다. 이러한 스크립트는 데이터베이스 롤 전환을 위해 공유된 Python 스크립트를 사용하며, 사용자 고유의 요구사항과 환경에 맞게 사용자정의할 수 있습니다.

작업 1: Oracle Data Guard 구성 확인 및 태그 업데이트

이 작업에서는 Oracle Base Database Service를 사용하여 Oracle Data Guard 수동 구성을 확인합니다. 비표준 Oracle Data Guard 설정을 나타내기 위해 데이터베이스에 *tag**를 생성합니다. 이를 통해 OCI Full Stack DR은 내장된 계획 그룹에 의존하지 않고도 DR 계획을 생성할 수 있습니다.

  1. OCI 콘솔에 로그인하고 Oracle Database로 이동한 다음 Oracle Base Database Service를 누릅니다.

  2. OCI 지역 컨텍스트가 지역 1(애슈번)로 설정되었는지 확인합니다.

  3. DB 시스템을 선택합니다. 이 예에서는 adghol0-12345입니다.

    iad-db-system.png
    그림 1.1: 영역 1의 DB 시스템

  4. 데이터베이스 탭으로 이동하고 adghol 데이터베이스를 선택합니다.

    iad-db 시스템-db.png
    그림 1.2: 영역 1의 데이터베이스

  5. Data Guard 상태사용으로 설정되지 않음인지 확인합니다. 그러면 OCI 콘솔을 사용하여 Oracle Data Guard가 설정되지 않았음을 확인합니다.

    iad-db-dataguard-cp-status.png
    그림 1.3: 영역 1의 Data Guard 제어 플레인 상태

  6. 태그 탭으로 이동하여 자유 형식 태그를 생성합니다. 설정에 따라 Peer DB OCID 값을 대체해야 합니다. 이 예제에서는 Phoenix 지역의 데이터베이스 OCID를 추가해야 합니다.

    태그 키
    FsdrNonStandardDataGuardPeerDatabaseId Peer DB OCID
    FsdrNonStandardDataGuardFlag True

    iad-db-dataguard-태그
    그림 1.4: 영역 1의 DB 태그

  7. DB Systems로 이동하고 Nodes를 선택합니다.

    iad-db-node.png
    그림 1.5: 영역 1의 DB 노드

    주: 비RAC 설정이므로 단일 데이터베이스 노드가 표시됩니다. Oracle Real Application Clusters 설정인 경우 두 개의 노드가 표시됩니다.

  8. 데이터베이스 노드에 연결하고 oracle 사용자로 전환합니다. Oracle Data Guard Broker를 사용하여 롤을 확인합니다.

    dgmgrl
    show configuration
    

    iad-db-dataguard-status.png
    그림 1.6: 영역 1의 Data Guard 상태

    예상 출력:

    • adghol_site0기본 데이터베이스로 표시되어야 합니다.
    • adghol_site1물리적 대기 데이터베이스로 표시되어야 합니다.
    • Configuration Status성공으로 표시되어야 합니다.

    오류가 발생하여 데이터베이스 롤이 예상과 다를 경우 Oracle Data Guard 설명서를 사용하여 오류를 수정해야 합니다.

  9. OCI 콘솔에 로그인하고 Oracle Database로 이동한 다음 Oracle Base Database Service를 누릅니다.

  10. OCI 지역 컨텍스트가 지역 2(피닉스)로 설정되어 있는지 확인합니다.

  11. DB 시스템을 선택합니다. 예제에서는 adghol1-12345입니다.

    phx-db-system.png
    그림 1.7: 영역 2의 DB 시스템

  12. 데이터베이스 탭으로 이동하고 adghol 데이터베이스를 선택합니다.

    phx-db-system-db.png
    그림 1.8: 영역 2의 데이터베이스

  13. Data Guard 상태사용으로 설정되지 않음인지 확인합니다. 그러면 OCI 콘솔을 사용하여 Oracle Data Guard가 설정되지 않았음을 확인합니다.

    phx-db-dataguard-cp-status.png
    그림 1.9: 영역 2의 Data Guard 제어 플레인 상태

  14. 태그 탭으로 이동하여 자유 형식 태그를 생성합니다. 설정에 따라 Peer DB OCID 값을 대체해야 합니다. 이 예제에서는 Ashburn 지역의 데이터베이스 OCID를 추가해야 합니다.

    태그 키
    FsdrNonStandardDataGuardPeerDatabaseId Peer DB OCID
    FsdrNonStandardDataGuardFlag True

    phx-db-dataguard-태그
    그림 1.10: 영역 2의 DB 태그

  15. 7단계와 8단계를 반복하지만 이번에는 Region 2(Standby Region)의 데이터베이스 노드에 연결합니다.

    • Region 2 데이터베이스 노드에서 oracle 유저로 로그인되어 있는지 확인합니다.
    • 8단계와 마찬가지로 dgmgrl를 사용하여 Oracle Data Guard 롤을 확인합니다.

작업 2: DR 보호 그룹 만들기 및 연관

이 애플리케이션 스택에 대한 보호 그룹이 아직 존재하지 않을 경우 영역 1 및 영역 2에 DR 보호 그룹을 생성합니다.

작업 2.1: 영역 1에서 보호 그룹 생성

  1. 그림 2.1과 같이 OCI 콘솔로 이동하고 DR 보호 그룹으로 이동합니다.

    1. OCI 지역 컨텍스트가 지역 1(애슈번)로 설정되어 있는지 확인합니다.
    2. 마이그레이션 및 재해 복구를 누릅니다.
    3. DR 보호 그룹을 누릅니다.

    dg-iad-drpg.png
    그림 2.1: DR 보호 그룹으로 이동합니다.

  2. 그림 2.2와 같이 영역 1에 기본 DR 보호 그룹을 만듭니다. 피어, 롤 및 멤버는 이후 단계에서 지정됩니다.

    1. DR 보호 그룹을 생성할 컴파트먼트를 선택합니다.
    2. DR 보호 그룹 생성을 누릅니다.
    3. DR 보호 그룹에 대해 의미 있는 이름을 사용합니다.
    4. OCI 전체 스택 DR 로그에 대해 OCI 오브젝트 스토리지 버킷을 선택합니다.
    5. Create를 누릅니다.

    dg-drpg-create-iad-finish.png
    그림 2.2: 영역 1에서 DR 보호 그룹을 생성하는 데 필요한 매개변수

작업 2.2: 영역 2에서 보호 그룹 생성

  1. 그림 2.3과 같이 OCI 콘솔로 이동하여 DR 보호 그룹으로 이동합니다.

    1. OCI 리전 컨텍스트가 리전 2(피닉스)로 설정되어 있는지 확인합니다.
    2. 마이그레이션 및 재해 복구를 누릅니다.
    3. DR 보호 그룹을 누릅니다.

    dg-iad-drpg.png
    그림 2.3: DR 보호 그룹으로 이동합니다.

  2. 그림 2.4와 같이 영역 2에 기본 DR 보호 그룹을 만듭니다. 피어, 롤 및 멤버는 이후 단계에서 지정됩니다.

    1. DR 보호 그룹을 생성할 컴파트먼트를 선택합니다.
    2. DR 보호 그룹 생성을 누릅니다.
    3. DRPG에 대해 의미 있는 이름을 사용합니다.
    4. OCI 전체 스택 DR 로그에 대해 OCI 오브젝트 스토리지 버킷을 선택합니다.
    5. Create를 누릅니다.

    dg-drpg-create-phx-finish.pn
    그림 2.4: 영역 2에서 DR 보호 그룹을 생성하는 데 필요한 매개변수

작업 2.3: 영역 1 및 영역 2에서 보호 그룹 연관

각 지역의 DRPG를 서로의 동료로 연결하고 기본 및 대기의 피어 역할을 할당합니다. 기본 및 대기 롤은 모든 DR 작업/DR 계획 실행의 일부로 OCI Full Stack DR에 의해 자동으로 변경되므로 언제든지 수동으로 롤을 관리할 필요가 없습니다.

  1. DR 보호 그룹 세부정보 페이지로 이동합니다.

    1. OCI 지역 컨텍스트가 리전 1(애슈번)로 설정되었는지 확인합니다.
    2. 작업 드롭다운 메뉴를 누르고 연결을 눌러 프로세스를 시작합니다.

    drpg-assoc-begin-iad.png
    그림 2.5: DRPG 연결 시작

  2. 다음 정보를 입력합니다.

    1. 역할: 기본 역할을 선택합니다. OCI Full Stack DR은 대기 롤을 리전 2에 자동으로 할당합니다.
    2. 피어 영역: 다른 DR 보호 그룹이 생성된 영역 2(피닉스)를 선택합니다.
    3. 피어 DR 보호 그룹의 경우: 만들어진 피어 DR 보호 그룹을 선택합니다.
    4. 연계를 누릅니다.

    drpg-assoc-finish-iad.png
    그림 2.6: DRPG를 연결하는 데 필요한 매개변수

OCI Full Stack DR은 연관이 완료되면 다음 이미지와 같이 표시됩니다.

drpg-assoc-completed-iad.png
그림 2.7: 개별 DRPG 관점에서 피어 관계 표시

다음 그림과 같이 모든 DR 보호 그룹을 보여주는 전역 관점에서 컨텍스트/뷰가 표시될 때마다 동일한 정보를 찾을 수 있습니다.

drpg-assoc-completed-dxb.png
그림 2.8: 글로벌 DRPG 관점에서 피어 관계 표시

작업 3: DR 보호 그룹에 멤버 추가

이 작업에서는 Region 1의 기본 DR 보호 그룹에 다음 OCI 리소스를 추가합니다.

  1. 데이터베이스 처리기 스크립트를 호스팅하는 OCI 컴퓨트 인스턴스가 비이동 VM으로 추가됩니다.
  2. 기본 DB 시스템입니다.

작업 3.1: 영역 1에서 DR 보호 그룹에 멤버 추가

  1. 다음 그림과 같이 영역 1에서 DR 보호 그룹을 선택합니다.

    1. OCI 지역 컨텍스트가 지역 1(애슈번)인지 확인합니다.
    2. 영역 1에서 DR 보호 그룹을 선택합니다.
    3. 멤버 탭으로 이동합니다.
    4. 멤버 관리를 누릅니다.

    drpg-add-nav-iad.png
    그림 3.1: 영역 1에서 DR 보호 그룹에 멤버를 추가하는 방법

  2. 데이터베이스 처리기 스크립트에 대한 컴퓨트 인스턴스를 추가합니다.

    1. 멤버 추가를 선택합니다.
    2. 컴퓨트 아래의 인스턴스리소스 유형 멤버로 선택합니다.
    3. 데이터베이스 처리기 스크립트를 호스팅하는 컴퓨트 인스턴스를 선택합니다.
    4. 비이동 인스턴스를 선택합니다.
    5. 추가를 누릅니다.

    drpg-add-컴퓨트-iad.png
    그림 3.2: 리전 1의 DRPG에 컴퓨트 인스턴스 추가

    추가된 컴퓨트 인스턴스를 확인합니다.

    drpg-add-compute-iad-added.png
    그림 3.2: 컴퓨트 인스턴스가 영역 1의 DRPG에 추가됨

  3. primary database를 추가합니다. 멤버 추가 누르기

    1. 멤버 추가를 선택합니다.
    2. Oracle Database -> 데이터베이스(기본 DB,ExaDB-D,ExaCC,ExaXS)리소스 유형 멤버로 선택합니다.
    3. Oracle Base Database데이터베이스 유형으로 선택합니다.
    4. 데이터베이스 시스템을 선택합니다.
    5. 데이터베이스 홈을 선택합니다.
    6. 데이터베이스를 선택합니다.
    7. 데이터베이스 비밀번호 암호를 선택합니다.
    8. 추가를 누릅니다.

    drpg-add-db-iad.png
    그림 3.3: 기본 DB를 추가하는 데 필요한 매개변수

    추가된 기본 데이터베이스를 확인하고 두 멤버를 모두 게시합니다.

    drpg-add-db-iad-complete.png
    그림 3.4: 기본 DB가 지역 1의 DRPG에 추가됨

    drpg-add-db-iad-complete1.png
    그림 3.5: 영역 1의 DRPG에 멤버 게시

    몇 분 후에 두 멤버 모두 회원으로 제공되어야 합니다.

    drpg-add-db-iad-published.png
    그림 3.6: 영역 1의 DRPG에 추가된 멤버

작업 3.2: 영역 2에서 DR 보호 그룹에 멤버 추가

  1. 다음 그림과 같이 영역 2에서 DR 보호 그룹을 선택합니다.

    1. OCI 리전 컨텍스트가 리전 2(피닉스)인지 확인합니다.
    2. 영역 2에서 DR 보호 그룹을 선택합니다.
    3. 멤버 탭으로 이동합니다.
    4. 멤버 관리를 누릅니다.

    drpg-add-nav-phx.png
    그림 3.7: 영역 2에서 DR 보호 그룹에 멤버를 추가하는 방법

  2. 데이터베이스 처리기 스크립트에 대한 컴퓨트 인스턴스를 추가합니다.

    1. 멤버 추가를 선택합니다.
    2. 컴퓨트 아래의 인스턴스리소스 유형 멤버로 선택합니다.
    3. 데이터베이스 처리기 스크립트를 호스팅하는 컴퓨트 인스턴스를 선택합니다.
    4. 비이동 인스턴스를 선택합니다.
    5. 추가를 누릅니다.

    drpg-add-컴퓨트-phx.png
    그림 3.8: 리전 2의 DRPG에 컴퓨트 인스턴스 추가

    추가된 컴퓨트 인스턴스를 확인합니다.

    drpg-add-compute-phx-added.png
    그림 3.9: 컴퓨트 인스턴스가 영역 2의 DRPG에 추가됨

  3. standby database를 추가합니다. 멤버 추가 누르기

    1. 멤버 추가를 선택합니다.
    2. Oracle Database -> 데이터베이스(기본 DB,ExaDB-D,ExaCC,ExaXS)리소스 유형 멤버로 선택합니다.
    3. Oracle Base Database데이터베이스 유형으로 선택합니다.
    4. 데이터베이스 시스템을 선택합니다.
    5. 데이터베이스 홈을 선택합니다.
    6. 데이터베이스를 선택합니다.
    7. 데이터베이스 비밀번호 암호를 선택합니다.
    8. 추가를 누릅니다.

    drpg-add-db-phx.png
    그림 3.10: 대기 DB를 추가하는 데 필요한 매개변수

    추가된 대기 데이터베이스를 확인하고 두 멤버를 모두 게시합니다.

    drpg-add-db-phx-complete.png
    그림 3.11: 대기 DB가 리전 2의 DRPG에 추가됨

    drpg-add-db-phx-complete1.png
    그림 3.12: 영역 2의 DRPG에 멤버 게시

    몇 분 후에 두 멤버 모두 회원으로 제공되어야 합니다.

    drpg-add-db-phx-published.png
    그림 3.13: 영역 2의 DRPG에 추가된 멤버

작업 4: 영역 2에서 DR 계획 생성 및 사용자 정의

이 작업에서는 영역 2(피닉스)에서 대기 DR 보호 그룹과 연관된 초기 Switchover, FailoverStart Drill 계획을 만듭니다.

이러한 계획은 기본 영역(영역 1)에서 대기 영역(영역 2)으로 작업 로드를 원활하게 전환하도록 설계되었습니다.

DR 계획은 항상 대기 롤을 보유하는 보호 그룹에 생성됩니다.

리전 2(피닉스)가 현재 대기이므로 모든 초기 DR 계획을 생성합니다.

작업 4.1: DR 계획 생성

  1. Region 2(Phoenix)에서 DRPG를 선택하여 DR 계획을 생성합니다.

    1. OCI 리전 컨텍스트가 리전 2(피닉스)인지 확인합니다.
    2. Region 2에서 standby DRPG를 선택합니다.
    3. 플랜 탭으로 이동합니다.
    4. 계획 생성을 누릅니다.

    계획-생성-nav-phx.png
    그림 4.1: 영역 2에서 기본 DR 계획 생성을 시작하는 방법

  2. 전환 계획을 생성합니다.

    1. 전환 계획에 대해 간단하지만 의미 있는 이름을 입력합니다. 이름은 가능한 한 짧지만 한 눈에 이해하기 쉬워 위기의 혼란과 인간의 실수를 줄일 수 있어야합니다.
    2. 계획 유형전환(계획)으로 선택합니다.

    계획-생성-so-phx-png
    그림 4.2: DR 전환 계획을 만드는 데 필요한 매개변수

  3. 복구 계획을 만듭니다.

    다음 그림과 같이 동일한 프로세스에 따라 기본 페일오버 계획을 만듭니다.

    1. 간단하지만 의미 있는 페일오버 계획의 이름을 입력합니다.
    2. 계획 유형이동(계획되지 않음)으로 선택합니다.

    플랜-생성-fo-phx.png
    그림 4.3: DR 페일오버 계획을 만드는 데 필요한 매개변수

  4. 시작 드릴 계획을 생성합니다.

    다음 그림과 같이 동일한 프로세스에 따라 기본 페일오버 계획을 만듭니다.

    1. 단순하지만 의미 있는 시작 드릴 계획의 이름을 입력합니다.
    2. 계획 유형이동(계획되지 않음)으로 선택합니다.

    계획-생성-시작-phx.png
    그림 4.4: DR Startdrill 계획을 생성하는 데 필요한 매개변수

    이제 영역 2의 대기 DR 보호 그룹에는 다음 그림과 같이 3개의 DR 계획이 있어야 합니다. 리전 1에서 리전 2로 작업 로드 전환을 처리합니다. Region 1에서 유사한 계획을 생성하여 후속 작업에서 Region 2에서 Region 1로 작업 로드를 전환합니다.

    계획-생성-phx-completed.png
    그림 4.5: 더 이상 진행하기 전에 영역 2에 있어야 하는 3개의 DR 계획 표시

주: OCI Full Stack DR을 사용하면 시작 드릴 계획이 성공적으로 실행되고 DR 보호 그룹이 비활성(드릴 진행 중) 상태인 후에만 정지 드릴 계획을 생성할 수 있습니다.

작업 4.2: 사용자 정의 계획 그룹으로 DR 계획 사용자 정의

Oracle Data Guard 설정이 수동으로 수행되었으므로 작업 4.1에서 생성된 DR 계획은 Oracle 데이터베이스 롤 전환에 대한 내장 계획 그룹을 생성하지 않습니다.

이 작업에서는 다음 작업을 수행합니다.

이렇게 하면 DR 계획이 수동으로 구성된 Data Guard 환경과 관련된 페일오버, 스위치오버 및 드릴 시나리오를 완전히 처리할 수 있습니다.

  1. 태스크 4.1에서 생성된 전환 계획으로 이동하고 계획 그룹을 선택합니다.

    계획-사용자 정의-so-phx-nav.png
    그림 4.6: 영역 2에서 전환 계획 커스터마이즈를 시작하는 방법

  2. 먼저 사용자 정의 사용자 정의 DR 계획 그룹을 추가하여 Oracle 데이터베이스 역할 변경의 특정 요구에 맞게 DR 워크플로우를 조정합니다. 이 계획 그룹은 영역 1의 점포스트 script-iad에서 필요한 스크립트를 호출합니다.

  3. DB 전환에 사용자 정의 계획 그룹을 추가합니다.

    1. 그룹 추가(Add group)를 누릅니다.
    2. 단순하지만 설명적인 계획 그룹 이름을 입력합니다. 이 예에서는 DB Switchover를 사용합니다.
    3. 단계 추가를 눌러 DB 롤 변경을 수행할 스크립트를 지정할 대화상자를 엽니다.

      계획-사용자 정의-so-phx-grp-db-role-change.png
      그림 4.7: DB 역할 변경을 수행할 계획 그룹을 생성하는 매개변수

      플랜 그룹 추가 단계에서 다음 정보를 입력합니다.

    4. 단순하지만 설명적인 단계 이름을 입력합니다. 이 예에서는 DB Switchover from IAD to PHX를 사용합니다.
    5. 이 단계가 실행될 인스턴스를 포함하는 인스턴스 영역을 선택합니다. 이 예제에서는 스크립트가 Region 2의 jumphost에서 실행되므로 Phoenix를 선택합니다.
    6. 로컬 스크립트 실행을 선택합니다.
    7. 영역 2에서 script-phx 점포인 대상 인스턴스를 선택합니다.
    8. 스크립트 매개변수에 매개변수와 함께 스크립트의 전체 경로를 입력합니다. 예: /home/opc/db-switchover-iad-phx.sh.
    9. 사용자 권한으로 실행opc을 입력합니다.
    10. 단계 추가를 누릅니다.

      계획-사용자 정의-so-phx-grp-db-역할-변경-step.png
      그림 4.8: DB 역할 변경 단계를 추가하는 매개변수

    11. 추가된 단계를 확인합니다.

      계획-사용자 정의-so-phx-grp-db-role-변경-added.png
      그림 4.9: DB 역할 변경을 위해 추가됨

    12. 추가를 누릅니다.

      계획-사용자 정의-so-phx-grp-db-role-change-add
      그림 4.10: DB 역할 변경 그룹 추가

      계획 그룹을 지금 사용할 수 있습니다.

      계획-사용자 정의-so-phx-grp1.png
      그림 4.11: DB 전환 계획 그룹

  4. DR 전환 계획에 사용자 정의 사전 검사 단계를 추가합니다. 사용자 정의 사전 검사는 내장된 사전 검사 단계와 함께 실행됩니다.

    1. 계획 그룹으로 이동하고 Prechecks-Built 앞에 있는 를 누른 다음 사용자 정의 사전 검사 추가를 선택합니다.

      계획-사용자 정의-so-phx-grp-db-role-precheck-change.png
      그림 4.12: DB 전환에 대한 사용자정의 사전 검사 추가

    2. 단순하지만 설명적인 단계 이름을 입력합니다. 이 예에서는 DB Switchover precheck from IAD to PHX를 사용합니다.
    3. 이 단계가 실행될 인스턴스를 포함하는 인스턴스 영역을 선택합니다. 이 예제에서는 스크립트가 Region 2의 jumphost에서 실행되므로 Phoenix를 선택합니다.
    4. 로컬 스크립트 실행을 선택합니다.
    5. 영역의 script-phx 점포인 대상 인스턴스를 선택합니다.
    6. 스크립트 매개변수에 매개변수와 함께 스크립트의 전체 경로를 입력합니다. 예: /home/opc/db-prechk-switchover-iad-phx.sh.
    7. 사용자 권한으로 실행opc을 입력합니다.
    8. 단계 추가를 누릅니다.

      계획-사용자 정의-so-phx-grp-db-precheck-role-change-step.png
      그림 4.13: DB 롤 변경에 대한 사용자정의 사전 검사 단계를 추가하는 매개변수

    9. 추가된 단계를 확인합니다.

      계획-사용자 정의-so-phx-grp-db-role-precheck-변경-added.png
      그림 4.14: DB 역할 변경에 대한 사용자정의 사전 검사 단계가 추가됨

      전환 계획 사용자정의가 성공적으로 완료되었습니다.

      계획-사용자 정의-so-phx-complete.png
      그림 4.15: 최종 전환 계획

  5. 마찬가지로 페일오버, start drill 계획을 사용자 정의하고, 필요 조건(DB 처리기 스크립트 사용 및 사용자 정의)에서 사용 가능한 표 형식 세부정보를 사용하여 올바른 대상 인스턴스, 스크립트를 사용합니다.

  6. 사용자 정의 계획 그룹 및 사용자정의 사전 검사 단계가 추가되면 이동드릴 시작 계획이 아래와 같이 표시됩니다.

    계획-사용자 정의-fo-phx-complete.png
    그림 4.16: 최종 페일오버 계획

    계획-사용자 정의-startdrill-phx-complete.png
    그림 4.17: 최종 Startdrill 계획

작업 5: 영역 2에서 DR 계획에 대한 사전 검사 실행

스위치오버, 페일오버, Startdrill DR 계획이 대기 영역 2에 성공적으로 생성되었습니다. 이러한 계획을 통해 OCI Full Stack DR은 워크로드를 리전 1에서 리전 2로 전환하거나 DR 드릴을 수행할 수 있습니다. 후속 작업에는 DR 계획에 대한 사전 검사를 실행하여 준비 상태를 확인하고 전환 프로세스를 검증하는 작업이 포함됩니다.

작업 5.1: 전환 계획에 대한 사전 검사 시작

DR 전환 계획에 대한 사전 검사를 실행합니다.

  1. 영역 컨텍스트가 standby Region 2로 설정되었는지 확인합니다.
  2. 영역 2에서 올바른 DR 보호 그룹이 선택되었는지 확인합니다. 대기 롤이어야 합니다.
  3. 작업 드롭다운 메뉴를 누릅니다.
  4. 사전 검사 실행을 누릅니다.
  5. IAD에서 PHX로 DB 스위치오버 계획을 선택합니다.
  6. 자동 생성되지 않을 경우 계획 실행 이름을 입력합니다.
  7. 사전 검사 실행을 누릅니다.

    사전 검사-so-phx-begin.png
    그림 5.1: 전환 계획의 사전 검사를 실행하는 방법 표시

  8. 계획 실행 탭에서 성공 상태를 확인합니다.

    사전 검사-so-phx-complete.png
    그림 5.2: 전환 계획의 완료된 사전 검사 표시

작업 5.2: 복구 계획에 대한 사전 검사 시작

페일오버 DR 계획에 대한 사전 검사를 실행합니다.

  1. 영역 컨텍스트가 standby Region 2로 설정되었는지 확인합니다.
  2. 영역 2에서 올바른 DR 보호 그룹이 선택되었는지 확인합니다. 대기 롤이어야 합니다.
  3. 작업 드롭다운 메뉴를 누릅니다.
  4. 사전 검사 실행을 누릅니다.
  5. IAD에서 PHX로 DB 페일오버 계획을 선택합니다.
  6. 자동 생성되지 않을 경우 계획 실행 이름을 입력합니다.
  7. 사전 검사 실행을 누릅니다.

    prechecks-fo-phx-begin.png
    그림 5.3: 페일오버 계획의 사전 검사를 실행하는 방법 표시

  8. 계획 실행 탭에서 성공 상태를 확인합니다.

    prechecks-fo-phx-complete.png
    그림 5.4: 페일오버 계획의 완료된 사전 검사 표시

작업 5.3: 드릴 계획 시작에 대한 사전 검사 시작

Startdrill DR 계획에 대한 사전 검사를 실행합니다.

  1. 영역 컨텍스트가 standby Region 2로 설정되었는지 확인합니다.
  2. 영역 2에서 올바른 DR 보호 그룹이 선택되었는지 확인합니다. 대기 롤이어야 합니다.
  3. 작업 드롭다운 메뉴를 누릅니다.
  4. 사전 검사 실행을 누릅니다.
  5. PHX에서 드릴 시작 계획을 선택합니다.
  6. 자동 생성되지 않을 경우 계획 실행 이름을 입력합니다.
  7. 사전 검사 실행을 누릅니다.

    prechecks-stadr-phx-begin.png
    그림 5.5: 시작 드릴 계획의 사전 검사를 실행하는 방법 표시

  8. 계획 실행 탭에서 성공 상태를 확인합니다.

    사전 검사-stardr-phx-complete.png
    그림 5.6: 페일오버 계획의 완료된 사전 검사 표시

작업 6: 영역 2에서 Switchover Plan 실행

스위치오버 DR 계획을 실행하여 지역 1(기본)에서 지역 2(대기)로 Oracle 데이터베이스 롤 전환을 시작합니다.

  1. 영역 컨텍스트가 standby Region 2로 설정되었는지 확인합니다.
  2. 영역 2에서 올바른 DR 보호 그룹이 선택되었는지 확인합니다. 대기 롤이어야 합니다.
  3. 작업 드롭다운 메뉴를 누릅니다.
  4. 계획 실행을 누릅니다.

    실행-so-phx-begin.png
    그림 6.1: 전환 계획 실행 방법 표시

  5. IAD에서 PHX로 DB 스위치오버 계획을 선택합니다.
  6. 이 작업은 Region 2에서 switchover 계획을 실행합니다.
  7. 사전 검사가 작업 5에서 이미 실행되었으므로 사전 검사 사용을 선택 해제합니다. 다시 실행하려면 사용으로 설정할 수 있습니다.
  8. 자동 생성되지 않을 경우 계획 실행 이름을 입력합니다.
  9. 계획 실행을 누릅니다.

    실행-so-phx-begin.png
    그림 6.2: 전환 계획 실행 방법 표시

  10. 계획 실행 탭으로 이동하고 전환 계획 실행을 선택합니다.

    exec-so-phx-in-progress.png
    그림 6.3: 진행 중인 전환 계획 표시

  11. 전체 작업 로드가 Region 1에서 Region 2로 완전히 전환될 때까지 switchover 계획을 모니터합니다. switchover 계획 실행이 약 8분 후에 성공적으로 완료되었습니다.

    실행-so-phx-complete.png
    그림 6.4: 완료된 전환 계획 실행 표시

  12. 작업 1.8에 제공된 세부 정보를 사용하여 데이터베이스 롤 상태를 확인할 수 있습니다.

    iad-db-dataguard-status-afterso.png
    그림 6.5: 전환 후 Data Guard 상태

    예상 출력:

    • adghol_site1기본 데이터베이스로 표시되어야 합니다.
    • adghol_site0물리적 대기 데이터베이스로 표시되어야 합니다.
    • Configuration Status성공으로 표시되어야 합니다.
  13. DR 보호 그룹의 롤이 교체되고, 영역 2는 기본으로 표시되고, 영역 1은 대기로 표시됩니다.

    drpg-roles-so-phx 후
    그림 6.6: 스위치오버 후 DR 보호 역할 변경

작업 7: 영역 1에서 DR 계획 생성 및 사용자 정의

지역 1에서 지역 2로의 전환 DR 계획이 성공적으로 실행되면서 지역 2는 이제 기본 역할로 간주되고 지역 1은 대기 역할로 전환되었습니다.

작업 4에 설명된 것과 동일한 접근 방법에 따라 이제 대기 피어 영역으로 사용되는 영역 1에 대한 DR 보호 그룹 내에서 전환, 페일오버 및 DR 드릴 계획을 만들고 사용자 정의합니다.

이러한 계획이 생성되고 사용자 정의 계획 그룹사용자 정의 사전 검사 단계로 업데이트되면 다음 이미지처럼 표시됩니다.

계획-생성-iad.png
그림 7.1: 영역 1에서 DR 계획 생성

계획-so-사용자 정의-iad.png
그림 7.2: 영역 1의 전환 계획

계획-정보-사용자 정의-iad.png
그림 7.3: 영역 1의 페일오버 계획

plan-sd-사용자 정의-iad.png
그림 7.4: 영역 1에서 드릴 계획 시작

필요한 경우 switchover plan을 실행하여 Region 1의 데이터베이스를 다시 primary role로 승격할 수 있고, Region 2의 데이터베이스는 standby가 됩니다.

마찬가지로, start drill 계획을 실행하여 재해 복구 이벤트를 시뮬레이트한 다음 stop drill 계획을 생성 및 실행하여 시스템을 원래 상태로 되돌릴 수 있습니다.

다음 단계

자세한 내용은 관련 링크 섹션의 OCI 전체 스택 DR, Oracle Base Database Service, Oracle Data Guard 설명서를 참조하십시오.

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.