하이퍼스케일 보조 복제본
적용 대상: Azure SQL Database
분산 기능 아키텍처에 설명된 대로 Azure SQL Database 하이퍼스케일에는 두 가지 유형의 컴퓨팅 노드(복제본이라고도 함)가 있습니다.
보조 복제본은 항상 읽기 전용이며 다음 세 가지 유형일 수 있습니다.
- 고가용성 복제본
- 지역 복제본
- 명명된 복제본
아키텍처, 기능 세트, 목적, 비용은 유형마다 다릅니다. 필요한 기능에 따라 세 유형 중 하나만 사용하거나 모든 유형을 함께 사용할 수도 있습니다. 서버리스 또는 프로비전된 컴퓨팅 계층에서 보조 복제본을 사용할 수 있습니다.
하이퍼스케일로 명명된 복제본을 구성하고 관리하는 방법에 대한 자습서는 다음을 참조하세요.
고가용성 복제본
HA(고가용성) 복제본은 주 복제본과 동일한 페이지 서버를 사용하므로 HA 복제본을 추가하기 위해 데이터를 복사할 필요가 없습니다. HA 복제본은 데이터베이스 가용성을 높이는 데 사용됩니다. 장애 조치(failover) 목적으로 핫 대기 복제본 역할을 합니다. 주 복제본을 사용할 수 없게 되면 기존 HA 복제본 중 하나로 장애 조치(failover)가 자동으로 빠르게 수행됩니다. 연결 문자열은 변경할 필요가 없습니다. 장애 조치(failover) 중 활성 연결이 끊어지기 때문에 애플리케이션에서 최소한의 가동 중지 시간이 발생할 수 있습니다. 일반적으로 이 시나리오에서는 적절한 재시도 논리를 사용하는 것이 좋습니다. 일부 드라이버는 이미 일정 수준의 자동 재시도 논리를 제공합니다. .NET 을 사용하는 경우 최신 Microsoft.Data.SqlClient 라이브러리는 구성 가능한 자동 재시도 논리에 대한 기본 전체 지원을 제공합니다.
HA 복제본은 주 복제본과 동일한 서버 및 데이터베이스 이름을 사용합니다. SLO(서비스 수준 목표)도 주 복제본과 항상 동일합니다. HA 복제본은 포털 또는 API에서 독립 실행형 리소스로 표시되거나 관리할 수 없습니다. 주 복제본과 동일한 컴퓨팅 속도로 요금이 청구되지만 스토리지 비용은 보조 복제본에 적용되지 않습니다.
0~4개의 HA 복제본을 사용할 수 있습니다. 새 데이터베이스를 만드는 동안 복제본 수를 지정하거나 기존 데이터베이스의 복제본 수를 업데이트할 수 있습니다. 일반적인 관리 엔드포인트 및 도구(예: Azure PowerShell, Azure CLI, Azure Portal, REST API)를 사용하여 HA 복제본 수를 지정할 수 있습니다. HA 복제본을 만들거나 제거해도 주 복제본의 활성 연결에는 영향을 주지 않습니다.
HA 복제본에 연결
하이퍼스케일 데이터베이스에서 클라이언트가 사용하는 연결 문자열의 ApplicationIntent
인수는 연결이 읽기/쓰기 주 복제본으로 라우팅되는지, 아니면 읽기 전용 HA 복제본으로 라우팅되는지를 나타냅니다. 데이터베이스에 ReadOnly
보조 복제본이 없는 경우 ApplicationIntent
연결은 주 복제본으로 라우팅되고 기본값은 동작으로 설정 ReadWrite
됩니다.
-- Connection string with application intent
Server=tcp:<myserver>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadOnly;User ID=<myLogin>;Password=<password>;Trusted_Connection=False; Encrypt=True;
모든 HA 복제본의 리소스 용량은 동일합니다. 둘 이상의 HA 복제본이 있는 경우 읽기 의도 워크로드가 사용 가능한 모든 복제본에 임의로 분산됩니다. HA 복제본이 여러 개 있는 경우 주 복제본의 데이터 변경 내용에 따라 각 HA 복제본의 데이터 대기 시간은 서로 다를 수 있습니다. 각 HA 복제본은 동일한 페이지 서버 세트의 주 복제본과 동일한 데이터를 사용합니다. 하지만 각 HA 복제본의 로컬 데이터 캐시는 주 복제본에서 HA 복제본으로 로그 레코드를 전달하는 트랜잭션 로그 서비스를 통해 주 복제본의 변경 내용을 반영합니다. 결과적으로 HA 복제본에서 실행되는 워크로드에 따라 로그 레코드의 애플리케이션은 서로 다른 속도로 발생할 수 있으므로 다른 복제본은 주 복제본에 비해 데이터 대기 시간이 다를 수 있습니다.
명명된 복제본
HA 복제본과 마찬가지로 명명된 복제본은 주 복제본과 동일한 페이지 서버를 사용합니다. HA 복제본과 마찬가지로 명명된 복제본을 추가하는 데 필요한 데이터 복사본은 없습니다.
HA 복제본과 명명된 복제본 간에는 차이점이 있습니다.
- 명명된 복제본은 포털 및 API(Azure CLI, Azure PowerShell, T-SQL) 호출에서 일반(읽기 전용) Azure SQL 데이터베이스로 표시됩니다.
- 명명된 복제본은 주 복제본과 다른 데이터베이스 이름을 사용할 수 있으며, 필요에 따라 다른 논리 서버에 있을 수 있습니다(주 복제본과 동일한 지역에 있는 경우).
- 명명된 복제본에는 주 복제본과 독립적으로 설정하고 변경할 수 있는 자체 서비스 수준 목표가 있습니다.
- 명명된 복제본은 주 복제본마다 최대 30개의 명명된 복제본을 지원합니다.
- 명명된 복제본은 명명된 복제본을 호스트하는 논리 서버에서 서로 다른 로그인을 만들어 명명된 복제본마다 다른 인증을 지원합니다.
그 결과, 명명된 복제본은 읽기 전용 워크로드와 관련하여 HA 복제본에 비해 몇 가지 이점을 제공합니다.
- 주 복제본이 확장 또는 축소되면 명명된 복제본에 연결된 사용자의 연결이 끊어지지 않습니다.
- 명명된 복제본이 확장 또는 축소될 때 주 복제본에 연결된 사용자는 영향을 받지 않습니다.
- 주 복제본 또는 명명된 복제본에서 실행되는 워크로드는 다른 복제본에서 실행되는 장기 실행 쿼리의 영향을 받지 않습니다.
명명된 복제본의 주요 목표는 다양한 읽기 확장 시나리오를 지원하고 HTAP(하이브리드 트랜잭션 및 분석 처리) 워크로드를 개선하는 것입니다. 해당 솔루션을 만드는 방법의 예는 아래에서 확인할 수 있습니다.
또한 명명된 복제본은 유연성과 탄력성을 제공하여 다른 많은 사용 사례도 충족합니다.
- 액세스 격리: 명명된 특정 복제본에 액세스 권한을 부여할 수 있지만 주 복제본 또는 다른 명명된 복제본에는 부여할 수 없습니다.
- 워크로드 종속 서비스 수준 목표: 명명된 복제본은 자체 서비스 수준 목표를 가질 수 있으므로 다른 워크로드 및 사용 사례에 다른 명명된 복제본을 사용할 수 있습니다. 예를 들어 하나의 명명된 복제본을 사용하여 Power BI 요청을 처리하고, 다른 명명된 복제본을 사용하여 데이터 과학 작업 데이터를 Apache Spark에 제공할 수 있습니다. 각 명명된 복제본은 독립적인 서비스 수준 목표를 가지고 독립적으로 스케일링될 수 있습니다.
- 워크로드 종속 라우팅: 최대 30개의 명명된 복제본을 사용하여 애플리케이션을 다른 복제본과 격리할 수 있도록 그룹에서 명명된 복제본을 사용할 수 있습니다. 예를 들어 네 개의 명명된 복제본 그룹을 사용하여 모바일 애플리케이션에서 들어오는 요청을 처리하고, 다른 두 개의 명명된 복제본 그룹을 사용하여 웹 애플리케이션에서 들어오는 요청을 처리할 수 있습니다. 이 방법을 사용하면 각 그룹의 성능과 비용을 세부적으로 튜닝할 수 있습니다.
참고 항목
하이퍼스케일 명명된 복제본에 대한 자주 묻는 질문은 Azure SQL Database 하이퍼스케일 명명된 복제본 FAQ를 참조하세요.
하이퍼스케일로 명명된 복제본에 대한 영역 중복
영역 중복성을 위해 구성된 하이퍼스케일 명명된 복제본은 Azure 가용성 영역 사용하여 명명된 복제본 컴퓨팅 노드를 Azure 지역 내의 여러 물리적 위치에 분산합니다. 명명된 복제본에 대한 영역 중복을 선택하면 애플리케이션 논리를 수정하지 않고도 데이터 센터 중단을 포함하여 더 광범위한 오류로 하이퍼스케일 데이터베이스의 모든 계층 복원력을 향상시킬 수 있습니다. 자세한 내용은 하이퍼스케일 영역 중복 가용성을 참조하세요.
영역 중복 하이퍼스케일로 명명된 복제본을 만드는 자습서는 하이퍼스케일로 명명된 복제본 만들기를 참조하세요.
애플리케이션 오류 복원력 문제를 해결하고 테스트하려면 애플리케이션 오류 복원력 테스트를 참조하세요.
지역 복제본
활성 지역 복제를 사용하면 동일하거나 다른 Azure 지역에 주 하이퍼스케일 데이터베이스의 읽기 가능한 보조 복제본을 만들 수 있습니다. 지역 복제본은 다른 논리 서버에 만들어야 합니다. 지역 복제본의 데이터베이스 이름은 주 복제본의 데이터베이스 이름과 항상 일치합니다.
지역 복제본을 만들면 모든 데이터가 주 서버에서 다른 페이지 서버 집합으로 복사됩니다. 지역 복제본은 동일한 지역에 있더라도 주 서버와 페이지 서버를 공유하지 않습니다. 이 아키텍처는 지역 장애 조치에 필요한 중복성을 제공합니다.
지역 복제본은 비동기 복제를 통해 트랜잭션 측면에서 일관된 데이터베이스 사본을 유지하는 데 사용됩니다. 지역 복제본이 다른 Azure 지역에 있는 경우 주 지역에 재해 또는 중단이 있는 경우 재해 복구에 사용할 수 있습니다. 지역 복제본은 지리적 읽기 확장 시나리오에서도 사용할 수 있습니다. 2022년 10월부터 하이퍼스케일 지역 보조 복제본의 데이터베이스 복사가 지원됩니다.
하이퍼스케일 데이터베이스에 대한 지역 복제에는 다음과 같은 현재 제한 사항이 있습니다.
- 동일하거나 다른 지역에 하나의 지역 복제본만 만들 수 있습니다.
- 지역 복제본의 특정 시점 복원은 지원되지 않습니다.
- 지역 복제본("지역 복제본 체인"이라고도 함)의 지역 복제본 만들기는 지원되지 않습니다.
문제 해결
영역 중복 하이퍼스케일로 명명된 복제본 문제 해결
애플리케이션 오류 복원력 문제를 해결하고 테스트하려면 애플리케이션 오류 복원력 테스트를 참조하세요.
PowerShell 및 CLI에서 영역 중복으로 명명된 복제본을 만들 때 하나 이상의 고가용성 복제본이 지정되었는지 확인합니다. 예를 들어 하이퍼스케일로 명명된 복제본 만들기를 참조하세요.
- Azure CLI에서 매개 변수
ha-replicas
와redundant
. - PowerShell에서 매개 변수
HighAvailabilityReplicaCount
및ZoneRedundant
. - 생략하는 경우
(ProvisioningDisabled) There is an insufficient number of high availability replicas to enable zone redundancy for a Hyperscale database.
오류 메시지가 수신될 수 있습니다.
- Azure CLI에서 매개 변수
하이퍼스케일 데이터베이스에는 명명된 복제본에 대해 이 기능을 사용하도록 설정하기 위한 필수 구성 요소로 영역 중복이 이미 설정되어 있어야 합니다.
- 주 데이터베이스에 영역 중복이 사용하도록 설정된 경우에도 명명된 복제본에 대해 영역 중복을 사용하도록 설정하는 것은 선택 사항입니다.
- 사용하지 않도록 설정하는 경우
(DatabaseNamedReplicaSourceDatabaseNotZoneRedundant) Zone Redundancy cannot be enabled on this Named Replica since the primary Hyperscale Database is not zone redundant.
오류 메시지가 수신될 수 있습니다.
알려진 문제
sys.databases에서 부분적으로 잘못된 데이터가 반환됨
명명된 복제본의 경우에 sys.databases
에서 반환된 행 값이 name
및 database_id
이외의 열에서 반환되고 일치하지 않고 올바르지 않을 수 있습니다. 예를 들어 compatibility_level
명명된 복제본에 해당하는 주 데이터베이스가 호환성 수준 150으로 설정된 경우에도 명명된 복제본의 열을 140으로 보고할 수 있습니다. 가능한 경우 올바른 데이터를 반환하는 함수를 DATABASEPROPERTYEX()
사용하여 동일한 데이터를 가져오는 것이 해결 방법입니다.
관련 콘텐츠
하이퍼스케일로 명명된 복제본을 구성하고 관리하는 방법에 대한 자습서는 다음을 참조하세요.
자세한 내용은 다음을 참조하세요.