DR 준비 검증

재해 복구 준비를 위한 Best Practice를 검토하고 계획된 이벤트 및 예상치 못한 이벤트에 대한 재해 복구 설정을 확인합니다.

DR 준비 정보

DR(재해 복구) 준비를 위한 Best Practice를 검토합니다.

Active Data Guard를 사용하여 대기 데이터베이스로 읽기 전용 작업 로드를 오프로드하여 대기 데이터베이스가 운용 준비가 되었다는 지속적인 응용 프로그램 레벨 검증을 제공할 수 있습니다. Oracle Data Guard 적용 프로세스에서 수행되는 연속 Oracle 블록 레벨 검증뿐 아니라 보증 레벨도 제공합니다.

스냅샷 standby database를 사용하여 개발 및 테스트용으로 운용 데이터베이스의 정확한 복제본을 생성합니다. Data Guard Snapshot Standby를 사용하여 정기적으로 대기 데이터베이스를 읽기/쓰기 모드로 전환하여 읽기-쓰기 운용 작업 로드를 지원하기 위한 준비 상태를 검증합니다. DR 시스템 크기가 프로덕션 시스템과 유사하므로 패치 및 업그레이드의 최종 기능 및 성능 테스트 레벨에도 스냅샷 대기를 사용할 수 있습니다. 스냅샷 대기 데이터베이스는 나중에 사용하기 위해 아카이브되는 기본 데이터베이스에서 redo를 계속 수신하므로 항상 데이터 보호를 제공합니다. 그러나 RTO(복구 시간) 는 테스트가 진행 중인 동안 복구가 필요한 경우 스냅샷 대기 데이터베이스를 다시 대기 데이터베이스로 변환하는 데 필요한 시간만큼 연장됩니다. 대기 데이터베이스가 스냅샷 모드인 경우 빠른 복구 영역에 대해 추가 저장 영역이 필요합니다(나중에 사용하기 위해 기본 운용 데이터베이스에서 수신된 아카이브된 리두 보유 및 스냅샷 대기 데이터베이스에서 생성된 현재 리두 및 플래시백 로그 보유).

다음은 스냅샷 standby database를 사용할 경우의 몇 가지 이점입니다:

  • 항상 데이터 보호를 유지하면서 개발 및 테스트를 위해 운영 데이터베이스의 정확한 복제본을 제공합니다. Oracle Real Application Testing 옵션을 사용하여 기본 데이터베이스 작업 로드를 캡처한 다음 스냅샷 대기 데이터베이스에서 테스트를 위해 재생할 수 있습니다.
  • 물리적 대기 데이터베이스로 변환하고 재동기화하여 현재 운용 데이터를 포함하도록 쉽게 새로 고칠 수 있습니다.

대기 데이터베이스를 스냅샷 대기 데이터베이스로 변환

운용 데이터베이스의 정확한 복제본을 원할 경우 Oracle Data Guard Broker를 사용하여 물리적 대기 데이터베이스를 스냅샷 대기 데이터베이스로 변환한 후 복구를 검증할 수 있습니다.

스냅샷 대기 데이터베이스는 물리적 대기 데이터베이스에서 생성된 완전히 업데이트 가능한 대기 데이터베이스입니다. 스냅샷 대기 데이터베이스에서는 redo 데이터가 수신되지만 스냅샷 대기 데이터베이스가 다시 물리적 대기 데이터베이스로 변환될 때까지 적용되지 않습니다.

다음은 스냅샷 대기 데이터베이스를 사용할 때의 몇 가지 이점입니다:

  • 스냅샷 대기 데이터베이스는 개발 및 테스트 목적으로 운용 데이터베이스의 정확한 복제본을 제공하지만 항상 데이터 보호를 유지 관리합니다. Oracle Real Application Testing 옵션을 사용하여 기본 데이터베이스 작업 로드를 캡처한 다음 스냅샷 대기 데이터베이스에서 테스트를 위해 재생할 수 있습니다.
  • 물리적 대기 데이터베이스로 변환한 후 재동기화하여 현재 운용 데이터를 포함하도록 스냅샷 대기 데이터베이스를 쉽게 새로 고칠 수 있습니다.

