하이퍼스케일 보조 복제본

적용 대상:Azure SQL Database

분산 기능 아키텍처에 설명된 대로 Azure SQL Database 하이퍼스케일에는 두 가지 유형의 컴퓨팅 노드(복제본이라고도 함)가 있습니다.

보조 복제본은 항상 읽기 전용이며 다음 세 가지 유형일 수 있습니다.

  • 고가용성 복제본
  • 지역 복제본
  • 명명된 복제본

아키텍처, 기능 세트, 목적, 비용은 유형마다 다릅니다. 필요한 기능에 따라 세 가지 중 하나만 사용하거나 모두 함께 사용할 수 있습니다. 보조 복제본(replica) 서버리스 및 프로비전된 컴퓨팅 계층 모두에서 지원됩니다.

복제본(replica)이라는 하이퍼스케일을 구성하고 관리하는 방법에 대한 자습서는 다음을 참조하세요.

고가용성 복제본

HA(고가용성) 복제본은 주 복제본과 동일한 페이지 서버를 사용하므로 HA 복제본을 추가하기 위해 데이터를 복사할 필요가 없습니다. HA 복제본(replica) 기본 데이터베이스 가용성을 높이는 데 사용됩니다. 장애 조치(failover)를 위해 활성 대기 복제본(replica) 역할을 합니다. 주 복제본을 사용할 수 없게 되면 기존 HA 복제본 중 하나로 장애 조치(failover)가 자동으로 빠르게 수행됩니다. 연결 문자열 변경할 필요가 없습니다. 장애 조치(failover) 애플리케이션에서 활성 연결이 삭제되어 가동 중지 시간이 최소화될 수 있습니다. 일반적으로 이 시나리오에서는 적절한 재시도 논리를 사용하는 것이 좋습니다. 일부 드라이버는 이미 일정 수준의 자동 재시도 논리를 제공합니다. .NET을 사용하는 경우 최신 Microsoft.Data.SqlClient 라이브러리에서 기본적으로 구성 가능한 자동 재시도 논리를 완전히 지원합니다.

HA 복제본은 주 복제본과 동일한 서버 및 데이터베이스 이름을 사용합니다. 서비스 수준 목표도 주 복제본과 항상 같습니다. HA 복제본은 포털이나 API에서 독립 실행형 리소스로 표시되거나 관리할 수 없습니다.

0~4개의 HA 복제본을 사용할 수 있습니다. 데이터베이스를 만드는 동안 또는 데이터베이스를 만든 후 일반적인 관리 엔드포인트와 도구(예: PowerShell, AZ CLI, Portal, REST API)를 통해 해당 번호를 변경할 수 있습니다. HA 복제본을 만들거나 제거해도 주 복제본의 활성 연결에는 영향을 주지 않습니다.

HA 복제본에 연결

하이퍼스케일 데이터베이스에서 클라이언트가 사용하는 연결 문자열의 ApplicationIntent 인수는 연결이 읽기/쓰기 주 복제본으로 라우팅되는지, 아니면 읽기 전용 HA 복제본으로 라우팅되는지를 나타냅니다. ApplicationIntentReadOnly로 설정되고 데이터베이스에 보조 복제본이 없는 경우 연결은 주 복제본으로 라우팅되고 기본값은 ReadWrite 동작으로 설정됩니다.

-- Connection string with application intent
Server=tcp:<myserver>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadOnly;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Encrypt=True;

모든 HA 복제본의 리소스 용량은 동일합니다. 둘 이상의 HA 복제본이 있는 경우 읽기 의도 워크로드가 사용 가능한 모든 복제본에 임의로 분산됩니다. HA 복제본이 여러 개 있는 경우 주 복제본의 데이터 변경 내용에 따라 각 HA 복제본의 데이터 대기 시간은 서로 다를 수 있습니다. 각 HA 복제본은 동일한 페이지 서버 세트의 주 복제본과 동일한 데이터를 사용합니다. 그러나 각 HA 복제본(replica) 로컬 데이터 캐시는 주 복제본(replica) 로그 레코드를 HA 복제본(replica) 전달하는 트랜잭션 로그 서비스를 통해 주 데이터베이스의 변경 내용을 반영합니다. 따라서 HA 복제본(replica) 의해 처리되는 워크로드에 따라 로그 레코드의 애플리케이션은 서로 다른 속도로 발생할 수 있으므로 복제본(replica) 다르면 기본 복제본(replica) 비해 데이터 대기 시간이 다를 수 있습니다.

명명된 복제본

