Azure SQL Database의 하이퍼스케일 탄력적 풀 개요

적용 대상:Azure SQL Database

이 문서에서는 Azure SQL Database의 하이퍼스케일 탄력적 풀에 대한 개요를 제공합니다.

Azure SQL Database 탄력적 풀 을 사용하면 SaaS(Software-as-a-Service) 개발자가 지정된 예산 내에서 데이터베이스 그룹에 대한 가격-성능 비율을 최적화하는 동시에 각 데이터베이스에 대한 성능 탄력성을 제공할 수 있습니다. Azure SQL Database 하이퍼스케일 탄력적 풀은 하이퍼스케일 데이터베이스에 대한 공유 리소스 모델을 도입합니다.

Azure CLI 또는 PowerShell을 사용하여 데이터베이스를 하이퍼스케일 탄력적 풀로 만들거나 확장하거나 이동하는 예제는 명령줄 도구를 사용하여 하이퍼스케일 탄력적 풀 작업 검토

참고 항목

하이퍼스케일 의 탄력적 풀은 현재 미리 보기로 제공됩니다.

개요

하이퍼스케일 데이터베이스를 탄력적 풀에 배포하여 풀 내의 데이터베이스 간에 리소스를 공유하고 사용 패턴이 다른 여러 데이터베이스를 갖는 비용을 최적화합니다.

하이퍼스케일 데이터베이스에서 탄력적 풀을 사용하는 시나리오:

  • 할당된 스토리지 양과 관계없이 예측 가능한 시간 동안 탄력적 풀에 할당된 컴퓨팅 리소스를 확장 또는 축소해야 하는 경우
  • 하나 이상의 읽기 확장 복제본(replica) 추가하여 탄력적 풀에 할당된 컴퓨팅 리소스를 확장하려는 경우
  • 낮은 컴퓨팅 리소스를 사용하는 경우에도 쓰기 집약적 워크로드에 높은 트랜잭션 로그 처리량을 사용하려는 경우

하이퍼스케일이 아닌 데이터베이스를 하이퍼스케일 탄력적 풀로 마이그레이션하면 데이터베이스가 하이퍼스케일 서비스 계층으로 업그레이드됩니다.

아키텍처

일반적으로 독립 실행형 하이퍼스케일 데이터베이스의 아키텍처는 컴퓨팅, 스토리지("페이지 서버") 및 로그("Log Service")의 세 가지 기본 독립적인 구성 요소로 구성됩니다. 하이퍼스케일 데이터베이스에 대한 탄력적 풀을 만들 때 풀 내의 데이터베이스는 컴퓨팅 및 로그 리소스를 공유합니다. 또한 고가용성을 구성하도록 선택하는 경우 각 고가용성 풀은 컴퓨팅 및 로그 리소스의 동등하고 독립적인 집합으로 만들어집니다.

다음은 하이퍼스케일 데이터베이스에 대한 탄력적 풀의 아키텍처에 대해 설명합니다.

  • 하이퍼스케일 탄력적 풀은 기본 하이퍼스케일 데이터베이스를 호스트하는 기본 풀로 구성되며, 구성된 경우 최대 4개의 추가 고가용성 풀로 구성됩니다.
  • 주 탄력적 풀에서 호스트되는 기본 하이퍼스케일 데이터베이스는 SQL Server 데이터베이스 엔진(sqlservr.exe) 컴퓨팅 프로세스, vCore, 메모리 및 SSD 캐시를 공유합니다.
  • 주 풀에 대한 고가용성을 구성하면 주 풀의 데이터베이스에 대한 읽기 전용 데이터베이스 복제본(replica) 포함된 추가 고가용성 풀이 만들어집니다. 각 기본 풀에는 최대 4개의 고가용성 복제본(replica) 풀이 있을 수 있습니다. 각 고가용성 풀은 풀의 모든 보조 읽기 전용 데이터베이스에 대한 컴퓨팅, SSD 캐시 및 메모리 리소스를 공유합니다.
  • 기본 탄력적 풀의 하이퍼스케일 데이터베이스는 모두 동일한 로그 서비스를 공유합니다. 고가용성 풀의 데이터베이스에는 쓰기 워크로드가 없으므로 로그 서비스를 활용하지 않습니다.
  • 각 하이퍼스케일 데이터베이스에는 고유한 페이지 서버 집합이 있으며, 이러한 페이지 서버는 주 풀의 주 데이터베이스와 고가용성 풀의 모든 보조 복제본(replica) 데이터베이스 간에 공유됩니다.
  • 지역 복제본(replica)ted 보조 하이퍼스케일 데이터베이스는 다른 탄력적 풀 내에 배치할 수 있습니다.
  • 데이터베이스 연결 문자열 지정하면 ApplicationIntent=ReadOnly 고가용성 풀 중 하나의 읽기 전용 복제본(replica) 데이터베이스로 라우팅됩니다.

