재해 복구를 위한 대기 데이터베이스 구성에 대해 알아보기

Oracle Data Guard는 Oracle Database에 상주하는 엔터프라이즈 데이터에 대한 고가용성, 데이터 보호 및 재해 복구를 보장합니다. Oracle Data Guard는 하나 이상의 대기 데이터베이스를 생성, 유지, 관리 및 모니터링하여 운용 Oracle 데이터베이스에서 재해 및 데이터 손상이 발생하지 않도록 하는 포괄적인 서비스 집합을 제공합니다.

Oracle Data Guard는 이러한 대기 데이터베이스를 운용 데이터베이스의 복사본으로 유지 관리합니다. 계획된 운용중단 또는 계획되지 않은 운용중단으로 인해 운용 중인 데이터베이스를 사용할 수 없게 되면 Oracle Data Guard가 대기 데이터베이스를 운용 롤로 전환하여 운용중단과 연관된 작동 중지 시간을 최소화할 수 있습니다.

구조

이 구조는 리두 데이터를 대기 데이터베이스로 전송하는 기본 데이터베이스가 포함된 Oracle Data Guard 구성을 보여줍니다. 대기 데이터베이스는 재해 복구 및 백업 작업을 위해 기본 데이터베이스에서 원격으로 배치됩니다.

다음은 dataguard-dr-db.png에 대한 설명입니다.
그림 dataguard-dr-db.png에 대한 설명

dataguard-dr_db-oracle.zip

Oracle Data Guard는 리두 전송 서비스 및 적용 서비스를 사용하여 리두 데이터 전송, 리두 데이터 적용 및 데이터베이스 롤 변경을 관리합니다.

이 구조는 다음 Oracle Data Guard 구성 요소를 지원합니다.

  • 리두 전송 서비스

    리두 전송 서비스는 운용 중인 데이터베이스에서 하나 이상의 아카이브 대상으로 리두 데이터를 자동으로 전송하는 작업을 제어합니다.

    리두 전송 서비스는 다음 작업을 수행합니다.

    • 기본 시스템에서 구성의 대기 시스템으로 리두 데이터를 전송합니다.
    • 네트워크 장애로 인해 아카이브된 리두 로그 파일의 간격을 해결하는 프로세스를 관리합니다.
    • standby 시스템에서 누락되었거나 손상된 아카이브된 리두 로그 파일을 자동으로 감지하고 primary database 또는 다른 standby database에서 대체 아카이브된 리두 로그 파일을 자동으로 검색합니다.
  • 서비스 적용

    적용 서비스는{\f2732 standby database}에 리두 데이터를 자동으로 적용하여{\f2732 primary database}와의 일관성을 유지 관리합니다{\f2732 .}

    리두 데이터는 primary database에서 전송되고 standby database의 standby 리두 로그에 기록됩니다. 리두 데이터는 실시간 적용을 통해 채워지므로 standby 리두 로그 파일에서 직접 적용됩니다. 또한 적용 서비스는 데이터에 대한 읽기 전용 액세스를 허용합니다.

  • 역할 전환
    Oracle Data Guard를 사용하면 전환 또는 복구 작업을 통해 데이터베이스 롤을 대기 데이터베이스에서 기본 데이터베이스로 변경하거나 기본 데이터베이스에서 대기 데이터베이스로 변경할 수 있습니다. Oracle Data Guard는 역할 전환을 간소화하고 페일오버를 자동화합니다.
    • switchover는 primary database와 해당 standby database 중 하나 간의 롤 전환입니다. switchover는 데이터 손실을 방지합니다. 일반적으로 기본 시스템의 계획된 유지 관리를 위해 수행됩니다. switchover 동안 primary database는 standby 롤로 전환되고 standby database는 primary 롤로 전환됩니다.
    • failover는 primary database를 사용할 수 없는 경우입니다. 페일오버는 기본 데이터베이스가 실패하는 경우에만 수행되며, 페일오버로 인해 대기 데이터베이스가 기본 역할로 전환됩니다. 데이터베이스 관리자는 데이터 손실이 없도록 Oracle Data Guard를 구성할 수 있습니다.

몇 가지 수동 단계는 다음을 포함하여 Oracle Data Guard를 구성하는 데 관련되어 있습니다.

  • 권장 파라미터를 사용하여 primary database 준비
  • 기본 및 대기 환경에서 TNS 별칭 준비
  • 물리적 standby database를 primary database의 복제(duplication)로 생성합니다.
  • Data Guard 구성