Oracle Data Guard 명령행 인터페이스(DGMGRL) 를 사용하면 명령행 인터페이스에서 직접 Oracle Data Guard Broker 구성 및 다양한 멤버를 관리할 수 있습니다.

  1. sys 사용자 이름과 비밀번호를 사용하여 대기 데이터베이스 인스턴스의 DGMGRL 세션에 로그인합니다.
    [oracle@exa11db01 ~]$ dgmgrl
    DGMRGL> connect
    Username: sys
    Password:
  2. 구성을 확인하여 기본 및 대기 데이터베이스를 확인합니다.
    DGMGRL> show configuration;
    출력은 다음과 비슷합니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
          Error: ORA-16664: unable to receive the result from a member
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 108 seconds ago)
  3. 물리적 standby database를 스냅샷 standby database로 변환합니다.
    이 예에서 standby_database_unique_name는 db1 입니다.
    DGMGRL> convert database standby_database_unique_name to snapshot standby;
    변환이 완료되면 출력에는 다음과 유사한 행이 포함됩니다:
    Converting database "db1" to a Snapshot Standby database, please wait...
    Database "db1" converted successfully
  4. 구성을 보고 변환을 확인합니다.
    DGMGRL> show configuration;
    출력은 다음과 비슷합니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Snapshot standby database 
          Error: ORA-16664: unable to receive the result from a member
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 59 seconds ago)
  5. 스냅샷 standby database를 다시 물리적 standby database로 변환합니다.
    DGMGRL> convert database standby_database_unique_name to physical standby;
    출력은 다음과 비슷합니다:
    Converting database "db1" to a Physical Standby database, please wait...
    Operation requires a connection to database "db1_phx3g7"
    Connecting ...
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    Oracle Clusterware is restarting database "db1" ...
    Connected to "db1"
    Connected to "db1"
    Continuing to convert database "db1" ...
    Database "db1" converted successfully
  6. 구성을 보고 변환을 확인합니다.
    DGMGRL> show configuration;
    출력은 다음과 같이 표시됩니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
          Error: ORA-16664: unable to receive the result from a member
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    ERROR   (status updated 20 seconds ago)
    DGMGRL>

Oracle Data Guard 매개변수 설정

전환을 실행하기 전에 기본 및 대기 데이터베이스 인스턴스에서 Oracle Data Guard 매개변수를 설정하십시오.

  1. 온-프레미스 기본 데이터베이스에서 SCN(시스템 변경 번호) 을 확인합니다.
    select standby_became_primary_scn from v$database;
    출력은 다음과 같이 표시됩니다:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
    0
  2. 기본 데이터베이스에서 플래시백이 사용으로 설정되지 않았는지 확인하십시오.
    select flashback_on from v$database;
    출력은 다음과 같이 표시됩니다:
    FLASHBACK_ON
    ------------------
    NO
  3. 매개변수 복구를 표시합니다.
    SQL> show parameter recovery;
    출력은 다음과 같이 표시됩니다:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest	     string	      +RECOC1
    db_recovery_file_dest_size	big integer	  8256M
    recovery_parallelism             integer             0
    remote_recovery_file_dest        string
  4. 데이터베이스 크기에 맞게 DB_RECOVERY_FILE_DEST_SIZE 매개변수의 크기를 설정합니다.
    다음 예에서는 20G를 샘플 데이터 크기로 사용합니다. 데이터베이스를 기반으로 데이터 크기를 설정합니다.
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
  5. 기본 데이터베이스에서 플래시백을 사용으로 설정합니다.
    SQL> alter database flashback on;
  6. 데이터베이스 플래시백이 사용으로 설정되었는지 확인합니다(설정).
    SQL> select flashback_on from v$database;
    출력은 다음과 비슷합니다:
    FLASHBACK_ON
    ------------------
    YES
  7. 대기 Oracle Database Exadata Cloud Service에서 플래시백이 사용으로 설정되었는지 확인합니다.
    SQL> select flashback_on from v$database;
    출력은 다음과 비슷합니다:
    FLASHBACK_ON
    ------------------
    NO
  8. 클라우드에서 대기 데이터베이스에 대한 열기 모드 상태를 질의합니다.
    SQL> select open_mode from v$database;
    출력은 다음과 비슷합니다:
    OPEN_MODE
    -------------------- 
    MOUNTED
  9. 대기 데이터베이스에 대한 데이터베이스 복구를 취소합니다.
    SQL> alter database recover managed standby database cancel;
  10. 클라우드의 데이터베이스 인스턴스에서 플래시백을 설정합니다.
    SQL> alter database flashback on;
  11. 세션에서 대기 데이터베이스의 접속을 해제합니다.
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  12. 데이터베이스 플래시백이 사용으로 설정되었는지 확인합니다(설정).
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  13. 보존 매개변수를 표시합니다.
    SQL> show parameter_retention;
    출력은 다음과 비슷합니다:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900