다음을 통해 공유


수동 장애 조치(Failover)

수동 장애 조치는 데이터베이스에서 클라이언트의 연결을 끊고 파트너의 역할을 반대로 바꿉니다. 이러한 수동 장애 조치는 보호 우선 모드에서만 지원됩니다.

[!참고]

이 항목에서는 사용자가 보호 우선 모드에 대해 잘 알고 있다고 가정합니다. 자세한 내용은 동기 데이터베이스 미러링(보호 우선 모드)을 참조하십시오.

업그레이드 중에 가용성 유지

데이터베이스 관리자는 수동 장애 조치를 사용하여 가용성에 영향을 주지 않고 하드웨어 또는 소프트웨어를 업그레이드할 수 있습니다. 소프트웨어 업그레이드 시 데이터베이스 미러링을 사용하려면 미러 서버 및/또는 시스템에 이미 해당 업그레이드가 있어야 합니다.

[!참고]

데이터베이스 미러링에서 롤링 업그레이드를 수행할 수도 있지만 이 기능은 이후 변경 내용을 알 수 없으므로 보장되지 않습니다. 자세한 내용은 방법: 서버 인스턴스 업그레이드 시 미러된 데이터베이스의 작동 중단 최소화를 참조하십시오.

다음 그림에서는 데이터베이스 서버 인스턴스를 업그레이드하는 동안 데이터베이스 가용성을 유지하기 위해 수동 장애 조치를 사용하는 예를 설명합니다. 업그레이드가 완료되면 관리자는 필요에 따라 원래 서버 인스턴스로 장애 조치를 수행할 수 있습니다. 이는 관리자가 미러링 세션을 중지하고 미러 서버를 다른 곳에서 사용하려는 경우에 유용합니다. 이러한 방법으로 일련의 데이터베이스 서버 인스턴스를 업데이트할 때 단일 서버 인스턴스를 반복적으로 사용할 수 있습니다.

계획된 수동 장애 조치

수동 장애 조치에 필요한 조건

수동 장애 조치를 수행하려면 트랜잭션 보안이 FULL(보호 우선 모드)로 설정되어야 합니다. 파트너가 연결되어 있으며 데이터베이스가 이미 동기화된 경우 수동 장애 조치가 지원됩니다.

수동 장애 조치 작동 방법

수동 장애 조치의 동작 순서는 다음과 같습니다.

  1. 주 서버는 주 데이터베이스에서 클라이언트의 연결을 끊고 비상 로그를 미러 서버로 보낸 다음 미러 역할로 전환하기 위해 미러링 상태를 SYNCHRONIZING으로 설정합니다.

  2. 미러 서버는 주 서버에서 받은 마지막 로그 레코드의 LSN(로그 시퀀스 번호)을 장애 조치 LSN으로 기록합니다.

    [!참고]

    이 LSN을 보려면 sys.database_mirroring(Transact-SQL)에서 mirroring_failover_lsn 열을 선택하십시오.

  3. Redo Queue에서 대기 중인 로그가 있으면 미러 서버가 미러 데이터베이스의 롤포워드를 마칩니다. 소요 시간은 시스템 속도, 최근 작업 및 Redo Queue에 있는 로그 양에 따라 달라집니다. 동기 운영 모드의 경우 Redo Queue의 크기를 제한하여 장애 조치 시간을 조정할 수 있습니다. 그러나 이 경우 미러 서버에서 동기화 상태를 계속 유지해야 하므로 주 서버의 속도가 느려질 수 있습니다.

    [!참고]

    Redo Queue의 현재 크기를 확인하려면 데이터베이스 미러링 성능 개체의 Redo Queue 성능 카운터를 사용합니다. 자세한 내용은 데이터베이스 미러링 모니터링을 참조하십시오.

  4. 미러 서버는 새 주 서버가 되고 이전 주 서버는 새 미러 서버가 됩니다.

  5. 새 주 서버는 커밋되지 않은 모든 트랜잭션을 롤백하고 해당 데이터베이스의 복사본을 주 데이터베이스로 사용할 수 있도록 온라인 상태로 만듭니다.

  6. 이전 주 서버가 미러 역할을 맡아 이전 주 데이터베이스가 미러 데이터베이스가 됩니다. 새 미러 서버는 신속하게 새 미러 데이터베이스를 새 주 데이터베이스와 다시 동기화합니다.

    [!참고]

    새 미러 서버에서 데이터베이스를 다시 동기화하면 장애 조치가 다시 가능해지지만 역방향으로 진행됩니다.

장애 조치 후 클라이언트는 현재의 주 데이터베이스에 다시 연결해야 합니다. 자세한 내용은 미러된 데이터베이스에 클라이언트 연결을 참조하십시오.