이러한 수동 단계는 여러 Oracle 문서에 널리 설명되어 있습니다. 이 플레이북은 이 작업의 대부분을 자동화하는 데 사용할 수 있는 스크립트 세트를 제공합니다. 이러한 스크립트는 기존 기본 데이터베이스에 대해 대기 데이터베이스를 설정하여 Oracle Data Guard를 구성하는 데 유용합니다. 이 스크립트는 restore from service Oracle Recovery Manager(RMAN) 기능과 Oracle Data Guard Broker를 사용합니다.

시작하기 전에

이 문서에 제공된 스크립트를 사용하여 Oracle Data Guard를 구성하기 전에 다음 가정과 요구 사항을 검토하십시오.

  • 기본 데이터베이스가 이미 존재합니다.

  • 기존 데이터베이스가 있거나 없는 대기 노드가 존재합니다.

    주:

    standby 위치에 데이터베이스가 이미 있는 경우 스크립트는 standby를 재생성하기 전에 이를 삭제합니다.
  • 데이터베이스의 리스너 포트를 사용하면 Primary와 Standby 간에 상호 연결됩니다.

    • 단일 인스턴스 데이터베이스의 경우 기본 DB 호스트와 대기 데이터베이스 리스너의 IP 및 포트 간에 양방향 연결이 있어야 합니다.
    • Oracle RAC(Oracle Real Application Clusters) 데이터베이스의 경우 기본 DB 호스트와 대기 데이터베이스의 스캔 및 VIP IP와 포트 간에 양방향 접속이 있어야 합니다.

    스크립트는 연결 검사를 수행하지만 nc -vw 5 -z IP PORT 명령을 사용하여 원격 연결을 확인할 수 있습니다.

  • Oracle ASM(Oracle Automatic Storage Management)은 데이터 파일, 제어 파일, 온라인 리두 로그 및 아카이브 리두 로그에 사용됩니다.

    • 단일 인스턴스 데이터베이스의 경우 비밀번호 파일과 spfile는 일반 파일 시스템 또는 Oracle ASM에 배치할 수 있습니다.
    • Oracle RAC 데이터베이스의 경우 암호 파일 및 spfileOracle ASM에 있어야 합니다.
  • 기본 및 대기 데이터베이스는 Oracle Clusterware를 통해 관리됩니다. 단일 및 Oracle RAC 토폴로지는 srvctl를 사용하므로 Oracle Grid Infrastructure를 설치해야 합니다.
  • Oracle 관리 파일이 사용되므로 데이터베이스 매개변수 db_create_file_dest, db_create_online_log_dest_1db_recovery_file_dest가 적합한 Oracle ASM 디스크 그룹 위치(예: +DATA 또는 +RECO)로 기본 데이터베이스에 이미 정의되어 있어야 합니다.
  • RDBMS(관계형 데이터베이스 관리 시스템) 소프트웨어 소유자(예: oracle 사용자)는 프로파일에 필요한 Oracle 환경 변수(ORACLE_HOME, LD_LIBRARY_PATH, PATH, ORACLE_UNQNAMEORACLE_SID)를 설정합니다.
  • 대칭 토폴로지가 사용된다고 가정합니다. 즉, 기본 DB가 단일 DB인 경우 대기 DB가 단일 DB이고, 기본 데이터베이스가 Oracle RAC 데이터베이스인 경우 대기 데이터베이스도 Oracle RAC 데이터베이스입니다.
  • 데이터베이스가 Oracle RAC인 경우 각 Oracle RAC에 2개의 노드가 있다고 가정합니다.
  • 이 스크립트는 아직 standby database가 없는 primary database에 대해 standby database를 구성하는 데 적합합니다.
  • 또한 스크립트는 기존 Oracle Data Guard에 새 추가 대기 데이터베이스를 추가하는 데 적합합니다. 이 시나리오의 경우 속성 파일에서 ADDITIONAL_STANDBY=YES 속성을 사용해야 합니다. 이 경우 기존 Data Guard Broker 구성에 새 standby가 추가됩니다.

스크립트 기능 정보

