Bagikan melalui


Gambaran umum kumpulan elastis Hyperscale di Azure SQL Database

Berlaku untuk: Azure SQL Database

Artikel ini memberikan gambaran umum tentang kumpulan elastis Hyperscale di Azure SQL Database.

Kumpulan elastis Azure SQL Database memungkinkan pengembang perangkat lunak sebagai layanan (SaaS) untuk mengoptimalkan rasio performa harga untuk sekelompok database dalam anggaran yang ditentukan sambil memberikan elastisitas performa untuk setiap database. Kumpulan elastis Azure SQL Database Hyperscale memperkenalkan model sumber daya bersama untuk database Hyperscale.

Misalnya untuk membuat, menskalakan, atau memindahkan database ke kumpulan elastis Hyperscale dengan menggunakan Azure CLI atau PowerShell, tinjau Bekerja dengan kumpulan elastis Hyperscale menggunakan alat baris perintah

Untuk informasi selengkapnya tentang ketersediaan umum kumpulan elastis untuk Hyperscale, lihat Blog: Kumpulan Elastis Hyperscale umumnya tersedia.

Gambaran Umum

Sebarkan database Hyperscale Anda ke kumpulan elastis untuk berbagi sumber daya antara database dalam kumpulan dan mengoptimalkan biaya memiliki beberapa database dengan pola penggunaan yang berbeda.

Skenario untuk menggunakan kumpulan elastis dengan database Hyperscale Anda:

  • Ketika Anda perlu menskalakan sumber daya komputasi yang dialokasikan ke kumpulan elastis ke atas atau ke bawah dalam jumlah waktu yang dapat diprediksi, terlepas dari jumlah penyimpanan yang dialokasikan.
  • Saat Anda ingin menskalakan sumber daya komputasi yang dialokasikan ke kumpulan elastis dengan menambahkan satu atau beberapa replika skala baca.
  • Jika Anda ingin menggunakan throughput log transaksi tinggi untuk beban kerja intensif tulis, bahkan dengan sumber daya komputasi yang lebih rendah.

Menambahkan database non-Hyperscale ke kumpulan elastis Hyperscale mengonversi database ke tingkat layanan Hyperscale.

Sistem

Secara tradisional, arsitektur database Hyperscale mandiri terdiri dari tiga komponen independen utama: Komputasi, Penyimpanan ("Server Halaman"), dan log ("Layanan Log"). Saat Anda membuat kumpulan elastis untuk database Hyperscale Anda, database dalam kumpulan berbagi sumber daya komputasi dan log. Selain itu, jika Anda memilih untuk mengonfigurasi ketersediaan tinggi, maka setiap kumpulan ketersediaan tinggi dibuat dengan set sumber daya komputasi dan log yang setara dan independen.

Berikut ini menjelaskan arsitektur kumpulan elastis untuk database Hyperscale:

  • Kumpulan elastis Hyperscale terdiri dari kumpulan utama yang menghosting database Hyperscale utama dan, jika dikonfigurasi, hingga empat kumpulan ketersediaan tinggi tambahan.
  • Database Hyperscale utama yang dihosting di kumpulan elastis utama berbagi proses komputasi mesin database SQL Server (sqlservr.exe), vCore, memori, dan cache SSD.
  • Mengonfigurasi ketersediaan tinggi untuk kumpulan utama membuat kumpulan ketersediaan tinggi tambahan yang berisi replika database baca-saja untuk database di kumpulan utama. Setiap kumpulan utama dapat memiliki maksimal empat kumpulan replika ketersediaan tinggi. Setiap kumpulan ketersediaan tinggi berbagi sumber daya komputasi, cache SSD, dan memori untuk semua database baca-saja sekunder di kumpulan.
  • Database hyperscale di kumpulan elastis utama semuanya berbagi layanan log yang sama. Karena database di kumpulan ketersediaan tinggi tidak memiliki beban kerja tulis, database tidak menggunakan layanan log.
  • Setiap database Hyperscale memiliki sekumpulan server halamannya sendiri, dan server halaman ini dibagikan antara database utama di kumpulan utama, dan semua database replika sekunder di kumpulan ketersediaan tinggi.
  • Database Hyperscale sekunder yang direplikasi secara geografis dapat ditempatkan di dalam kumpulan elastis lain.
  • Menentukan ApplicationIntent=ReadOnly dalam database Anda string koneksi merutekan Anda ke database replika baca-saja di salah satu kumpulan ketersediaan tinggi.

Diagram berikut menunjukkan arsitektur kumpulan elastis untuk database Hyperscale:

Diagram memperlihatkan arsitektur kumpulan elastis Hyperscale.

Mengelola database kumpulan elastis Hyperscale

