SQL Server 부하 분산 읽기/쓰기 작업 분할

SQL Server 부하 분산 읽기/쓰기 작업 분할

안녕하세요. SQL Server 2014 Standard Edition의 3개 노드가 있습니다. 그 중 하나는 기본 노드이고 다른 하나는 트랜잭션 복제 데이터베이스를 사용하는 기본 복제 노드입니다.

우리는 다른 2개의 노드를 사용하여 작업을 읽고 기본 노드의 로드를 줄이고 싶습니다.

HA 프록시와 같은 로드 밸런서에서 읽기 작업을 쓰기에서 분할하고 노드 2 및 3에 읽기 작업만 보내도록 어떻게 구성할 수 있습니까? 아니면 이를 허용하는 다른 로드 밸런서를 사용해야 합니까?

답변1

HA 프록시와 같은 로드 밸런서에서 읽기 작업을 쓰기에서 분할하고 노드 2 및 3에 읽기 작업만 보내도록 어떻게 구성할 수 있습니까?

별말씀을요. 로드 밸런서는 SQL Server 연결에서 어떤 일이 발생하는지 알 수 없으며 특히 로드가 아닌 읽기 전용, 쓰기 전용 또는 혼합(쓰기)으로 간주될 수 있는 것과 없는 것을 논리적으로 이해할 수 있는 방법이 없습니다. 밸런서는 시간을 기대할 수 없습니다. SQL Server에 연결하고, 트랜잭션을 시작하고, 읽기 작업을 수행한 다음 쓰기를 시작할 수 있습니다. 로드 밸런싱을 결정할 때 쓰기 의도를 어떻게 알 수 있습니까? 시간을 기다리지 않고 이 문제를 처리할 수 있는 논리적인 방법은 없습니다.

이것이 일반적으로 수행되는 방식은 애플리케이션 수준에서 서로 다른 연결을 갖고 애플리케이션이 사용할 연결을 결정하도록 하는 것입니다. 결국, 프로그래머는 읽기 전용 연결을 의도하는지 아니면 나중에 동일한 연결/트랜잭션에 실제로 쓸 수 있는지 알 만큼 똑똑하다고 가정할 수 있습니다.

관련 정보