다음은 스크립트의 기능입니다.

  • 스크립트는 Idempotent이므로 오류 발생 시 재실행할 수 있습니다.
  • 운영 체제 사용자 이름(예: oraclegrid) 및 폴더(Database homeGrid home)를 구성할 수 있습니다.
  • Oracle 및 Grid OS 유저는 동일한 유저 또는 다른 유저일 수 있습니다.
  • 데이터베이스 파일에 대한 TDE(Transparent Data Encryption)는 선택 사항입니다. 스크립트는 두 경우 모두 유효합니다(TDETDE 없음).

    주:

    대칭 구성이 수행됩니다. 기본 데이터베이스가 TDE를 사용하는 경우 대기 데이터베이스가 TDE로 구성됩니다. 기본 데이터베이스가 TDE를 사용하지 않으면 대기 데이터베이스가 TDE를 사용하지 않습니다.
  • Read Only Oracle Home(ROOH)이 지원됩니다. 스크립트는 ROOH 및 "기존" Oracle 홈을 사용하는 환경에서 자동으로 작동하도록 준비됩니다.
  • 스크립트는 Oracle RAC 및 단일 인스턴스 환경(대칭 토폴로지)에 적합합니다.
  • 스크립트는 12c(12.2), 18c, 19c 및 21c RDBMS 버전에서 검증됩니다.
  • 스크립트는 Oracle Cloud Infrastructure(DB 시스템) 및 온-프레미스 환경에서 검증됩니다.
  • 스크립트가 검증되어 하이브리드 Oracle Data Guard를 구성했습니다. 여기서 기본 데이터베이스는 온프레미스에 있고 대기 데이터베이스는 Oracle Cloud Infrastructure의 DB 시스템입니다.

스크립트 파일 정보

다음은 이 솔루션에 사용된 스크립트 파일에 대한 설명입니다.

  • 1_prepare_primary_maa_parameters.sh

    기본 데이터베이스에 접속하고 Oracle Data Guard에 대해 권장되는 MAA(Oracle Maximum Availability Architecture) 매개변수로 구성합니다. 대기 리두 로그 파일을 생성하고 DB_BLOCK_CHECKSUM, DB_FLASHBACK_RETENTION_TARGET 등의 값을 설정합니다. 이 스크립트는 기본 데이터베이스가 Oracle Real Application Clusters(Oracle RAC) 또는 단일 인스턴스 데이터베이스인지 여부에 관계없이 한 번만 실행됩니다.

  • 2_dataguardit_primary.sh

    Oracle Data Guard에 대한 기본 호스트를 준비합니다. 필요한 TNS 별칭을 tnsnames.ora 파일에 추가하고, 원격 대기와 연결을 확인하고, 아직 설정되지 않은 경우 네트 암호화를 구성하고, 기본 암호 파일과 Transparent Data Encryption (TDE) 전자 지갑(사용된 경우)을 포함하는 출력 tar 파일을 생성합니다.

  • create_pw_tar_from_asm_root.sh

    이 스크립트가 항상 필요한 것은 아닙니다. 기본 암호 파일이 Oracle ASM(Oracle Automatic Storage Management)에 저장된 경우에만 필요합니다. Password file을 사용하여 출력 tar 파일을 생성합니다.

  • 3_dataguardit_standby_root.sh

    새 대기 호스트를 준비하고 restore from service Oracle Recovery Manager(RMAN) 기능 및 Oracle Data Guard 중계자를 사용하여 대기 데이터베이스를 생성합니다. 이러한 호스트에 기존 데이터베이스가 있는 경우(작업 중인 데이터베이스 또는 이전 스크립트 실행 실패 시도의 결과) 스크립트는 새 데이터베이스를 대기 데이터베이스로 다시 만들기 전에 해당 데이터베이스를 삭제합니다.

  • DG_properties.ini

    환경의 특정 값으로 사용자정의해야 하는 속성 파일입니다. 기본 및 대기 스크립트 모두에서 사용됩니다.

필수 제품 및 역할 정보

이 솔루션을 사용하려면 기본 및 대기 데이터베이스 시스템에 대해 다음 롤이 필요합니다.

제품 이름: 역할 필요한 작업...
Oracle Database: sys 모든 스크립트를 실행합니다.
Oracle Database 호스트(기본): 실행 권한이 있는 oracle OS 사용자 다음 스크립트 실행:
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Oracle Database 호스트(기본): root 기본 암호 파일이 ASM에 저장될 때 다음 스크립트를 실행합니다. create_pw_tar_from_asm_root.sh
Oracle Database 호스트(보조): root 다음 스크립트를 실행합니다.
  • 3_dataguardit_standby_root.sh

필요한 내용은 Oracle 제품, 솔루션 및 서비스를 참조하십시오.