쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향(데이터베이스 미러링)
적용 대상: SQL Server
데이터베이스 미러링 세션에 대해 미러링 모니터 서버를 설정할 때마다 쿼럼이 필요합니다. 쿼럼은 데이터베이스 미러링 세션의 둘 이상의 서버 인스턴스가 서로 연결된 경우 존재하는 관계입니다. 일반적으로 쿼럼에는 세 개의 상호 연결된 서버 인스턴스가 포함됩니다. 미러링 모니터가 설정되면 데이터베이스를 사용할 수 있도록 쿼럼이 필요합니다. 자동 장애 조치(failover)를 사용하는 보호 우선 모드용으로 설계된 쿼럼은 한 번에 한 파트너만 데이터베이스를 소유하도록 합니다.
특정 서버 인스턴스가 미러링 세션과 연결이 끊어지면 해당 인스턴스는 쿼럼을 잃게 됩니다. 연결된 서버 인스턴스가 없는 경우 세션이 쿼럼을 잃고 데이터베이스를 사용할 수 없게 됩니다. 다음 세 가지 유형의 쿼럼이 가능합니다.
전체 쿼럼에는 파트너와 미러링 모니터가 모두 포함됩니다.
미러링 모니터 서버에서 파트너로의 쿼럼은 미러링 모니터 서버와 하나의 파트너로 구성됩니다.
파트너 간 쿼럼은 두 파트너로 구성됩니다.
다음 그림에서는 이러한 유형의 쿼럼을 보여 줍니다.
현재 주 서버에 쿼럼이 있는 한, 이 서버는 주 서버의 역할을 보유하며 데이터베이스 소유자가 수동 장애 조치(failover)를 수행하지 않는 한 데이터베이스를 계속 제공합니다. 주 서버에서 쿼럼이 손실된 경우 주 서버는 데이터베이스를 제공합니다. 자동 장애 조치(failover)는 주 데이터베이스가 쿼럼을 분실한 경우에만 발생할 수 있으며, 이로 인해 더 이상 데이터베이스를 제공하지 않습니다.
연결이 끊긴 서버 인스턴스는 세션에서 가장 최근의 역할을 저장합니다. 일반적으로 연결이 끊긴 서버 인스턴스는 다시 시작하고 쿼럼을 회복하면 세션에 다시 연결됩니다.
Important
미러링 모니터는 자동 장애 조치(failover)와 함께 보안 우선 모드를 사용하려는 경우에만 설정해야 합니다. 미러링 모니터가 필요하지 않은 고성능 모드에서는 WITNESS 속성을 OFF로 설정하는 것이 크게 권장됩니다. 성능 우선 모드에서 미러링 모니터 서버의 영향에 대한 자세한 내용은 데이터베이스 미러링 운영 모드를 참조하세요.
보안 우선 모드 세션의 쿼럼
보안 우선 모드에서 쿼럼은 쿼럼을 가진 서버가 어느 파트너가 보안 주체 역할을 소유하는지를 중재하는 컨텍스트를 제공하여 자동 장애 조치(failover)를 허용합니다. 쿼럼이 있을 경우 주 서버는 데이터베이스를 제공합니다. 동기화된 미러 서버와 미러링 모니터가 쿼럼을 유지할 때 주 서버에서 쿼럼이 손실되면 자동 장애 조치(failover)가 발생합니다.
보안 우선 모드의 쿼럼 시나리오는 다음과 같습니다.
파트너와 미러링 모니터로 구성된 전체 쿼럼입니다.
일반적으로 세 서버 인스턴스는 모두 전체 쿼럼이라고 하는 3방향 쿼럼에 참여합니다. 전체 쿼럼을 사용하면 주 서버와 미러 서버는 (수동 장애 조치(failover)가 발생하지 않는 한) 해당 역할을 계속 수행합니다.
미러링 모니터 서버에서 파트너로의 쿼럼 - 미러링 모니터 서버와 하나의 파트너로 구성됩니다.
파트너 중 하나가 손실되어 파트너 간의 네트워크 연결이 끊어지면 다음과 같은 경우가 발생할 수 있습니다.
미러 서버가 손실되고 주 서버와 미러링 모니터는 쿼럼을 유지합니다.
이 경우 주 서버는 데이터베이스를 DISCONNECTED로 설정하고 SUSPENDED 미러링 상태로 실행됩니다. (데이터베이스가 현재 미러링되고 있지 않기 때문에 노출된 실행이라고 합니다.) 미러 서버가 세션에 다시 참가하면 서버는 미러 쿼럼을 되찾고 데이터베이스 복사본을 다시 동기화하기 시작합니다.
주 서버가 손실되고 미러링 모니터와 미러 서버는 쿼럼을 유지합니다.
이 경우 자동 장애 조치(failover)가 발생합니다. 자세한 내용은 Database Mirroring Operating Modes을 참조하세요.
모든 서버 인스턴스는 쿼럼을 잃지만 이후에는 미러와 미러링 모니터가 다시 연결됩니다. 이 경우 데이터베이스가 제공되지 않습니다.
매우 드문 경우로서 두 파트너가 미러링 모니터 서버에 계속 연결되어 있는 동안 장애 조치 파트너 사이의 네트워크 연결을 잃을 수 있습니다. 이 이벤트에서는 미러링 모니터를 연락원으로 사용하여 별도의 두 개의 미러링 모니터-파트너 쿼럼이 존재합니다. 미러링 모니터는 주 서버가 여전히 연결되어 있음을 미러 서버에 알립니다. 따라서 자동 장애 조치(failover)는 발생하지 않습니다. 대신 미러 서버는 미러 역할을 계속 수행하고 주 서버에 다시 연결되기를 기다립니다. 이 시점에서 다시 실행 큐에 로그 레코드가 포함된 경우 미러 서버는 계속해서 미러 데이터베이스를 롤포워드합니다. 다시 연결할 때 미러 서버는 미러 데이터베이스를 다시 동기화합니다.
두 파트너를 구성하는 파트너 간 쿼럼입니다.
파트너가 쿼럼을 유지하는 한 데이터베이스는 SYNCHRONIZED 상태를 지속하고 수동 장애 조치가 가능합니다. 미러링 모니터가 없으면 자동 장애 조치(failover)가 불가능합니다. 그러나 미러링 모니터가 쿼럼을 되찾으면 세션이 정기적인 작업을 다시 시작하고 자동 장애 조치(failover)가 다시 지원됩니다.
세션이 쿼럼을 잃습니다.
모든 서버 인스턴스 간의 연결이 끊어지면 세션에 쿼럼이 손실되었다고 합니다. 서버 인스턴스가 서로 다시 연결되면 서로 쿼럼을 다시 얻습니다.
주 서버가 다른 서버 인스턴스 중 하나와 다시 연결되면 데이터베이스를 사용할 수 있게 됩니다.
주 서버의 연결이 끊어진 채로 미러와 미러링 모니터가 서로 다시 연결되면 데이터 손실이 발생할 수 있으므로 자동 장애 조치(failover)가 발생할 수 없습니다. 따라서 주 서버가 세션에 다시 참가할 때까지 데이터베이스를 다시 사용할 수 없습니다.
3개의 서버 인스턴스가 모두 다시 연결되었을 때 전체 쿼럼을 다시 얻으면 세션은 정상적인 작업을 재개합니다.
Important
세션에 파트너-파트너 쿼럼이 있는 경우 두 파트너 중 하나가 쿼럼을 잃으면 세션은 쿼럼을 잃게 됩니다. 따라서 미러링 모니터가 오랜 시간 동안 연결이 끊어질 것으로 예상되는 경우 세션에서 미러링 모니터를 일시적으로 제거하는 것이 좋습니다. 미러링 모니터가 제거되면 쿼럼의 요구 사항이 제거됩니다. 그런 다음 미러 서버의 연결이 끊어지면 주 서버가 데이터베이스를 계속 제공할 수 있습니다. 미러링 모니터를 추가하거나 제거하는 방법에 대한 자세한 내용은 데이터베이스 미러링 모니터를 참조하세요.
쿼럼이 데이터베이스 가용성에 미치는 영향
다음 그림에서는 미러링 모니터와 파트너가 협력하여 특정 시점에 한 파트너만 보안 주체 역할을 소유하고 현재 주 서버만 데이터베이스를 온라인 상태로 만들 수 있도록 하는 방법을 보여 줍니다. 두 시나리오 모두 전체 쿼럼, 주 역할의 Partner_A, 미러 역할의 Partner_B로 시작합니다.
시나리오 1은 원래 주 서버(Partner_A)가 실패한 후 미러링 모니터 및 미러가 보안 주체(Partner_A)를 더 이상 사용할 수 없다는 데 동의하고 쿼럼을 형성하는 방법을 보여 줍니다. 그런 후 미러 Partner_B가 주 역할을 맡습니다. 자동 장애 조치(failover)가 발생하고 Partner_B가 데이터베이스의 복사본을 온라인 상태로 전환합니다. 그런 다음 Partner_B가 중단되고 데이터베이스는 오프라인 상태가 됩니다. 나중에 이전 주 서버인 Partner_A가 쿼럼을 되찾은 미러링 모니터에 다시 연결하지만, 미러링 모니터와 통신할 때 Partner_A는 데이터베이스의 복사본을 온라인 상태로 만들 수 없다는 사실을 인식하게 됩니다. 이제 Partner_B가 이제 보안 주체 역할을 소유하고 있기 때문입니다. Partner_B가 세션에 다시 참가하면 데이터베이스가 다시 온라인 상태가 됩니다.
시나리오 2에서 미러링 모니터는 쿼럼을 잃고 Partner_A 및 Partner_B 파트너가 서로 쿼럼을 유지하고 데이터베이스는 온라인 상태를 유지합니다. 그러면 파트너들도 쿼럼을 잃게 되며 데이터베이스는 오프라인 상태가 됩니다. 나중에 주 서버 Partner_A는 쿼럼을 다시 얻은 미러링 모니터 서버에 다시 연결됩니다. 미러링 모니터는 Partner_A가 여전히 보안 주체 역할을 소유하고 있음을 확인하고 Partner_A는 데이터베이스를 다시 온라인 상태로 만듭니다.
참고 항목
데이터베이스 미러링 운영 모드
데이터베이스 미러링 세션 중 역할 전환(SQL Server)
데이터베이스 미러링 모니터 서버
데이터베이스 미러링 중에 발생 가능한 오류
미러링 상태(SQL Server)