HA 복제본과 마찬가지로 명명된 복제본은 주 복제본과 동일한 페이지 서버를 사용합니다. HA 복제본과 유사하게, 명명된 복제본을 추가하는 데 데이터 복사는 필요하지 않습니다.

HA 복제본과 명명된 복제본 간에는 차이점이 있습니다.

  • 명명된 복제본은 포털과 API(AZ CLI, PowerShell, T-SQL) 호출에서 일반적인(읽기 전용) Azure SQL 데이터베이스로 표시됩니다.
  • 명명된 복제본은 주 복제본과 다른 데이터베이스 이름을 사용할 수 있으며, 필요에 따라 다른 논리 서버에 있을 수 있습니다(주 복제본과 동일한 지역에 있는 경우).
  • 명명된 복제본에는 주 복제본과 독립적으로 설정하고 변경할 수 있는 자체 서비스 수준 목표가 있습니다.
  • 명명된 복제본은 주 복제본마다 최대 30개의 명명된 복제본을 지원합니다.
  • 명명된 복제본은 명명된 복제본을 호스트하는 논리 서버에서 서로 다른 로그인을 만들어 명명된 복제본마다 다른 인증을 지원합니다.

그 결과, 명명된 복제본은 읽기 전용 워크로드와 관련하여 HA 복제본에 비해 몇 가지 이점을 제공합니다.

  • 명명된 복제본(replica) 연결된 사용자는 기본 복제본(replica) 확장 또는 축소되는 경우 연결이 끊어지지 않습니다. 동시에 기본 복제본(replica) 연결된 사용자는 확장 또는 축소하는 명명된 복제본(replica) 영향을 받지 않습니다.
  • 기본 또는 명명된 복제본(replica) 실행되는 워크로드는 다른 복제본(replica) 실행되는 장기 실행 쿼리의 영향을 받지 않습니다.

명명된 복제본의 주요 목표는 다양한 읽기 확장 시나리오를 지원하고 HTAP(하이브리드 트랜잭션 및 분석 처리) 워크로드를 개선하는 것입니다. 해당 솔루션을 만드는 방법의 예는 아래에서 확인할 수 있습니다.

위에 나열된 주요 시나리오 외에도 명명된 복제본은 유연성과 탄력성을 제공하여 다른 많은 사용 사례를 충족합니다.

  • 액세스 격리: 명명된 특정 복제본에 액세스 권한을 부여할 수 있지만 주 복제본 또는 다른 명명된 복제본에는 부여할 수 없습니다.
  • 워크로드 종속 서비스 목표: 명명된 복제본은 자체 서비스 수준 목표를 가질 수 있기 때문에 워크로드와 사용 사례마다 서로 다른 명명된 복제본을 사용할 수 있습니다. 예를 들어 하나의 명명된 복제본을 사용하여 Power BI 요청을 처리하고, 다른 명명된 복제본을 사용하여 데이터 과학 작업 데이터를 Apache Spark에 제공할 수 있습니다. 각 명명된 복제본은 독립적인 서비스 수준 목표를 가지고 독립적으로 스케일링될 수 있습니다.
  • 워크로드 종속 라우팅: 최대 30개의 명명된 복제본까지 명명된 복제본을 그룹으로 사용하여 애플리케이션을 서로 격리할 수 있습니다. 예를 들어 네 개의 명명된 복제본 그룹을 사용하여 모바일 애플리케이션에서 들어오는 요청을 처리하고, 다른 두 개의 명명된 복제본 그룹을 사용하여 웹 애플리케이션에서 들어오는 요청을 처리할 수 있습니다. 이 방법을 사용하면 각 그룹의 성능과 비용을 세부적으로 튜닝할 수 있습니다.

참고 항목

하이퍼스케일 명명된 복제본에 대한 자주 묻는 질문은 Azure SQL Database 하이퍼스케일 명명된 복제본 FAQ를 참조하세요.

복제본(replica)이라는 하이퍼스케일의 영역 중복성

참고 항목

복제본(replica)이라는 Azure SQL Database 하이퍼스케일의 영역 중복성은 현재 미리 보기로 제공됩니다.

복제본(replica)이라는 Azure SQL Database 하이퍼스케일의 영역 중복성은 Azure 가용성 영역 사용하여 명명된 복제본(replica) 컴퓨팅 노드를 Azure 지역 내의 여러 물리적 위치에 분산합니다. 명명된 복제본(replica) 대한 영역 중복성을 선택하면 애플리케이션 논리를 수정하지 않고도 데이터 센터 중단을 포함하여 더 광범위한 오류로 하이퍼스케일 데이터베이스의 모든 계층의 복원력을 향상시킬 수 있습니다. 자세한 내용은 하이퍼스케일 영역 중복 가용성을 참조 하세요.

