유효하지 않은 장애 조치(Failover) 파트너 이름의 영향
데이터베이스 관리자는 언제라도 장애 조치(Failover) 파트너를 변경할 수 있습니다. 그러므로 클라이언트에서 제공한 장애 조치 파트너 이름이 최신이 아니거나 유효하지 않을 수 있습니다. 예를 들어 Partner_B라는 장애 조치 파트너가 다른 서버 인스턴스인 Partner_C로 바뀌는 경우를 가정합니다. 이제 클라이언트에서 장애 조치 파트너 이름으로 Partner_B를 제공하면 해당 이름은 유효하지 않게 됩니다. 클라이언트가 제공한 장애 조치 파트너 이름이 지난 데이터인 경우 데이터 액세스 공급자의 동작은 클라이언트에서 장애 조치 파트너 이름을 제공하지 않은 경우와 같습니다.
예를 들어 클라이언트가 하나의 연결 문자열을 사용하여 4회 연속으로 연결 시도를 하는 경우를 가정합니다. 연결 문자열에서 초기 파트너 이름은 Partner_A이고 장애 조치 파트너 이름은 Partner_B입니다.
"Server=Partner_A; Failover Partner=Partner_B; Database=AdventureWorks"
다음 표에서는 4가지 파트너 구성을 보여 주고 각 구성에 대해 이 연결 문자열이 클라이언트를 처음 연결하는 데 사용되는지 여부를 나타냅니다.
[!참고]
응용 프로그램에서 구성 변경 내용을 추적하고 연결 문자열을 적절하게 변경할 수 있습니다. 이렇게 하려면 추가 코드가 필요하지만 관리 작업이 줄어듭니다.
구성 |
주 서버 |
미러 서버 |
Partner_A 및 Partner_B를 지정하여 연결을 시도할 때의 동작 |
---|---|---|---|
초기 미러링 구성 단계입니다. |
Partner_A |
Partner_B |
Partner_A가 초기 파트너 이름으로 캐시됩니다. 클라이언트가 Partner_A에 대한 연결에 성공합니다. 클라이언트는 미러 서버 이름인 Partner_B를 다운로드하고 이를 캐시합니다. 이때 클라이언트가 제공한 장애 조치 파트너 이름은 무시합니다. |
Partner_A에 하드웨어 오류가 발생하고 장애 조치가 수행됩니다(클라이언트 연결 끊기). |
Partner_B |
없음 |
Partner_A가 초기 파트너 이름으로 계속 캐시되지만 클라이언트가 제공한 장애 조치 파트너 이름인 Partner_B를 사용하여 클라이언트는 현재 주 서버에 연결할 수 있습니다. |
데이터베이스 관리자는 미러링을 중지(클라이언트 연결 끊기)하고 Partner_A를 Partner_C로 바꾼 다음 미러링을 다시 시작합니다. |
Partner_B |
Partner_C |
클라이언트가 Partner_A에 연결을 시도하지만 실패합니다. 그런 다음 클라이언트가 Partner_B(현재 주 서버)에 연결을 시도하여 성공합니다. 데이터 액세스 공급자는 현재 미러 서버 이름인 Partner_C를 다운로드하고 이를 현재 장애 조치 파트너 이름으로 캐시합니다. |
서비스가 Partner_C로 수동으로 장애 조치가 수행됩니다(클라이언트 연결 끊기). |
Partner_C |
Partner_B |
클라이언트가 처음에는 Partner_A에, 그 다음에는 Partner_B에 연결을 시도합니다. 두 가지 이름이 모두 실패하면 결과적으로 연결 요청 시간이 종료되고 연결 요청에 실패합니다. |