AlwaysOn 가용성 그룹에서 보조 역할(즉, 보조 복제본으로 실행되는 경우)에서 실행할 때 읽기 전용 연결을 허용하도록 하나 이상의 가용성 복제본을 구성할 수 있습니다. 주 역할(즉, 주 복제본으로 실행할 때)에서 실행할 때 읽기 전용 연결을 허용하거나 제외하도록 각 가용성 복제본을 구성할 수도 있습니다.
지정된 가용성 그룹의 주 또는 보조 데이터베이스에 대한 클라이언트 액세스를 용이하게 하려면 가용성 그룹 수신기를 정의해야 합니다. 기본적으로 가용성 그룹 수신기는 들어오는 연결을 주 복제본으로 전달합니다. 그러나 가용성 그룹 수신기가 읽기 전용 애플리케이션의 연결 요청을 읽기 가능한 보조 복제본으로 리디렉션할 수 있도록 읽기 전용 라우팅을 지원하도록 가용성 그룹을 구성할 수 있습니다. 자세한 내용은 가용성 그룹에 대한 Read-Only 라우팅 구성(SQL Server)을 참조하세요.
장애 조치(failover) 중에 보조 복제본이 주 역할로 전환되고 이전 주 복제본이 보조 역할로 전환됩니다. 장애 조치(failover) 프로세스 중에 주 복제본과 보조 복제본에 대한 모든 클라이언트 연결이 종료됩니다. 장애 조치(failover) 후 클라이언트가 가용성 그룹 수신기에 다시 연결되면 수신기는 읽기 의도 연결 요청을 제외하고 클라이언트를 새 주 복제본에 다시 연결합니다. 클라이언트 및 새 주 복제본을 호스트하는 서버 인스턴스 및 하나 이상의 읽기 가능한 보조 복제본에서 읽기 전용 라우팅이 구성된 경우 읽기 전용 연결 요청은 클라이언트에 필요한 연결 액세스 유형을 지원하는 보조 복제본으로 다시 라우팅됩니다. 장애 조치(failover) 후 정상적인 클라이언트 환경을 보장하려면 모든 가용성 복제본의 보조 및 주 역할에 대한 연결 액세스를 구성하는 것이 중요합니다.
비고
클라이언트 연결 요청을 처리하는 가용성 그룹 수신기에 대한 자세한 내용은 가용성 그룹 수신기, 클라이언트 연결 및 애플리케이션 장애 조치(failover)(SQL Server)를 참조하세요.
이 주제에서 다루는 내용:
보조 역할에서 지원하는 연결 액세스 유형
보조 역할은 다음과 같이 클라이언트 연결에 대한 세 가지 대안을 지원합니다.
연결 없음
사용자 연결은 허용되지 않습니다. 보조 데이터베이스에 대한 읽기 액세스가 불가능합니다. 보조 역할의 기본 동작입니다.
읽기 전용 연결
ReadOnly 연결 속성이 Application Intent로 설정된(읽기 의도 연결) 연결만 사용 가능한 보조 데이터베이스입니다.
이 연결 속성에 대한 자세한 내용은 고가용성 재해 복구에 대한 SQL Server Native Client 지원을 참조하세요.
모든 읽기 전용 연결 허용
보조 데이터베이스는 모두 읽기 액세스 연결에 사용할 수 있습니다. 이 옵션을 사용하면 버전이 낮은 클라이언트를 연결할 수 있습니다.
자세한 내용은 가용성 복제본에서 Read-Only 액세스 구성(SQL Server)을 참조하세요.
기본 역할에서 지원하는 연결 액세스 유형
기본 역할은 다음과 같이 클라이언트 연결에 대한 두 가지 대안을 지원합니다.
모든 연결이 허용됩니다.
읽기-쓰기 및 읽기 전용 연결은 모두 주 데이터베이스에 허용됩니다. 기본 역할의 기본 동작입니다.
읽기/쓰기 연결만 허용
연결 속성이 Application IntentReadWrite 로 설정되었거나 설정되지 않은 경우 연결이 허용됩니다.
Application Intent 연결 문자열 키워드가 ReadOnly으로 설정된 연결은 허용되지 않습니다. 읽기/쓰기 연결만 허용하면 고객이 실수로 읽기 의도 작업 부하를 주 복제본에 연결하지 못하게 할 수 있습니다.
이 연결 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하세요.
자세한 내용은 가용성 복제본에서 Read-Only 액세스 구성(SQL Server)을 참조하세요.
연결 액세스 구성이 클라이언트 연결에 미치는 영향
복제본의 연결 액세스 설정은 연결 시도 실패 또는 성공 여부를 결정합니다. 다음 표에서는 각 연결 액세스 설정에 대해 지정된 연결 시도가 성공하거나 실패하는지를 요약합니다.
| 복제 역할 | 복제본에서 지원되는 연결 액세스 | 연결 의도 | Connection-Attempt 결과 |
|---|---|---|---|
| 부차적인 | 모두 | 읽기 의도, 읽기/쓰기 또는 연결 의도가 지정되지 않음 | 성공 |
| 부차적인 | 없음(기본 보조 동작입니다.) | 읽기 의도, 읽기/쓰기 또는 연결 의도가 지정되지 않음 | 실패 |
| 부차적인 | 읽기 전용 | 읽기 의도 | 성공 |
| 부차적인 | 읽기 전용 | 읽기-쓰기 또는 연결 의도가 지정되지 않음 | 실패 |
| 기본 | 모두(기본 기본 동작입니다.) | 읽기 전용, 읽기-쓰기 또는 연결 의도가 지정되지 않음 | 성공 |
| 기본 | 읽기-쓰기 | 읽기 의도만 | 실패 |
| 기본 | 읽기-쓰기 | 읽기-쓰기 또는 연결 의도가 지정되지 않음 | 성공 |
해당 복제본에 대한 클라이언트 연결을 허용하도록 가용성 그룹을 구성하는 방법에 대한 자세한 내용은 가용성 그룹 수신기, 클라이언트 연결 및 애플리케이션 장애 조치(failover)(SQL Server)를 참조하세요.
예제 Connection-Access 설정
연결 액세스를 위해 다양한 가용성 복제본을 구성하는 방법에 따라 가용성 그룹이 장애 조치된 후 클라이언트 연결에 대한 지원이 변경될 수 있습니다. 예를 들어 원격 비동기 커밋 보조 복제본에서 보고가 수행되는 가용성 그룹을 고려합니다. 이 가용성 그룹의 데이터베이스에 대한 모든 읽기 전용 애플리케이션은 Application Intent 연결 속성을 ReadOnly로 설정하여 모든 읽기 전용 연결이 읽기 의도 연결이 되도록 합니다.
이 예제 가용성 그룹에는 주 컴퓨팅 센터에 동기-커밋 복제본 2개와 위성 사이트에 두 개의 비동기 커밋 복제본이 있습니다. 주 역할의 경우 모든 복제본이 읽기/쓰기 액세스를 위해 구성되어 모든 상황에서 주 복제본에 대한 읽기 의도 연결을 방지합니다. 동기 커밋 보조 역할은 보조 역할의 모든 클라이언트 연결을 방지하는 기본 연결 액세스 구성("없음")을 사용합니다. 반면, 비동기 커밋 복제본은 보조 역할에서 읽기 의도 연결을 허용하도록 구성됩니다. 다음 표에서는 이 예제 구성을 요약합니다.
| 복제본 | 커밋 모드 | 초기 역할 | 보조 역할의 접속 권한 | 주 역할의 연결 권한 |
|---|---|---|---|---|
| Replica1 | 동기화된 | 기본 | 없음 | 읽기-쓰기 |
| Replica2 | 동기화된 | 부차적인 | 없음 | 읽기-쓰기 |
| Replica3 | 비동기 | 부차적인 | 읽기 전용 | 읽기-쓰기 |
| Replica4 | 비동기 | 부차적인 | 읽기 전용 | 읽기-쓰기 |
일반적으로 이 예제 시나리오에서 장애 조치(failover)는 동기-커밋 복제본 간에만 발생하며, 장애 조치 직후 읽기 의도 애플리케이션은 비동기 커밋 보조 복제본 중 하나에 다시 연결할 수 있습니다. 그러나 주 컴퓨팅 센터에서 재해가 발생하면 동기-커밋 복제본이 모두 손실됩니다. 위성 사이트의 데이터베이스 관리자는 비동기 커밋 보조 복제본에 대한 강제 수동 장애 조치(failover)를 수행하여 응답합니다. 나머지 보조 복제본의 보조 데이터베이스는 강제 장애 조치(failover)로 인해 일시 중단되므로 읽기 전용 워크로드에 사용할 수 없습니다. 읽기/쓰기 연결을 위해 구성된 새 주 복제본은 읽기 의도 워크로드가 읽기-쓰기 워크로드와 경쟁하지 못하도록 합니다. 즉, 데이터베이스 관리자가 나머지 비동기 커밋 보조 복제본에서 보조 데이터베이스를 다시 시작할 때까지 읽기 의도 클라이언트는 가용성 복제본에 연결할 수 없습니다.
관련 작업
가용성 복제본 속성 보기(SQL Server)
관련 내용
또한 참조하십시오
AlwaysOn 가용성 그룹 개요(SQL Server)
가용성 그룹 리스너, 클라이언트 연결, 및 애플리케이션 페일오버 (SQL Server)
통계