Identifikasi Azure SQL Database, Azure SQL Managed Instance, atau SQL Server yang tepat di Azure VM SKU untuk database lokal Anda

Memigrasikan database ke cloud bisa rumit. Terutama saat mencoba memilih Azure SQL Database, SQL Managed Instance, atau SQL Server terbaik pada target Azure VM dan SKU untuk database Anda. Asisten Migrasi Database (DMA) membantu mengatasi pertanyaan-pertanyaan ini dan mempermudah pengalaman migrasi database Anda dengan memberikan rekomendasi SKU ini dalam output yang mudah digunakan. Menggunakan DMA data performa sekarang dapat merekomendasikan target SKU Azure SQL yang sesuai, dan penjelasan untuk rekomendasi tersebut.

Fitur rekomendasi SKU memungkinkan Anda mengumpulkan data performa dari instans SQL Server sumber yang menghosting database Anda, dan merekomendasikan Azure SQL Database minimum, Azure SQL Managed Instance, atau SQL Server di Azure VM SKU berdasarkan data yang dikumpulkan. Fitur ini memberikan rekomendasi yang terkait dengan tingkat harga, tingkat komputasi, dan ukuran data. Fungsionalitas ini saat ini hanya tersedia melalui Antarmuka Baris Perintah (CLI).

Berikut ini adalah instruksi untuk membantu Anda menentukan rekomendasi SKU dan menyediakan database terkait di Azure menggunakan DMA.

Catatan

Jika Anda menilai seluruh data estate SQL Server dalam skala besar pada VMware, gunakan Azure Migrate untuk mendapatkan rekomendasi penyebaran Azure SQL, ukuran target, dan perkiraan bulanan.

Prasyarat

  • Unduh dan instal DMA versi terbaru. Jika Anda sudah memiliki versi alat yang lebih lama, buka, dan Anda diminta untuk meningkatkan DMA.
  • Instal versi minimum .NET Core 6.0 pada mesin alat tempat aplikasi konsol rekomendasi SKU berjalan.
  • Pastikan akun yang digunakan untuk menyambungkan ke sumber lokal SQL Server Anda memiliki izin sysadmin.

Catatan

Disarankan agar alat ini digunakan dari mesin alat (klien) terpisah dengan konektivitas ke instans SQL target, daripada dari mesin yang menghosting SQL Server itu sendiri, untuk meminimalkan potensi overhead. Saat mengumpulkan data performa untuk rekomendasi SKU, disarankan agar alat dijalankan dengan nilai opsi default selama rentang beberapa jam, mencakup beban kerja di luar puncak dan puncak dan tidak termasuk tugas pemeliharaan seperti membangun kembali indeks atau database cadangan. Tugas pemeliharaan dapat memengaruhi konsumsi CPU, Memori, dan IO dan kemudian mendorong tingkat SKU yang direkomendasikan yang lebih tinggi.

Mengumpulkan data performa

Data yang dikumpulkan mencakup informasi terbatas tentang konfigurasi perangkat keras server Anda, dan data performa khusus SQL agregat dari Tampilan Manajemen Dinamis (DMV) sistem seperti CPU, memori, penggunaan penyimpanan, throughput IO, dan latensi IO. Data yang dikumpulkan disimpan secara lokal di komputer Anda untuk agregasi dan analisis lebih lanjut. Karakteristik performa instans sumber Anda dianalisis untuk mengaktifkan rekomendasi SKU untuk penawaran Azure SQL (termasuk SQL Database, SQL Managed Instance, dan SQL di Azure VM) yang paling sesuai dengan beban kerja Anda sekaligus hemat biaya.

Di jalur penginstalan DMA, temukan folder SQLAssessmentConsole dan aplikasi SqlAssessment.exe.

Screenshot of SKUConsoleApplication.exe file shown in DMA installation folder location.

