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

Catatan

Kumpulan elastis untuk Hyperscale saat ini dalam pratinjau.

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.

Memigrasikan database non-Hyperscale ke kumpulan elastis Hyperscale akan meningkatkan 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:

Memigrasikan database non-Hyperscale ke kumpulan elastis Hyperscale

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

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

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

Anda dapat menggunakan perintah T-SQL untuk memigrasikan 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 migrasi dari Tujuan Umum ke Hyperscale, dengan menentukan bahwa target SERVICE_OBJECTIVE adalah kumpulan elastis Hyperscale. Setiap perintah di atas mulai memigrasikan database Tujuan Umum masing-masing ke Hyperscale. Perintah ini ALTER DATABASE kembali dengan cepat dan tidak menunggu migrasi selesai. Dalam contoh yang ditunjukkan, Anda akan memiliki empat migrasi seperti itu dari Tujuan Umum ke Hyperscale yang berjalan secara paralel.

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

Memigrasikan database non-Hyperscale ke kumpulan elastis Hyperscale menggunakan PowerShell

Anda dapat menggunakan perintah PowerShell untuk memigrasikan 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 migrasi. Dalam hal ini, Anda secara implisit meminta migrasi 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 migrasi 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 migrasi 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: 100 TB.
  • Ukuran total data maksimum yang didukung di seluruh DB di kumpulan: 100 TB.
  • Throughput log transaksi maksimum yang didukung per database: 100 MB.
  • 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.

Catatan

Profil performa, kemampuan yang didukung, dan batas yang diterbitkan dapat berubah saat fitur dalam pratinjau. Dengan demikian, yang terbaik adalah memvalidasi kasus penggunaan Anda dengan pengujian beban kerja fungsional, performa, dan skala reguler.

Batasan

Pertimbangkan batasan berikut:

  • Mengubah kumpulan elastis non-Hyperscale yang ada ke edisi Hyperscale tidak didukung. Bagian migrasi menyediakan beberapa alternatif yang dapat Anda gunakan.
  • Mengubah edisi kumpulan elastis Hyperscale menjadi edisi non-Hyperscale tidak didukung.
  • Untuk memigrasikan kembali 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

Untuk kumpulan elastis zona redundan, pertimbangkan hal berikut:

Catatan

Kumpulan elastis hyperscale dengan redundansi zona tersedia, saat ini dalam pratinjau. Untuk informasi selengkapnya, lihat Posting blog: Kumpulan elastis Hyperscale dengan redundansi zona.

  • 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 memigrasikan database dari tingkat layanan non-Hyperscale lain ke 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
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.