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 ketika 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 data performa DMA 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 Command Line Interface (CLI).

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

Catatan

Jika Anda menilai seluruh total estate datae SQL Server dalam skala besar di VMWare, gunakan Azure Migrate untuk mendapat rekomendasi penyebaran Azure SQL, ukuran target, dan estimasi bulanan.

Prasyarat

  • Unduh dan instal DMA versi terbaru. Jika Anda sudah memiliki versi alat yang lebih lama, buka alat tersebut, dan Anda akan diminta untuk meningkatkan DMA.
  • Instal versi minimum .NET Core 3.1 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 beberapa jam, mencakup beban kerja di luar puncak dan puncak dan tidak termasuk tugas pemeliharaan seperti pembangunan ulang 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 akan dipertahankan setiap 30 detik * 20 iterasi = 10 menit. (Default: 20)
  • outputFolder (Opsional): Folder dari data performa, laporan, dan log mana yang akan ditulis/dibaca. (Default: %LocalAppData%/Microsoft/SqlAssessmentConsole)

Berikut ini adalah contoh pemanggilan:

.\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

Di bawah ini adalah sampel ConfigFile yang setara dengan tindakan pengumpulan data performa yang dijelaskan di atas:


{
  "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 berikutnya dari proses, 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 akan digunakan sebagai input untuk proses rekomendasi SKU.

Untuk opsi database tunggal, DMA akan 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 yang 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 diberikan harus cocok dengan nilai yang awalnya digunakan selama pengumpulan data performa. (Default: 30)
  • targetPlatform (Opsional): Platform target untuk rekomendasi SKU: Baik AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine, atau Apa pun. Memilih Apa pun memungkinkan rekomendasi SKU untuk ketiga platform target dievaluasi, dan yang paling cocok dikembalikan. (Default: Apa pun)
  • 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 format "YYYY-MM-DD HH:MM". Hanya digunakan untuk strategi garis besar (non-elastis). (Default: semua titik data yang dikumpulkan akan dipertimbangkan)
  • endTime (Opsional): Waktu akhir UTC titik data performa untuk dipertimbangkan selama agregasi, dalam format "YYYY-MM-DD HH:MM". Hanya digunakan untuk strategi garis besar (non-elastis). (Default: semua titik data yang dikumpulkan akan dipertimbangkan)
  • elasticStrategy (Opsional): Apakah akan menggunakan strategi elastis untuk rekomendasi SKU atau tidak berdasarkan pembuatan profil penggunaan sumber daya dan analisis performa biaya. 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)
  • timpa (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 akan ditulis ke/dibaca. (Default: %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (Opsional): Jika diatur ke true fitur Azure apa pun yang berada dalam periode pratinjau tidak akan disertakan dalam rekomendasi. (Default: false)

Pengaturan tingkat lanjut untuk rekomendasi SKU dapat ditemukan dalam Console.Settings.json file di direktori akar. Saat ini, ini termasuk 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 lainnya (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 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 yang dapat dieksekusi tanpa tindakan, sebagai berikut:

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

Di bawah ini adalah sampel ConfigFile yang setara dengan tindakan rekomendasi SKU yang dijelaskan di atas:

{
    "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 fitur pratinjau yang mengesankan.

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

Berikut ini adalah contoh output rekomendasi Azure SQL Database:

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

Berikut ini adalah contoh output rekomendasi Azure SQL Managed Instance:

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

Berikut ini 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 selanjutnya