Untuk memulai proses pengumpulan data, tentukan PerfDataCollection tindakan di aplikasi konsol, dengan argumen berikut:

  • sqlConnectionStrings: (wajib) String koneksi formal yang diapit kutipan untuk instans SQL target.
  • perfQueryIntervalInSec (opsional): Interval untuk mengkueri data performa, dalam hitungan detik. (Default: 30).
  • staticQueryIntervalInSec (opsional): Interval untuk mengkueri dan mempertahankan data konfigurasi statis, dalam hitungan detik. (Default: 60).
  • numberOfIterations (opsional): Jumlah perulangan pengumpulan data performa yang harus dilakukan sebelum bertahan ke file. Misalnya, dengan nilai default, data performa dipertahankan setiap 30 detik * 20 iterasi = 10 menit. (Default: 20).
  • outputFolder (opsional): Folder dari data performa, laporan, dan log mana yang ditulis ke/dibaca. (Default: %LocalAppData%/Microsoft/SqlAssessmentConsole).

Contoh berikut adalah pemanggilan sampel:

.\SqlAssessment.exe PerfDataCollection
--sqlConnectionStrings "Data Source=Server1;Initial Catalog=master;Integrated Security=True;" "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
--outputFolder C:\Output

Atau, proses pengumpulan data dapat dipanggil dengan menyediakan argumen yang sesuai dalam file konfigurasi JSON, dan meneruskan file konfigurasi ke alat dengan menjalankan yang dapat dieksekusi tanpa tindakan, sebagai berikut:

.\SqlAssessment.exe --configFile C:\path\to\config.json

Contoh ConfigFile berikut setara dengan tindakan pengumpulan data performa yang dijelaskan sebelumnya:

  {
    "action": "PerfDataCollection",
    "sqlConnectionStrings": [
    "Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
    "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
    ],
    "outputFolder": "C:\\Output"
  }

File konfigurasi sampel untuk semua tindakan dapat ditemukan di folder di Example bawah jalur penginstalan DMA: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json, dan GetSkuRecommendationSampleConfigFile.json.

Setelah perintah dijalankan, titik data performa dan konfigurasi disimpan sebagai satu set dari tiga file *_Counters.csv per instans target, masing-masing berisi server, dan nama instans. Anda dapat menggunakan file ini sebagai input untuk bagian proses berikutnya, yang akan memberikan rekomendasi SKU untuk Azure SQL Database, Azure SQL Managed Instance, atau SQL Server di Azure VM.

Gunakan aplikasi konsol untuk mendapatkan rekomendasi SKU

Poin data yang dikumpulkan oleh langkah sebelumnya digunakan sebagai input untuk proses rekomendasi SKU.

Untuk opsi database tunggal, DMA memberikan rekomendasi untuk tingkat database tunggal Azure SQL Database, tingkat komputasi, dan konfigurasi penyimpanan yang direkomendasikan untuk setiap database pada instans SQL Anda.

Untuk Azure SQL Managed Instance dan SQL Server di Azure VM, rekomendasi mendukung skenario lift-and-shift. Akibatnya, aplikasi konsol rekomendasi SKU dapat memberi Anda rekomendasi untuk Azure SQL Managed Instance, atau SQL Server di tingkat Azure VM, tingkat komputasi, dan konfigurasi penyimpanan yang direkomendasikan untuk kumpulan database pada instans SQL Anda. Anda juga hanya dapat menentukan subset database yang akan disertakan atau dikecualikan dari rekomendasi SKU.

GetSkuRecommendation menggunakan secara default strategi garis besar, yang memetakan perwakilan nilai data performa yang dikumpulkan untuk beban kerja (berdasarkan nilai persentil yang ditentukan) ke SKU Azure SQL yang tepat. Kami juga menawarkan strategi elastis (pendekatan statistik), yang menghasilkan kurva harga ke performa unik berdasarkan data performa yang dikumpulkan dengan menganalisis pola beban kerja terhadap model berdasarkan pelanggan yang sudah bermigrasi ke Azure SQL.

