HAProxy를 사용하여 미러링된 SQL Server에 대한 내결함성 제공

HAProxy를 사용하여 미러링된 SQL Server에 대한 내결함성 제공

우리는 곧 출시될 웹 제품을 위한 프로덕션 환경을 구축하는 중입니다. 이 스택의 경우 기본 SQL Server 2008은 라이브 데이터베이스 작업에 사용되고 보조 SQL Server 2008은 SQL Server의 내장 기능을 통해 기본 SQL Server에서 데이터를 미러링합니다.미러링능력). 기본 SQL Server를 사용할 수 없게 되면 상시 대기 상태를 유지하면서 보조 SQL Server에 대해 보고서 서비스를 실행하게 됩니다.

애플리케이션 수준에는 두 가지 옵션이 있습니다.

  1. 앱 계층에 오류 감지가 구현되어 기본 SQL Server가 응답하지 않으면 DAL이 보조 SQL Server에 도달하도록 합니다. 또는
  2. 앱 계층이 VIP를 가리키도록 하고 HAProxy가 오류 감지를 처리하도록 합니다.

문제는 옵션 #2가 실행 가능한 옵션입니까?

참고: 우리는 데이터베이스 수준에서 고가용성을 제공하는 다른 방법(예: 클러스터링)이 있다는 것을 알고 있지만 비용 효율적인 솔루션을 목표로 하고 있습니다.

답변1

'데이터 미러링'이란 무엇을 의미합니까?

데이터베이스 미러링을 사용할 수 있습니다. 이 경우 클라이언트(예: DAL)는 연결 문자열에서 FailoverPartner를 사용하고 장애 조치 이벤트를 따라 새 주 구성원에 연결할 수 있습니다. 미러를 사용할 수 없으므로 보고는 데이터베이스 자체가 아닌 데이터베이스 스냅샷에서 실행됩니다.

장애 조치 클러스터가 있을 수 있으며 클라이언트는 시작할 클러스터 리소스 이름에 연결하고 시작할 활성 노드 호스트 이름을 인식하지 못하지만 대기 파트너의 데이터에 대한 액세스를 제공하지 않습니다.

하드웨어 미러링을 사용할 수 있지만 이는 별도의 주제입니다.

어떤 사람들은 복제가 선택 사항이라고 말하지만 저는 그런 입장에 있지 않습니다.

그리고... 거의 그게 다입니다. 그것이 의미하는 바가 무엇이든, 자체적인 사내 데이터 미러링 기술을 개발하는 것이 부족합니다.

업데이트됨

데이터베이스 미러링을 사용하는 경우 연결 문자열에 장애 조치 파트너를 지정하기만 하면 됩니다.미러링된 데이터베이스에 클라이언트 연결. 애플리케이션은 장애 조치 이벤트 발생 시 트랜잭션 일관성을 처리해야 합니다. 장애 조치 이벤트로 인해 클라이언트 연결이 갑자기 끊어지고 클라이언트 코드에서 예외가 발생합니다. 보류 중인 모든 거래가 중단됩니다. 클라이언트 코드는 다시 연결하고 지속된 상태를 읽고 데이터베이스에 있는 상태에서 작업을 재개해야 합니다. 올바르게 작성된 애플리케이션은 이를 문제 없이 원활하게 처리합니다.

미러는 항상 오프라인 상태이므로 액세스할 수 없습니다. 미러에서 보고서를 실행하려면 데이터베이스 스냅샷을 만들고 스냅샷에 대한 보고서를 실행해야 합니다. 스냅샷은 주기적으로 새로 고쳐야 합니다(삭제 및 재생성). 보다데이터베이스 미러링 및 데이터베이스 스냅샷.

네트워크 계층 부하 분산 장치는 미러링과 관련이 없으며 아무것도 해결하지 않습니다.

답변2

어때?위의 내용은 없나요?

미러링된 SQL Server의 의미를 명확히 하십시오. 일종의 SAN을 사용하여 미러링을 수행하고 있습니까, 아니면 SQL Server에 내장된 미러링 기능을 사용하고 있습니까?
웹 계층에서 HAProxy를 어떻게 사용할 수 있는지 알 수 있는데, SQL Server에서 이 작업을 수행하는 이유는 무엇입니까? 클러스터링, 미러링 및 복제와 같이 SQL Server에는 훨씬 더 많이 지원되는 HA 옵션이 있습니다. 먼저 그것들을 조사하겠습니다.

관련 정보