Identifikasi Database Azure SQL, Instans Terkelola Azure SQL, atau SKU Azure VM SQL Server yang tepat untuk database di tempat Anda
Penting
Asisten Migrasi Data (DMA) dihentikan penggunaannya. Untuk opsi migrasi dari SQL Server ke Azure SQL, lihat opsi migrasi untuk SQL Server ke Azure SQL.
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. Dengan menggunakan data kinerja, DMA sekarang dapat merekomendasikan SKU Azure SQL yang sesuai, serta memberikan penjelasan atas 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, bukalah, dan Anda akan 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.
Untuk memulai proses pengumpulan data, tentukan PerfDataCollection
tindakan di aplikasi konsol, dengan argumen berikut:
-
sqlConnectionStrings
: (wajib) String koneksi formal yang dikelilingi oleh tanda kutip untuk instans SQL target. -
perfQueryIntervalInSec
(opsional): Interval untuk mengkueri data performa, dalam hitungan detik. (Bawaan:30
). -
staticQueryIntervalInSec
(opsional): Interval untuk mengkueri dan mempertahankan data konfigurasi statis, dalam hitungan detik. (Default:60
). -
numberOfIterations
(opsional): Jumlah iterasi pengumpulan data performa yang harus dilakukan sebelum menyimpan ke file. Misalnya, dengan nilai default, data performa dipertahankan setiap 30 detik * 20 iterasi = 10 menit. (Bawaan:20
). -
outputFolder
(opsional): Folder tempat data performa, laporan, dan log ditulis ke/dibaca dari. (Default:%LocalAppData%/Microsoft/SqlAssessmentConsole
).
Contoh berikut 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
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
secara default menggunakan strategi dasar, yang memetakan nilai data performa terkumpul yang mewakili beban kerja (berdasarkan nilai persentil yang dispesifikasikan) 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
, ,AzureSqlManagedInstance
AzureSqlVirtualMachine
, atauAny
. MemilihAny
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 yang akan dipertimbangkan selama agregasi, dalam formatyyyy-MM-dd HH:mm
. 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, dalamyyyy-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:
Cuplikan layar berikut adalah contoh output dari rekomendasi Azure SQL Managed Instance:
Cuplikan layar berikut adalah contoh output dari SQL Server pada rekomendasi Azure VM:
Output rekomendasi SKU disimpan sebagai laporan terperinci dalam format JSON dan sebagai file HTML ringkasan yang mudah dibaca. Output mencakup bagian-bagian berikut ini:
- 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.