복제본(replica) 영역 중복 하이퍼스케일을 만드는 자습서는 복제본(replica) 하이퍼스케일 만들기를 참조하세요.

애플리케이션 오류 복원력 문제를 해결하고 테스트하려면 애플리케이션 오류 복원력 테스트를 참조 하세요.

지역 복제본

활성 지역 복제를 사용하면 동일하거나 다른 Azure 지역에 주 하이퍼스케일 데이터베이스의 읽기 가능한 보조 복제본을 만들 수 있습니다. 지역 복제본은 다른 논리 서버에 만들어야 합니다. 지역 복제본의 데이터베이스 이름은 주 복제본의 데이터베이스 이름과 항상 일치합니다.

지역 복제본을 만드는 경우 모든 데이터가 주 복제본에서 다른 페이지 서버 세트로 복사됩니다. 지역 복제본은 동일한 지역에 있더라도 주 복제본과 페이지 서버를 공유하지 않습니다. 이 아키텍처는 지역 장애 조치에 필요한 중복성을 제공합니다.

지역 복제본은 비동기 복제를 통해 트랜잭션 측면에서 일관된 데이터베이스 사본을 유지하는 데 사용됩니다. 지역 복제본이 다른 Azure 지역에 있는 경우 주 지역에서 재해 또는 중단이 발생하면 재해 복구에 사용될 수 있습니다. 지역 복제본은 지리적 읽기 확장 시나리오에서도 사용할 수 있습니다. 2022년 10월부터 하이퍼스케일 지역 보조 복제본의 데이터베이스 복사가 지원됩니다.

하이퍼스케일 데이터베이스에 대한 지역 복제에는 다음과 같은 현재 제한 사항이 있습니다.

  • 동일하거나 다른 지역에 하나의 지역 복제본만 만들 수 있습니다.
  • 지역 복제본의 특정 시점 복원은 지원되지 않습니다.
  • 지역 복제본의 지역 복제본을 만드는 기능(“지역 복제본 체인”이라고도 함)은 지원되지 않습니다.

문제 해결

영역 중복 하이퍼스케일 명명된 복제본(replica) 문제 해결

  • 애플리케이션 오류 복원력 문제를 해결하고 테스트하려면 애플리케이션 오류 복원력 테스트를 참조 하세요.

  • PowerShell 및 CLI에서 복제본(replica) 영역 중복을 만들 때 하나 이상의 고가용성 복제본(replica) 지정되었는지 확인합니다. 예제는 복제본(replica) 하이퍼스케일 만들기를 참조하세요.

    • Azure CLI에서 "ha-복제본(replica)s" 및 "중복" 매개 변수를 모두 지정해야 합니다.
    • PowerShell에서 "HighAvailabilityReplicaCount" 및 "ZoneRedundant" 매개 변수를 지정해야 합니다.
    • 생략하면 다음과 같은 오류 메시지가 표시됩니다. (ProvisioningDisabled) There is an insufficient number of high availability replicas to enable zone redundancy for a Hyperscale database.
  • 하이퍼스케일 데이터베이스에는 명명된 복제본(replica) 대해 이 기능을 사용하도록 설정하기 위한 필수 구성 요소로 영역 중복성이 이미 활성화되어 있어야 합니다.

    • 주 데이터베이스에 영역 중복이 사용하도록 설정된 경우에도 명명된 복제본(replica) 영역 중복을 사용하도록 설정하는 것은 선택 사항입니다.
    • 사용하도록 설정하지 않으면 다음과 같은 오류 메시지가 표시됩니다. (DatabaseNamedReplicaSourceDatabaseNotZoneRedundant) Zone Redundancy cannot be enabled on this Named Replica since the primary Hyperscale Database is not zone redundant.

알려진 문제

sys.databases에서 부분적으로 잘못된 데이터가 반환됨

명명된 복제본(replica) 및 이외의 namedatabase_id열에서 반환sys.databases된 행 값은 일관되지 않고 올바르지 않을 수 있습니다. 예를 들어 명명된 복제본을 만들 때 사용된 주 데이터베이스가 150으로 설정된 경우에도 명명된 복제본의 compatibility_level 열에 140으로 보고될 수 있습니다. 해결 방법은 가능한 경우 올바른 데이터를 반환하는 DATABASEPROPERTYEX() 함수를 사용하여 동일한 데이터를 가져오는 것입니다.

복제본(replica)이라는 하이퍼스케일을 구성하고 관리하는 방법에 대한 자습서는 다음을 참조하세요.

자세한 내용은 다음을 참조하세요.