Anda dapat menggunakan perintah yang sama untuk mengelola database Hyperscale yang dikumpulkan sebagai database terkumpul di tingkat layanan lain. Pastikan untuk menentukan Hyperscale edisi saat membuat kumpulan elastis Hyperscale Anda.

Satu-satunya perbedaan adalah kemampuan untuk memodifikasi jumlah replika ketersediaan tinggi (H/A) untuk kumpulan elastis Hyperscale yang ada. Untuk melakukannya:

Anda dapat menggunakan alat klien berikut untuk mengelola database Hyperscale Anda di kumpulan elastis:

Mengonversi database non-Hyperscale ke kumpulan elastis Hyperscale

Saat mengonversi database ke Hyperscale, Anda dapat menambahkan database ke kumpulan elastis Hyperscale yang ada. Untuk konversi ini, kumpulan elastis Hyperscale harus ada di server logis yang sama dengan database sumber.

Saat mengonversi database ke kumpulan elastis Hyperscale, ketahui jumlah maksimum database per kumpulan elastis Hyperscale.

Mengonversi database non-Hyperscale ke kumpulan elastis Hyperscale menggunakan T-SQL

Anda dapat menggunakan perintah T-SQL untuk mengonversi beberapa database Tujuan Umum dan menambahkannya ke kumpulan elastis Hyperscale yang ada bernama 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]))

Dalam contoh ini, Anda secara implisit meminta konversi dari Tujuan Umum ke Hyperscale, dengan menentukan bahwa target SERVICE_OBJECTIVE adalah kumpulan elastis Hyperscale. Setiap perintah di atas mulai mengonversi database Tujuan Umum masing-masing ke Hyperscale. Perintah ini ALTER DATABASE kembali dengan cepat dan tidak menunggu konversi selesai. Dalam contoh yang ditunjukkan, Anda akan memiliki empat konversi tersebut dari Tujuan Umum ke Hyperscale yang berjalan secara paralel.

Anda dapat mengkueri tampilan manajemen dinamis sys.dm_operation_status untuk memantau status operasi konversi latar belakang ini.

Mengonversi database non-Hyperscale ke kumpulan elastis Hyperscale menggunakan PowerShell

Anda dapat menggunakan perintah PowerShell untuk mengonversi beberapa database Tujuan Umum dan menambahkannya ke kumpulan elastis Hyperscale yang sudah ada bernama hsep1. Misalnya, contoh skrip berikut melakukan langkah-langkah berikut:

  1. Gunakan cmdlet Get-AzSqlElasticPoolDatabase untuk mencantumkan semua database di kumpulan elastis Tujuan Umum bernama gpep1.
  2. Where-Object Cmdlet memfilter daftar hanya untuk nama database tersebut yang dimulai dengan gpepdb.
  3. Untuk setiap database, cmdlet Set-AzSqlDatabase memulai konversi. Dalam hal ini, Anda secara implisit meminta konversi ke tingkat layanan Hyperscale dengan menentukan kumpulan elastis Hyperscale target bernama hsep1.
    • Parameter -AsJob memungkinkan setiap Set-AzSqlDatabase permintaan berjalan secara paralel. Jika Anda lebih suka menjalankan konversi satu per satu, Anda dapat menghapus -AsJob parameter .
$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 }

Selain tampilan manajemen dinamis sys.dm_operation_status , Anda dapat menggunakan cmdlet PowerShell Get-AzSqlDatabaseActivity untuk memantau status operasi konversi latar belakang ini.

Batas Sumber Daya

Berikut ini mencantumkan batas yang didukung untuk bekerja dengan database Hyperscale dalam kumpulan elastis:

  • Generasi perangkat keras yang didukung: Seri standar (Gen5), seri premium, dan memori seri premium yang dioptimalkan.
  • Maksimum vCore per kumpulan: 80 atau 128 vCore, tergantung pada tujuan tingkat layanan.
  • Ukuran data maksimum yang didukung per database Hyperscale tunggal: 100 TB.
  • Ukuran total data maksimum yang didukung di seluruh database di kumpulan: 100 TB.
  • Throughput log transaksi maksimum yang didukung per database: 100 MB/dtk.
    • Tingkat pembuatan log 150 MB/dtk tersedia sebagai fitur pratinjau keikutsertaan. Untuk informasi selengkapnya dan untuk ikut serta dalam 150 MB/dtk, lihat Blog: Peningkatan Hyperscale November 2024.
  • Total throughput log transaksi maksimum yang didukung di seluruh database di kumpulan: 131,25 MB/detik.
  • Setiap kumpulan elastis Hyperscale dapat memiliki hingga 25 database.

Untuk detail yang lebih besar, lihat batas sumber daya kumpulan elastis Hyperscale untuk memori seri standar, seri premium, dan seri premium yang dioptimalkan.

Batasan