다음 다이어그램은 하이퍼스케일 데이터베이스에 대한 탄력적 풀의 아키텍처를 보여 줍니다.

Diagram showing the Hyperscale elastic pool architecture.

하이퍼스케일 탄력적 풀 데이터베이스 관리

동일한 명령을 사용하여 풀링된 하이퍼스케일 데이터베이스를 다른 서비스 계층의 풀링된 데이터베이스로 관리할 수 있습니다. 하이퍼스케일 탄력적 풀을 만들 때 버전에 대해 지정 Hyperscale 하기만 하면 됩니다.

유일한 차이점은 기존 하이퍼스케일 탄력적 풀에 대한 고가용성(H/A) 복제본(replica) 수를 수정하는 기능입니다. 수행할 작업:

다음 클라이언트 도구를 사용하여 탄력적 풀에서 하이퍼스케일 데이터베이스를 관리할 수 있습니다.

하이퍼스케일이 아닌 데이터베이스를 하이퍼스케일 탄력적 풀로 마이그레이션

데이터베이스를 하이퍼스케일로 마이그레이션할 때 기존 하이퍼스케일 탄력적 풀에 데이터베이스를 추가할 수 있습니다. 이러한 마이그레이션의 경우 하이퍼스케일 탄력적 풀이 원본 데이터베이스와 동일한 논리 서버에 있어야 합니다.

데이터베이스를 하이퍼스케일 탄력적 풀로 마이그레이션할 때 하이퍼스케일 탄력적 풀당 최대 데이터베이스 수를 알고 있어야 합니다.

T-SQL을 사용하여 하이퍼스케일이 아닌 데이터베이스를 하이퍼스케일 탄력적 풀로 마이그레이션

T-SQL 명령을 사용하여 여러 범용 데이터베이스를 마이그레이션하고 다음과 같은 hsep1기존 하이퍼스케일 탄력적 풀에 추가할 수 있습니다.

ALTER DATABASE gpepdb1 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb2 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb3 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb4 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))

이 예제에서는 대상이 SERVICE_OBJECTIVE 하이퍼스케일 탄력적 풀임을 지정하여 범용에서 하이퍼스케일로의 마이그레이션을 암시적으로 요청합니다. 위의 각 명령은 해당 범용 데이터베이스를 하이퍼스케일로 마이그레이션하기 시작합니다. 이러한 ALTER DATABASE 명령은 신속하게 반환되며 마이그레이션이 완료되기를 기다리지 않습니다. 표시된 예제에서는 범용에서 하이퍼스케일로의 4가지 마이그레이션을 병렬로 실행하게 됩니다.

sys.dm_operation_상태 동적 관리 뷰를 쿼리하여 이러한 백그라운드 마이그레이션 작업의 상태 모니터링할 수 있습니다.

PowerShell을 사용하여 하이퍼스케일이 아닌 데이터베이스를 하이퍼스케일 탄력적 풀로 마이그레이션

PowerShell 명령을 사용하여 여러 범용 데이터베이스를 마이그레이션하고 기존 하이퍼스케일 탄력적 풀에 hsep1추가할 수 있습니다. 예를 들어 다음 샘플 스크립트는 다음 단계를 수행합니다.

  1. Get-AzSqlElasticPoolDatabase cmdlet을 사용하여 범용 탄력적 풀의 모든 데이터베이스를 gpep1나열합니다.
  2. cmdlet은 Where-Object 목록을 .로 시작하는 데이터베이스 이름으로만 필터링합니다 gpepdb.
  3. 각 데이터베이스 에 대해 Set-AzSqlDatabase cmdlet은 마이그레이션을 시작합니다. 이 경우 명명 hsep1된 대상 하이퍼스케일 탄력적 풀을 지정하여 하이퍼스케일 서비스 계층으로의 마이그레이션을 암시적으로 요청합니다.
    • 매개 -AsJob 변수를 사용하면 각 Set-AzSqlDatabase 요청을 병렬로 실행할 수 있습니다. 마이그레이션을 하나씩 실행하려는 경우 매개 변수를 -AsJob 제거할 수 있습니다.
$dbs = Get-AzSqlElasticPoolDatabase -ResourceGroupName "myResourceGroup" -ServerName "mylogicalserver" -ElasticPoolName "gpep1"
$dbs | Where-Object { $_.DatabaseName -like "gpepdb*" } | % { Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -ServerName "mylogicalserver" -DatabaseName ($_.DatabaseName) -ElasticPoolName "hsep1" -AsJob }

