주:

Oracle Cloud Infrastructure Full Stack Disaster Recovery로 PostgreSQL Database에 대한 스위치오버 및 페일오버 자동화

소개

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

OCI Full Stack DR은 매우 유연한 서비스로, DR(재해 복구) 계획의 사용자 정의 계획 그룹을 활용하여 OCI Object Storage 버킷 DR 작업을 처리할 수 있습니다.

배포 아키텍처

객체 스토리지 아키텍처

주: 기본 영역은 프랑크푸르트이고 DR 영역은 런던입니다.

목표

필요 조건

작업 1: PostgreSQL 설치 및 구성

  1. PostgreSQL를 설치하려면 즐겨찾는 SSH 클라이언트를 사용하여 호스트에 연결하고 다음 명령을 실행합니다.

    sudo dnf install -y postgresql postgresql-server postgresql-contrib
    sudo /usr/bin/postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    
  2. Linux 방화벽이 연결을 수신하도록 설정합니다.

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    
  3. postgresql.conf(xxxx에 있음) 파일을 편집하여 연결을 허용하고 다음과 같이 wal 매개변수를 변경합니다.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. 데이터베이스에 연결한 다음 복제 사용자를 만듭니다.

    sudo su postgres
    psql
    
    CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
    
  5. 이 사용자를 pg_hba.conf(xxxx 파일에 있음) 파일에 추가합니다.

    host    all             all             all                    md5
    host    replication     replica_user    <IP Host 1>            md5
    host    replication     replica_user    <IP Host 2>            md5
    
  6. PostgreSQL 데이터베이스를 다시 시작하여 변경 사항을 적용합니다.

    sudo systemctl restart postgresql
    
  7. 두번째 서버에서 이 프로세스를 반복합니다.

작업 2: PostgreSQL 데이터베이스 복제

이 작업에서는 고유 PostgreSQL 데이터베이스 복제를 구성합니다.

  1. 기본 데이터베이스에 연결하고 복제본 슬롯을 만듭니다.

    sudo su postgres
    psql
    
    select pg_create_physical_replication_slot('replica_0');
    
  2. 보조 데이터베이스에 연결하고 다음 명령을 실행하여 복제를 만듭니다.

    sudo systemctl stop postgresql
    sudo rm -rv /var/lib/pgsql/data/
    sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password
    sudo chown postgres -R /var/lib/pgsql/data/
    sudo systemctl start postgresql
    
  3. 기본 데이터베이스에서 복제가 진행 중인지 확인합니다.

    select * from pg_stat_replication;
    

    스트리밍 프로세스에서 한 줄을 볼 수 있어야 합니다.

작업 3: Switchover Plan 생성

작업 3.1: DRPG(재해 복구 보호 그룹) 만들기 및 연결

  1. 기본 영역(프랑크푸르트)에서 햄버거 메뉴를 누르고 마이그레이션 및 재해 복구, 재해 복구, 재해 복구 보호 그룹재해 복구 보호 그룹 생성으로 이동합니다.

    애슈번에서 재해 복구 보호 그룹 생성

  2. 대기 영역(런던)에서 햄버거 메뉴를 누르고 마이그레이션 및 재해 복구, 재해 복구, 재해 복구 보호 그룹재해 복구 보호 그룹 생성으로 이동합니다.

    애슈번에서 재해 복구 보호 그룹 생성

  3. 기본 영역(프랑크푸르트)에서 다음 정보를 입력하고 연관을 누릅니다.

    • 역할: Primary.
    • 피어 영역: UK South (London).
    • 피어 DR 보호 그룹: postgresql-lon.

    기본 및 대기 연관

작업 3.2: 기본 및 대기 DRPG에 멤버 추가

  1. 기본 DRPG(postgresql-fra)에서 멤버를 선택하고 컴퓨트 VM(postgresql01)을 멤버로 추가합니다.

    기본 멤버 추가

    주: 컴퓨트를 멤버로 추가하는 동안 PostgreSQL 데이터베이스에 대한 활성-수동 설정이 있으므로 컴퓨트 인스턴스 유형에서 비이동 인스턴스를 선택합니다.

  2. 대기 DRPG(postgresql-lon)에서 멤버를 선택하고 컴퓨트 VM(postgresql02)을 멤버로 추가합니다.

    대기 멤버 추가

    주: 컴퓨트를 멤버로 추가하는 동안 PostgreSQL 데이터베이스에 대한 활성-수동 설정이 있으므로 컴퓨트 인스턴스 유형에서 비이동 인스턴스를 선택합니다.

