Share via


연결된 데이터베이스 서버 이해

대규모 웹 사이트에 필요한 높은 수준의 성능을 얻기 위해 다중 계층 시스템에서는 일반적으로 각 계층에 대한 처리 로드를 여러 서버로 분산합니다. SQL Server에서는 데이터베이스의 데이터를 수평 분할하여 데이터베이스 처리 로드를 서버 그룹으로 공유합니다. 이러한 서버는 별개로 관리되지만, 응용 프로그램의 데이터베이스 요청을 공동으로 처리합니다. 이러한 공동 서버 그룹을 연결된 서버라고 합니다.

연결된 데이터베이스 계층은 응용 프로그램이 각 SQL 문을 이 문에 필요한 대부분의 데이터를 가진 멤버 서버로 전달할 경우만 높은 수준의 성능을 충분하게 얻을 수 있습니다. 이를 SQL 문과 해당 문에 필요한 데이터의 콜러케이션이라고 합니다. 필요한 데이터와 SQL 문의 콜러케이션은 연결된 서버에만 필요한 요구 사항은 아닙니다. 클러스터형 시스템에도 필요합니다.

연결된 서버는 응용 프로그램에 대해 단일 데이터베이스 서버와 같은 동일 이미지로 표시되지만 Database Services 계층이 구현되는 방법에는 다음과 같이 내부적 차이가 있습니다.

단일 서버 계층

연결된 서버 계층

프로덕션 서버에는 하나의 SQL Server 인스턴스가 있습니다.

각 멤버 서버에는 하나의 SQL Server 인스턴스가 있습니다.

프로덕션 데이터는 하나의 데이터베이스에 저장됩니다.

각 멤버 서버에는 멤버 데이터베이스가 있습니다. 데이터는 멤버 데이터베이스를 통해 전파됩니다.

각 테이블은 일반적으로 단일 엔티티입니다.

원본 데이터베이스의 테이블은 멤버 테이블로 수평 분할됩니다. 멤버 데이터베이스마다 하나의 멤버 테이블이 있고 분산형 분할 뷰는 각 멤버 서버에 원본 테이블의 전체 복사본이 있는 것처럼 나타내는 데 사용됩니다.

모든 연결은 단일 서버에 대해 만들어지고 같은 SQL Server 인스턴스가 모든 SQL 문을 처리합니다.

응용 프로그램 계층은 SQL 문이 참조하는 대부분의 데이터가 포함된 멤버 서버에 SQL 문을 콜러케이션할 수 있어야 합니다.