sys.dm_operation_상태 동적 관리 뷰 외에도 PowerShell cmdlet Get-AzSqlDatabaseActivity를 사용하여 이러한 백그라운드 마이그레이션 작업의 상태 모니터링할 수 있습니다.

리소스 제한

다음은 탄력적 풀 내에서 하이퍼스케일 데이터베이스 작업에 지원되는 제한을 나열합니다.

  • 지원되는 하드웨어 생성: 표준 시리즈(Gen5), 프리미엄 시리즈 및 프리미엄 시리즈 메모리 최적화
  • 풀당 vCore 최대값: 서비스 수준 목표에 따라 80개 또는 128개 vCore
  • 데이터베이스당 지원되는 최대 데이터 크기: 100TB
  • 풀의 DB에서 지원되는 최대 총 데이터 크기: 100TB
  • 데이터베이스당 지원되는 최대 트랜잭션 로그 처리량: 100MB
  • 풀의 데이터베이스에서 지원되는 최대 총 트랜잭션 로그 처리량: 131.25MB/초
  • 각 하이퍼스케일 탄력적 풀에는 최대 25개의 데이터베이스가 있을 수 있습니다.

자세한 내용은 표준 시리즈, 프리미엄 시리즈 및 최적화된 프리미엄 시리즈 메모리에 대한 하이퍼스케일 탄력적 풀의 리소스 제한을 참조하세요.

참고 항목

성능 프로필, 지원되는 기능 및 게시된 제한은 기능이 미리 보기 상태인 동안 변경될 수 있습니다. 따라서 워크로드의 정기적인 기능, 성능 및 크기 조정 테스트를 통해 사용 사례의 유효성을 검사하는 것이 가장 좋습니다.

제한 사항

다음 제한 사항을 고려하세요.

  • 기존 하이퍼스케일이 아닌 탄력적 풀을 하이퍼스케일 버전으로 변경하는 것은 지원되지 않습니다. 마이그레이션 섹션에서는 사용할 수 있는 몇 가지 대안을 제공합니다.
  • 하이퍼스케일 탄력적 풀의 버전을 하이퍼스케일이 아닌 버전으로 변경하는 것은 지원되지 않습니다.
  • 하이퍼스케일 탄력적 풀에 있는 적격 데이터베이스를 역방향 마이그레이션하려면 먼저 하이퍼스케일 탄력적 풀에서 제거해야 합니다. 그런 다음 독립 실행형 하이퍼스케일 데이터베이스를 범용 독립 실행형 데이터베이스로 역방향 마이그레이션할 수 있습니다.
  • 풀의 데이터베이스 유지 관리가 수행되고 풀 수준에서 기본 테넌트 창이 구성됩니다. 현재 하이퍼스케일 탄력적 풀에 대한 기본 테넌스 창을 구성할 수 없습니다.
  • 영역 중복성은 현재 하이퍼스케일 탄력적 풀에 사용할 수 없습니다. 하이퍼스케일 탄력적 풀에 영역 중복 하이퍼스케일 데이터베이스를 추가하려고 시도하면 오류가 발생합니다.
  • 하이퍼스케일 탄력적 풀에 명명된 복제본(replica) 추가하는 것은 지원되지 않습니다. 하이퍼스케일 데이터베이스의 명명된 복제본(replica) 하이퍼스케일 탄력적 풀에 추가하려고 시도하면 오류가 발생합니다UnsupportedReplicationOperation. 대신 명명된 복제본(replica) 단일 하이퍼스케일 데이터베이스로 만듭니다.

알려진 문제

문제 권장
지정된 매개 변수를 사용하여 PowerShell에서 새 하이퍼스케일 탄력적 풀을 -ZoneRedundant 만들려고 하면 모호합니다 One or more errors occurred. 지정된 각 -Verbose 매개 변수와 -Debug 매개 변수를 사용하여 PowerShell 명령을 실행하면 실제 오류가 발생 Provisioning of zone redundant database/pool is not supported for your current request합니다. 현재 영역 중복성이 지정된 하이퍼스케일 탄력적 풀 만들기는 지원되지 않습니다.
드물게 하이퍼스케일 데이터베이스를 탄력적 풀로 이동/복원/복사하려고 할 때 오류가 45122 - This Hyperscale database cannot be added into an elastic pool at this time. In case of any questions, please contact Microsoft support발생할 수 있습니다. 이 제한은 구현 관련 세부 정보 때문입니다. 이 오류가 차단되는 경우 지원 인시던트를 발생시키고 도움을 요청합니다.