작업 3.3: Standby DRPG(런던)에서 Switchover 계획 생성

전환 계획: 기본 DRPG에서 대기 DRPG로 서비스의 계획된 전환을 수행하는 DR 계획의 한 유형입니다.

  1. 대기 DRPG postgresql-lon에서 전환 계획을 생성합니다.

  2. 플랜을 선택하고 플랜 생성을 누릅니다.

  3. 이름postgresql-switchover-frankfurt-london으로 입력하고 계획 유형Switchover (planned)로 선택합니다.

  4. Create를 누릅니다.

전환 계획

주: 대기 DRPG(런던)에서 전환 계획을 생성해야 합니다.

작업 3.4: 다양한 사용자 정의 계획 그룹을 사용하여 전환 계획 사용자 정의

컴퓨트(비이동 인스턴스)를 두 DR 보호 그룹의 멤버로 추가했습니다. 추가적인 사용자 정의 계획 그룹으로 전환 계획을 사용자정의해야 합니다. 또한 다음과 같은 bash 스크립트를 생성하여 OCI Object Storage에 업로드해야 하므로 switchover 중 해당 스크립트를 호출할 수 있습니다.

참고: 이 스크립트는 런던 지역의 버킷에 업로드해야 합니다.

계획 그룹

DR 전환에 대한 일반적인 워크플로우는 다음과 같습니다.

  1. 프랑크푸르트 지역에서 PostgreSQL 데이터베이스 정지: 계획 그룹에는 프랑크푸르트 지역에서 PostgreSQL 데이터베이스를 정지하는 단계가 있습니다.

  2. 런던 지역에서 PostgreSQL 데이터베이스 홍보: 플랜 그룹에는 런던 지역에서 PostgreSQL 데이터베이스를 홍보하는 단계가 있습니다.

  3. PostgreSQL 데이터베이스 복제 방향 변경: 계획 그룹에는 PostgreSQL 데이터베이스 복제 방향(LON-FRA)을 변경하는 단계가 포함됩니다.

주: 단계가 동일한 순서로 실행되는지 확인하십시오.

다음 사용자 정의 계획 그룹을 생성합니다.

  1. 프랑크푸르트 지역에서 PostgreSQL 데이터베이스 정지 계획 그룹을 생성합니다.

    1. 계획 그룹에서 그룹 추가를 눌러 프랑크푸르트 영역에서 PostgreSQL 데이터베이스를 정지할 사용자정의 계획 그룹을 생성합니다. 그룹 이름Stop PostgreSQL Database at Frankfurt Region으로 입력합니다.

      FRA에서 PostgreSQL 데이터베이스 정지

    2. 단계 추가를 누르고 다음 정보를 입력합니다. 계획 그룹에 하나의 단계가 추가됩니다.

      • 영역Frankfurt로 선택하고 대상 인스턴스postgresql01로 선택해야 합니다. 객체 스토리지 스크립트 실행을 선택하면 스크립트의 위치가 OCI Object Storage 버킷 posgres-dr-lon를 선택합니다.

      • 스크립트 위치와 함께 스크립트 stop_postgresql.sh 세부정보를 입력합니다. 이 스크립트는 FRA 영역에서 PostgreSQL 데이터베이스를 종료합니다.

      • 단계 추가를 누르고 추가된 단계를 확인합니다.

      PostgreSQL 데이터베이스 정지 단계

  2. 런던 지역에서 PostgreSQL 데이터베이스 홍보 계획 그룹을 생성합니다.

    1. 계획 그룹에서 그룹 추가를 눌러 런던에서 PostgreSQL 데이터베이스를 승격할 사용자정의 계획 그룹을 생성합니다. 그룹 이름Promote PostgreSQL Database at London Region으로 입력합니다.

      LON에서 PostgreSQL 데이터베이스 승격

    2. 단계 추가를 누르고 다음 세부정보를 입력합니다. 계획 그룹에 하나의 단계가 추가됩니다.

      • 영역London로, 대상 인스턴스postgresql02로 선택해야 합니다. 객체 스토리지 스크립트 실행을 선택하면 스크립트의 위치가 OCI Object Storage 버킷 posgres-dr-lon을 선택합니다.

      • 스크립트 위치와 함께 스크립트 promote_postgresql.sh 세부정보를 입력합니다. 이 스크립트는 FRA 영역에서 PostgreSQL 데이터베이스를 종료합니다.

      • 단계 추가를 누르고 추가된 단계를 확인합니다.

      PostgreSQL 데이터베이스 승격 단계

  3. 변경 PostgreSQL 데이터베이스 복제 방향 계획 그룹을 생성합니다.

    1. 계획 그룹에서 그룹 추가를 눌러 PostgreSQL 데이터베이스 복제 방향을 변경할 사용자정의 계획 그룹을 생성합니다. 그룹 이름Promote PostgreSQL Database at London Region으로 입력합니다.

      PostgreSQL 데이터베이스 복제 변경 directionN

    2. 단계 추가를 누르고 다음 정보를 입력합니다. 계획 그룹에 하나의 단계가 추가됩니다.

      • 영역Frankfurt로 선택하고 대상 인스턴스postgresql01로 선택해야 합니다. 객체 스토리지 스크립트 실행을 선택하고 스크립트 위치는 OCI Object Storage 버킷 posgres-dr-lon을 선택합니다.

      • 스크립트 위치와 함께 스크립트 change_replication_direction.sh 세부정보를 입력합니다. 이 스크립트는 FRA 영역에서 PostgreSQL 데이터베이스를 종료합니다.

      • 단계 추가를 누르고 추가된 단계를 확인합니다.

      PostgreSQL 데이터베이스 복제 방향 변경 단계