Pertimbangkan batasan berikut:

  • Mengubah kumpulan elastis non-Hyperscale yang ada ke edisi Hyperscale tidak didukung. Bagian konversi menyediakan beberapa alternatif yang dapat Anda gunakan.
  • Mengubah edisi kumpulan elastis Hyperscale menjadi edisi non-Hyperscale tidak didukung.
  • Untuk "memigrasikan balik" database yang memenuhi syarat, yang berada dalam kumpulan elastis Hyperscale, database harus terlebih dahulu dihapus dari kumpulan elastis Hyperscale. Database Hyperscale mandiri kemudian dapat "dimigrasikan balik" ke database mandiri Tujuan Umum.
  • Untuk tingkat layanan Hyperscale, dukungan redundansi zona hanya dapat ditentukan selama pembuatan database atau kumpulan elastis dan tidak dapat dimodifikasi setelah sumber daya disediakan. Untuk informasi selengkapnya, lihat Memigrasikan Azure SQL Database ke dukungan zona ketersediaan.
  • Menambahkan replika bernama ke dalam kumpulan elastis Hyperscale tidak didukung. Mencoba menambahkan replika bernama database Hyperscale ke kumpulan elastis Hyperscale menghasilkan UnsupportedReplicationOperation kesalahan. Sebagai gantinya, buat replika bernama sebagai database Hyperscale tunggal.

Pertimbangan kumpulan elastis zona redundan

Berikut adalah beberapa pertimbangan untuk kumpulan elastis Hyperscale zona redundan:

  • Hanya database dengan redundansi penyimpanan zona-redundan (ZRS atau GZRS) yang dapat ditambahkan ke kumpulan elastis Hyperscale dengan redundansi zona.
  • Database Hyperscale mandiri harus dibuat dengan redundansi zona dan penyimpanan cadangan redundan zona (ZRS atau GZRS) untuk menambahkannya ke kumpulan elastis Hyperscale zona-redundan. Untuk database Hyperscale tanpa redundansi zona, lakukan transfer data ke database Hyperscale baru dengan opsi redundansi zona diaktifkan. Kloning harus dibuat menggunakan salinan database, pemulihan point-in-time, atau geo-replika. Untuk informasi selengkapnya, lihat Penyebaran ulang (Hyperscale).
  • Untuk memindahkan database Hyperscale dari satu kumpulan elastis ke kumpulan elastis lainnya, pengaturan penyimpanan cadangan redundansi zona dan redundansi zona harus cocok.
  • Untuk mengonversi database dari tingkat layanan non-Hyperscale lain menjadi kumpulan elastis Hyperscale dengan redundansi zona:
    • Melalui portal Azure, pertama-tama aktifkan redundansi zona dan penyimpanan cadangan redundan zona (ZRS). Kemudian, Anda dapat menambahkan database ke kumpulan elastis Hyperscale zona redundan.
    • Melalui PowerShell, pertama-tama aktifkan redundansi zona. Kemudian, dengan Set-AzSqlDatabase, pastikan bahwa -BackupStorageRedundancy parameter digunakan untuk menentukan penyimpanan cadangan redundan zona (ZRS atau GZRS).

Masalah umum

Masalah Rekomendasi
Menambahkan database dari kumpulan elastis Hyperscale yang berlebihan zona, ke grup failover dengan kumpulan elastis Hyperscale redundan non-zona di wilayah lain, akan gagal secara internal, tetapi operasi mungkin tampak berjalan tanpa kemajuan apa pun. Anda mungkin melihat database geo-sekunder saat menggunakan alat seperti SSMS, tetapi Anda tidak dapat tersambung dan menggunakan database geo-sekunder. Grup failover dapat menunjukkan status "Seeding 0%" untuk database geo-sekunder. Masalah ini tidak terjadi jika kumpulan elastis Hyperscale kedua adalah zona redundan. Untuk mengatasi masalah ini, siapkan replikasi geografis di luar grup failover menggunakan Azure PowerShell, secara eksplisit menentukan redundan non-zona di baris New-AzSqlDatabaseSecondary -ResourceGroupName "primary-rg" -ServerName "primary-server" -DatabaseName "hsdb1" -PartnerResourceGroupName "secondary-rg" -PartnerServerName "secondary-server" -AllowConnections "All" -SecondaryElasticPoolName "secondary-nonzr-pool" -BackupStorageRedundancy Local -ZoneRedundant:$falseperintah . Kemudian, Anda dapat menambahkan database ke dalam grup failover.
Dalam kasus yang jarang terjadi, Anda mungkin mendapatkan kesalahan 45122 - This Hyperscale database cannot be added into an elastic pool at this time. In case of any questions, please contact Microsoft support, ketika mencoba memindahkan / memulihkan / menyalin database Hyperscale ke dalam kumpulan elastis. Batasan ini disebabkan oleh detail spesifik implementasi. Jika kesalahan ini memblokir Anda, ajukan insiden dukungan dan minta bantuan.