Data Guard 배포 검사

Data Guard Broker를 설정한 후 재실행이 기본 데이터베이스에서 복사되고 대기 데이터베이스에 적용되었는지 확인해야 합니다. 다음 절차를 사용하여 기본 및 대기 데이터베이스 내에서 데이터 가드 상태를 확인할 수 있습니다.

이 가이드 전체에서 사용되는 예시는 다음과 같습니다.

데이터베이스 고유 이름 서버 호스트 이름 RAC 인스턴스 이름 역할
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 기본
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 대기

Data Guard 배포 검사

  1. 기본 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인한 다음 ORACLE_SID 환경 변수를 설정하여 기본 데이터베이스에 연결할 수 있습니다.

    source oraenv <<< "DBDG_SITE11"
    
  2. SQL*Plus를 시작한 후 보관처리된 재실행 로그의 최신 시퀀스 번호를 확인합니다.

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    

    다음 출력은 스레드 1의 최대 시퀀스 번호 40과 스레드 2의 최대 시퀀스 번호 33입니다.

       THREAD# Last Primary Seq Archived
    ---------- -------------------------
             1                        40
             2                        33
    

    대기 데이터베이스와 비교할 결과를 기록합니다. 대기 데이터베이스의 시퀀스 번호는 기본 데이터베이스와 일치해야 합니다.

  3. 대기 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인한 다음 대기 환경에 연결할 수 있도록 ORACLE_SID 환경 변수를 설정합니다.

    source oraenv <<< "DBDG_SITE21"
    
  4. SQL*Plus를 시작한 후 보관처리된 재실행 로그에 대해 수신되고 적용된 최신 시퀀스 번호가 기본 데이터베이스의 최신 시퀀스 번호와 일치하는지 확인합니다.

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY
    THREAD# ORDER BY 1;
    

    다음 출력에는 대기 데이터베이스에 대해 이전 쿼리 실행과 일치하는 시퀀스 번호가 있습니다.

       THREAD# Last Standby Seq Received
    ---------- -------------------------
             1                        40
             2                        33
    
       THREAD# Last Standby Seq Applied
    ---------- ------------------------
             1                       40
             2                       33
    
  5. 관리형 복구 프로세스의 상태가 APPLYING_LOG인지 확인합니다.

    SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
    

    다음 예시에서는 상태가 APPLYING_LOGMRP0라는 단일 관리형 복구 프로세스를 보여줍니다.

    PROCESS   STATUS
    --------- ------------
    MRP0      APPLYING_LOG
    
  6. 전송을 확인하거나 대기 데이터베이스에 지연을 적용합니다.

    COLUMN NAME FORMAT a20
    COLUMN VALUE FORMAT a30
    SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
    

    다음 출력은 대기 데이터베이스에 지연 시간을 보여줍니다.

    NAME                 VALUE
    -------------------- ------------------------------
    transport lag        +00 00:00:00
    apply lag            +00 00:00:00
    

    지연이 발생하는 경우 Oracle의 Data Guard 문제 해결 문서를 참조하세요.

Data Guard 브로커를 사용하여 데이터베이스 전환

전환은 기본 데이터베이스가 대기 데이터베이스가 되는 역할 역순입니다. 전환 프로세스 중에 데이터베이스 클라이언트가 기본 데이터베이스에서 연결 해제됩니다. 전환이 데이터베이스에 연결하는 방법에 따라, 전환이 애플리케이션 트래픽을 방해할 수 있습니다. Oracle은 역할 전환 중 애플리케이션 연속성 유지 옵션을 제공합니다. 다음 안내에 따라 데이터베이스 전환을 수행하여 재해 복구 준비 상태를 테스트할 수 있습니다.

  1. 기본 데이터베이스를 호스팅하는 베어메탈 솔루션 서버에 로그인합니다.

  2. Data Guard 명령줄 인터페이스를 실행하고 대기 데이터베이스에 연결합니다.

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. 비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.

  4. 데이터베이스가 전환될 준비가 되었는지 확인합니다.

    VALIDATE DATABASE DBDG_SITE2;
    

    성공적인 결과는 데이터베이스가 전환할 준비가 되었음을 보고합니다.

  5. 성공하면 전환 명령어를 수행합니다.

    SWITCHOVER TO DBDG_SITE2;
    

    명령어가 성공하면 DBDG_SITE2가 구성의 새 기본 데이터베이스라는 메시지가 표시됩니다.

  6. 다음 명령어를 실행하여 데이터베이스 역할이 바뀌었는지 확인합니다.

    SHOW CONFIGURATION;
    
  7. 다음 명령어를 실행하여 원래 구성으로 돌아갑니다.

    SWITCHOVER TO DBDG_SITE1;
    

Data Guard 브로커를 사용한 데이터베이스 장애 조치

장애 조치는 전체 데이터베이스 중단으로 인해 대기 데이터베이스 중 하나가 기본 역할로 이동하는 역할 전환입니다. 대기 데이터베이스가 복구될 때까지 Redo는 대기 데이터베이스로 배송되지 않습니다.

장애 조치 수행

  1. 대기 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인합니다.

  2. Data Guard 명령줄 인터페이스에 연결한 다음 기본 인스턴스를 대기 데이터베이스로 장애 조치합니다.

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. 비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.

  4. 다음 명령어를 통해 장애 조치를 시작합니다.

    FAILOVER TO DBDG_SITE2
    

    show configuration;를 실행하여 DBDG_SITE2가 현재 기본 데이터베이스이며 DBDG_SITE1를 복구해야 하는지 확인합니다.

기본 데이터베이스 복원

flashback database가 사용 설정된 경우 장애 조치 후 기본 데이터베이스만 복원할 수 있습니다. 실패한 기본 데이터베이스를 복원하려면 다음 안내를 따르세요.

  1. 기본 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인합니다.

  2. Data Guard 명령줄 인터페이스에 연결하고 기본 데이터베이스에 로그인한 다음 실패한 데이터베이스를 복원합니다.

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    

    비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.

  3. 데이터베이스를 복원합니다.

    REINSTATE DATABASE DBDG_SITE1;
    EXIT;
    

다음 단계

다음으로 Compute Engine에서 데이터 가드 관찰자를 설정합니다.