플랜 그룹 런던

작업 4: 사전 검사 실행 및 전환 계획 실행

사전 검사 실행 옵션은 DR 계획의 모든 단계 및 해당 단계와 연관된 멤버에 대한 빠른 검증을 수행합니다.

  1. 전환 계획 postgresql-switchover-frankfurt-london에서 사전 검사 실행을 눌러 사전 검사를 실행합니다.

    전환 사전 검사

    성공적으로 완료되었는지 확인합니다.

    전환 사전 검사 상태

  2. 전환 계획 postgresql-switchover-frankfurt-london에서 재해 복구 계획 실행을 눌러 계획을 실행합니다.

    재해 복구 계획 실행

  3. 계획의 상태를 확인하고 계획의 모든 단계가 성공했는지 확인합니다.

    재해 복구 계획 상태 실행

  4. 전환 계획은 모든 계획 그룹을 특정 순서로 수행합니다. 계획 실행이 성공하면 PostgreSQL 데이터베이스가 런던 지역의 마스터로 승격됩니다.

  5. 자동으로 역할이 DRPG에서 변경됩니다. 이제 런던은 기본이 될 것이며 프랑크푸르트는 대기 역할을 할 것입니다.

  6. London에서 PostgreSQL 데이터베이스를 확인합니다.

작업 5: 대기 DRPG(프랑크푸르트)에서 스위치백으로 스위치오버 계획 생성

작업 5.1: 대기 DRPG에서 스위치오버 계획 만들기(런던)

  1. 대기 DRPG postgresql-fran에서 전환 계획을 생성합니다.

  2. 플랜을 선택하고 플랜 생성을 누릅니다.

  3. 이름postgresql-switchover-london-frankfurt으로 입력하고 계획 유형Switchover (planned)로 선택합니다.

  4. Create를 누릅니다.

계획 그룹

주: 대기 DRPG(프랑크푸르트)에서 전환 계획을 생성해야 합니다.

작업 5.2: 다양한 사용자 정의 계획 그룹을 사용하여 전환 계획 사용자 정의

추가적인 사용자 정의 계획 그룹으로 전환 계획을 사용자정의해야 합니다. 또한 다음 Bash 스크립트를 생성하고 OCI Object Storage에 업로드해야 하므로 전환 중 해당 스크립트를 호출할 수 있습니다.

주: 이 스크립트는 프랑크푸르트 지역의 버킷에 업로드해야 합니다.

DR 전환에 대한 일반적인 워크플로우는 다음과 같습니다.

  1. PostgreSQL 데이터베이스 되감기: 데이터베이스를 되감기할 계획 그룹입니다. 프랑크푸르트는 런던 데이터베이스의 콘텐츠를 동기화합니다.

  2. PostgreSQL 데이터베이스 복제를 런던으로 재설정: 계획 그룹에는 프랑크푸르트에서 런던 지역으로 PostgreSQL 데이터베이스 복제를 시작하는 단계가 있습니다.

