계획되지 않은 페일오버

Failover는 primary database가 손실되었다고 가정하는 계획되지 않은 이벤트입니다. 대기 데이터베이스는 기본 데이터베이스에서 사용 가능한 모든 redo 데이터가 적용된 후 즉시 기본 데이터베이스로 변환됩니다.

계획되지 않은 페일오버에서 복구

Failover는 primary database가 손실되었다고 가정하는 계획되지 않은 이벤트입니다. 대기 데이터베이스는 사용 가능한 모든 기본 redo 로그가 적용된 후 즉시 기본 데이터베이스로 변환됩니다. 플래시백 및 Oracle Data Guard Broker를 사용하여 원래의 기본 데이터베이스를 물리적 대기 데이터베이스로 복원할 수 있습니다.

복구 후에는 원래의 기본 데이터베이스를 물리적 대기 데이터베이스로 복원해야 합니다. 플래시백 데이터베이스와 Oracle Data Guard Broker가 사용으로 설정된 경우 원래의 기본 데이터베이스 복원이 더 쉬워집니다.
이 예제의 3단계는 기본 온-프레미스 데이터베이스를 종료하여 계획되지 않은 운용중단을 방지합니다. 이 예제는 Oracle Data Guard Broker를 사용하여 기본 데이터베이스를 복원합니다.
  • 온-프레미스 데이터베이스: db1
  • 클라우드의 물리적 대기 데이터베이스 인스턴스: db1_phx3g7
  1. 기본 온-프레미스 Oracle Exadata Database Machine에서 sysdba로 로그인합니다.
  2. 온-프레미스 데이터베이스에 대한 구성을 표시합니다.
    DGMGRL> show configuration;
    출력은 다음과 유사해야 합니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
        db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 36 seconds ago)
  3. 기본 온-프레미스 데이터베이스 인스턴스에 접속하고 종료를 수행하여 계획되지 않은 운용중단을 방지합니다.
    bash-4.2$ sqlplus / as sysdba
    SQL> shutdown abort;
    출력은 다음과 유사해야 합니다:
    ORACLE instance shut down.
  4. Oracle Database Exadata Cloud Service에서 데이터베이스 인스턴스에 대한 구성을 표시합니다.
    DGMGRL> show configuration;
    출력은 다음과 유사해야 합니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Error: ORA-12514: TNS:listener does not currently know of service requested in 
    connect descriptor
        db1_phx3g7 - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 0 seconds ago)
  5. Oracle Database Exadata Cloud Service 인스턴스로 복구를 시작합니다.
    DGMGRL> > failover to db1_phx3g7;
    출력은 다음과 유사해야 합니다:
    Performing failover NOW, please wait...
    Failover succeeded, new primary is "db1_phx3g7"
  6. Oracle Database Exadata Cloud Service의 데이터베이스 인스턴스에 대한 구성을 표시합니다.
    DGMGRL> show configuration;
    출력은 다음과 유사해야 합니다:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1        - Physical standby database (disabled)
          ORA-16661: the standby database needs to be reinstated
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 28 seconds ago)
  7. 이제 대기 상태인 온-프레미스 db1(Oracle Exadata Database Machine) 에서 한 노드에서 인스턴스를 시작합니다.
    $srvctl start instance -db db1 -instance db11
  8. 비활성화된 기본 데이터베이스를 대기 데이터베이스로 설정하려면 reinstate database 명령을 사용합니다.
    reinstate는 이전 비활성화된 기본 데이터베이스를 대기 데이터베이스로 만들어 새 기본 데이터베이스(활성화된 대기 데이터베이스) 에서 redo 데이터를 수신할 수 있도록 합니다.
    DGMGRL> reinstate database db1;
    출력은 다음과 유사해야 합니다:
    Reinstating database
            "db1", please wait...Reinstatement of database "db1" succeeded
  9. 온-프레미스 데이터베이스 인스턴스에 대한 구성을 표시합니다.
    DGMGRL> show configuration;
    출력은 다음과 유사해야 합니다:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 14 seconds ago)
  10. 필요한 경우 온-프레미스 Oracle Exadata Database Machine로 전환합니다.