Untuk memulai proses rekomendasi SKU, tentukan GetSkuRecommendation tindakan di aplikasi konsol, dengan argumen berikut:

  • perfQueryIntervalInSec (opsional): Interval di mana data performa dikueri, dalam hitungan detik. Catatan: Nilai yang disediakan harus sesuai dengan nilai yang awalnya digunakan selama pengumpulan data performa. (Default: 30)
  • targetPlatform(opsional): Platform target untuk rekomendasi SKU: AzureSqlDatabase, , AzureSqlManagedInstanceAzureSqlVirtualMachine, atau Any. Memilih Any memungkinkan rekomendasi SKU untuk ketiga platform target dievaluasi, dan yang paling cocok dikembalikan. (Default: Any)
  • targetSqlInstance (opsional): Nama instans SQL yang ditargetkan rekomendasi SKU. (Default: outputFolder dipindai untuk file yang dibuat oleh tindakan PerfDataCollection, dan rekomendasi disediakan untuk setiap instans yang ditemukan)
  • targetPercentile (opsional): Persentil titik data yang akan digunakan selama agregasi data performa. Hanya digunakan untuk strategi garis besar (non-elastis). Hanya digunakan untuk strategi garis besar (non-elastis). (Default: 95)
  • scalingFactor (opsional): Faktor penskalaan ('kenyamanan') yang digunakan selama rekomendasi SKU. Misalnya, jika ditentukan bahwa ada persyaratan CPU 4-vCore dengan faktor penskalaan 150%, maka persyaratan CPU yang sebenarnya adalah 6 vCore. (Default: 100)
  • startTime (opsional): Waktu mulai UTC titik data performa untuk dipertimbangkan selama agregasi, dalam yyyy-MM-dd HH:mm format. Hanya digunakan untuk strategi garis besar (non-elastis). (Default: semua titik data yang dikumpulkan dipertimbangkan)
  • endTime (opsional): Waktu akhir UTC titik data performa yang perlu dipertimbangkan selama agregasi, dalam yyyy-MM-dd HH:mm format. Hanya digunakan untuk strategi garis besar (non-elastis). (Default: semua titik data yang dikumpulkan dipertimbangkan)
  • elasticStrategy (opsional): Apakah menggunakan strategi elastis untuk rekomendasi SKU berdasarkan pembuatan profil penggunaan sumber daya dan analisis performa biaya atau tidak. Strategi elastis saat ini tersedia untuk Azure SQL Database dan SQL Managed Instance, belum tersedia untuk SQL Server pada target Azure VM. (Default: false)
  • databaseAllowList (opsional): Daftar nama database yang dipisahkan spasi untuk diizinkan untuk pertimbangan rekomendasi SKU sambil mengecualikan semua yang lain. Hanya atur salah satu dari berikut ini atau tidak: databaseAllowList, databaseDenyList. (Default: null)
  • databaseDenyList (opsional): Daftar nama database yang dipisahkan spasi yang akan dikecualikan untuk rekomendasi SKU. Hanya atur salah satu dari berikut ini atau tidak: databaseAllowList, databaseDenyList. (Default: null)
  • overwrite (opsional): Apakah akan menimpa laporan rekomendasi SKU yang ada atau tidak. (Default: true)
  • displayResult (opsional): Mencetak hasil rekomendasi SKU ke konsol atau tidak. (Default: true)
  • outputFolder (opsional): Folder tempat data performa, laporan, dan log ditulis ke/dibaca. (Default: %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (opsional): Jika diatur ke true fitur Azure apa pun yang berada dalam periode pratinjau tidak disertakan dalam rekomendasi. (Default: false)

Pengaturan tingkat lanjut untuk rekomendasi SKU dapat ditemukan dalam Console.Settings.json file di direktori akar. Saat ini, ini mencakup parameter yang dapat disesuaikan berikut:

CommandTimeoutGroupSetting: Waktu dalam detik untuk menunggu perintah kueri SQL dijalankan sebelum waktu habis.

  • PerfCollectionCommandTimeout: Batas waktu perintah untuk kueri yang berpotensi berjalan lama yang terkait dengan pengumpulan data performa (Default: 300)
  • DefaultCollectionCommandTimeout: Batas waktu perintah untuk semua kueri lain (Default: 120)

ThrottlingGroupSetting: Jumlah tugas paralel yang akan dibuat berdasarkan jumlah inti pada komputer

  • ServerInstancesParallelCount: Jumlah instans server yang akan dinilai secara paralel (Default: 2)
  • DatabasesParallelCount: Jumlah database yang akan dinilai secara paralel (Default: 4)
  • UserDefinedObjectsParallelCountPerDb: Jumlah objek yang ditentukan pengguna (prosedur tersimpan, tampilan, pemicu, dll.) untuk menilai secara paralel per database (Default: 4)

AllowTelemetry: Apakah akan mengizinkan pengumpulan dan transmisi penggunaan fitur anonim dan data diagnostik ke Microsoft atau tidak. (Default: true)

Atau, proses rekomendasi SKU dapat dipanggil dengan menyediakan argumen yang sesuai dalam file konfigurasi JSON, dan meneruskan file konfigurasi ke alat dengan menjalankan executable tanpa tindakan, sebagai berikut:

.\SqlAssessment.exe --configFile C:\path\to\config.json

ConfigFile berikut setara dengan tindakan rekomendasi SKU yang dijelaskan sebelumnya:

{
    "action": "GetSkuRecommendation",
    "outputFolder": "C:\\Output",
    "targetPlatform": "AzureSqlDatabase",
    "targetSqlInstance": "Server1",
    "targetPercentile": 95,
    "scalingFactor": 100,
    "startTime": "2020-01-01 00:00",
    "endTime": "2022-01-01 00:00",
    "perfQueryIntervalInSec": 30,
    "overwrite": "true"
}

Untuk mendapatkan rekomendasi SKU untuk platform Azure SQL tertentu alih-alih memilihnya secara otomatis, berikan nilai untuk opsi tersebut --targetPlatform , sebagai berikut:

Sampel 1: Mendapatkan rekomendasi SKU untuk Azure SQL Database.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase

Sampel 2: Mendapatkan rekomendasi SKU menggunakan strategi elastis untuk Azure SQL Managed Instance.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true

Sampel 3: Mendapatkan rekomendasi SKU untuk Azure SQL Virtual Machine.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine

Sampel 4: Mendapatkan rekomendasi SKU untuk Azure SQL Virtual Machine dan menekan fitur pratinjau.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True

Cuplikan layar berikut adalah contoh output rekomendasi Azure SQL Database:

Screenshot of Azure SQL Database SKU tier and sizing recommendations shown in SQLAssessment console.

Cuplikan layar berikut adalah contoh output dari rekomendasi Azure SQL Managed Instance:

Screenshot of Azure SQL Managed Instance SKU tier and size recommendations shown in console.

Cuplikan layar berikut adalah contoh output dari SQL Server pada rekomendasi Azure VM:

Screenshot of SQL Server on Azure VM SKU tier and size recommendations output shown in console.

Output rekomendasi SKU disimpan baik sebagai laporan terperinci dalam format JSON dan ringkasan file HTML yang mudah dibaca. Output mencakup bagian berikut:

  • Nama Instans: Nama instans SQL Server lokal.
  • Nama Database: Nama database SQL Server lokal.
  • Rekomendasi SKU: Penawaran SKU hemat biaya minimum di antara semua SKU yang memenuhi syarat performa yang dapat mengakomodasi beban kerja Anda.
  • Alasan Rekomendasi: Untuk setiap tingkatan yang direkomendasikan, kami memberikan alasan dan nilai data yang dikumpulkan yang mendorong rekomendasi.

Tingkat akhir yang direkomendasikan dan nilai konfigurasi untuk tingkat tersebut mencerminkan SKU minimum yang diperlukan agar kueri Anda berjalan di Azure dengan tingkat keberhasilan yang mirip dengan database lokal Anda.

Langkah berikutnya