주: 단계가 동일한 순서로 실행되는지 확인하십시오.

다음 두 개의 사용자 정의 계획 그룹을 작성합니다.

  1. PostgreSQL 데이터베이스 되감기 계획 그룹을 생성합니다.

    1. 계획 그룹에서 그룹 추가를 눌러 사용자 정의 계획 그룹을 생성하여 프랑크푸르트 영역에서 PostgreSQL 데이터베이스를 되감습니다. 그룹 이름Rewind PostgreSQL Databases at Frankfurt Region으로 입력합니다.

      FRA에서 PostgreSQL 데이터베이스 되감기

    2. 단계 추가를 누르고 다음 정보를 입력합니다. 하나의 단계가 계획 그룹에 추가됩니다.

      • 영역Frankfurt로 선택하고 대상 인스턴스postgresql01로 선택해야 합니다. 객체 스토리지 스크립트 실행을 선택하면 스크립트의 위치가 OCI Object Storage 버킷 posgres-dr-lon을 선택합니다.

      • 스크립트 위치와 함께 스크립트 rewind_postgresql.sh 세부정보를 입력합니다. 이 스크립트는 FRA 영역에서 PostgreSQL 데이터베이스를 종료합니다.

      • 단계 추가를 누르고 추가된 단계를 확인합니다.

      PostgreSQL 데이터베이스 되감기 단계

  2. 런던에 대한 PostgreSQL 데이터베이스 복제 재설정 계획 그룹을 생성합니다.

    1. 계획 그룹에서 그룹 추가를 눌러 PostgreSQL 데이터베이스 복제를 런던으로 재설정할 사용자정의 계획 그룹을 생성합니다. 그룹 이름Promote PostgreSQL Database at London Region으로 입력합니다.

      LON에서 PostgreSQL 데이터베이스 복제 재설정

    2. 단계 추가를 누르고 다음 정보를 입력합니다. 계획 그룹에 하나의 단계가 추가됩니다.

      • 영역London로 선택하고 대상 인스턴스postgresql02로 선택해야 합니다. 객체 스토리지 스크립트 실행을 선택하면 스크립트의 위치가 OCI Object Storage 버킷 posgres-dr-lon를 선택합니다.

      • 스크립트 위치와 함께 스크립트 replicate_postgresql.sh 세부정보를 입력합니다. 이 스크립트는 FRA 영역에서 PostgreSQL 데이터베이스를 종료합니다.

      • 단계 추가를 누르고 추가된 단계를 확인합니다.

      PostgreSQL 데이터베이스 복제 단계 재설정

작업 6: 사전 검사 실행 및 전환 계획 실행

사전 검사 실행은 DR 계획의 모든 단계 및 해당 단계와 연관된 멤버에 대한 빠른 검증을 수행합니다.

  1. 전환 계획 postgresql-switchover-london-frankfurt에서 사전 검사 실행을 눌러 사전 검사를 실행합니다.

    전환 사전 검사

    성공적으로 완료되었는지 확인합니다.

    전환 사전 검사 상태

  2. 전환 계획 postgresql-switchover-london-frankfurt에서 재해 복구 계획 실행을 눌러 계획을 실행합니다.

    재해 복구 계획 실행

  3. 계획의 상태를 확인하고 계획의 모든 단계가 성공했는지 확인합니다.

    재해 복구 계획 상태 실행

  4. 전환 계획은 모든 계획 그룹을 특정 순서로 수행합니다. 계획 실행이 성공하면 PostgreSQL 데이터베이스가 프랑크푸르트 지역의 마스터로 승격됩니다.

  5. 자동으로 역할이 DRPG에서 변경됩니다. 이제 프랑크푸르트는 주요 역할을 할 것이며 런던은 대기 역할을 할 것입니다.

  6. Frankfurt에서 PostgreSQL 데이터베이스를 확인합니다.

다음 단계

OCI Full Stack DR을 사용하여 PostgreSQL 데이터베이스 전환을 자동으로 수행하고 재해 복구 작업을 다시 전환하는 방법을 배웠습니다. 자세한 내용은 관련 링크 섹션의 OCI 전체 스택 DR 설명서를 참조하십시오.

확인

추가 학습 자원

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

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