Dapatkan rekomendasi Azure untuk memigrasikan database SQL Server Anda

Ekstensi Migrasi Azure SQL untuk Azure Data Studio membantu Anda menilai persyaratan database Anda, mendapatkan rekomendasi SKU berukuran tepat untuk sumber daya Azure, dan memigrasikan database SQL Server Anda ke Azure.

Pelajari cara menggunakan pengalaman terpadu ini, mengumpulkan data performa dari instans SQL Server sumber Anda untuk mendapatkan rekomendasi Azure berukuran tepat untuk target Azure SQL Anda.

Gambaran Umum

Sebelum bermigrasi ke Azure SQL, Anda dapat menggunakan ekstensi Migrasi SQL di Azure Data Studio untuk membantu Anda menghasilkan rekomendasi berukuran tepat untuk Azure SQL Database, Azure SQL Managed Instance, dan SQL Server pada target Azure Virtual Machines. Alat ini membantu Anda mengumpulkan data performa dari instans SQL sumber Anda (menjalankan lokal atau cloud lainnya), dan merekomendasikan konfigurasi komputasi dan penyimpanan untuk memenuhi kebutuhan beban kerja Anda.

Diagram menyajikan alur kerja untuk rekomendasi Azure di ekstensi Azure SQL Migration untuk Azure Data Studio:

Diagram that shows the workflow of the SKU recommendation process.

Catatan

Penilaian dan fitur rekomendasi Azure di ekstensi Migrasi Azure SQL untuk Azure Data Studio mendukung instans SQL Server sumber yang berjalan di Windows atau Linux.

Prasyarat

Untuk mulai menggunakan rekomendasi Azure untuk migrasi database SQL Server, Anda harus memenuhi prasyarat berikut:

Sumber dan target yang didukung

Rekomendasi Azure dapat dihasilkan untuk versi SQL Server berikut:

  • SQL Server 2008 dan versi yang lebih baru di Windows atau Linux didukung.
  • SQL Server yang berjalan di cloud lain mungkin didukung, tetapi akurasi hasil dapat bervariasi

Rekomendasi Azure dapat dihasilkan untuk target Azure SQL berikut:

  • Azure SQL Database
    • Keluarga perangkat keras: Seri standar (Gen5)
    • Tingkat layanan: Tujuan Umum, Bisnis Kritis, Hyperscale
  • Azure SQL Managed Instance
    • Keluarga perangkat keras: Seri standar (Gen5), seri Premium, seri Premium yang dioptimalkan memori
    • Tingkat layanan: Tujuan Umum, Bisnis Penting
  • SQL Server di Azure Virtual Machine
    • Keluarga VM: Tujuan umum, dioptimalkan memori
    • Keluarga penyimpanan: SSD Premium

Pengumpulan data performa

Sebelum rekomendasi dapat dihasilkan, data performa perlu dikumpulkan dari instans SQL Server sumber Anda. Selama langkah pengumpulan data ini, beberapa tampilan sistem dinamis (DMV) dari instans SQL Server Anda dikueri untuk menangkap karakteristik performa beban kerja Anda. Alat ini menangkap metrik termasuk penggunaan CPU, memori, penyimpanan, dan IO setiap 30 detik, dan menyimpan penghitung kinerja secara lokal ke komputer Anda sebagai satu set file CSV.

Tingkat instans

Data performa ini dikumpulkan sekali per instans SQL Server:

Dimensi performa Deskripsi Tampilan Manajemen Dinamis (DMV)
SqlInstanceCpuPercent Jumlah CPU yang digunakan proses SQL Server, sebagai persentase sys.dm_os_ring_buffers
PhysicalMemoryInUse Jejak memori keseluruhan proses SQL Server sys.dm_os_process_memory
MemoryUtilizationPercentage Pemanfaatan memori SQL Server sys.dm_os_process_memory

Tingkat database

Dimensi performa Deskripsi Tampilan Manajemen Dinamis (DMV)
DatabaseCpuPercent Persentase total CPU yang digunakan oleh database sys.dm_exec_query_stats
CachedSizeInMb Ukuran total dalam Megabyte cache yang digunakan oleh database sys.dm_os_buffer_descriptors

Tingkat file

Dimensi performa Deskripsi Tampilan Manajemen Dinamis (DMV)
ReadIOInMb Jumlah total megabyte yang dibaca dari file ini sys.dm_io_virtual_file_stats
WriteIOInMb Jumlah total megabyte yang ditulis ke file ini sys.dm_io_virtual_file_stats
NumOfReads Jumlah total bacaan yang dikeluarkan pada file ini sys.dm_io_virtual_file_stats
NumOfWrites Jumlah total penulisan yang dikeluarkan pada file ini sys.dm_io_virtual_file_stats
Latensi Baca Latensi baca IO pada file ini sys.dm_io_virtual_file_stats
Latensi Tulis Latensi tulis IO pada file ini sys.dm_io_virtual_file_stats

Minimal 10 menit pengumpulan data diperlukan sebelum rekomendasi dapat dihasilkan, tetapi untuk menilai beban kerja Anda secara akurat, disarankan agar Anda menjalankan pengumpulan data selama durasi yang cukup lama untuk menangkap penggunaan puncak dan di luar puncak.

Untuk memulai proses pengumpulan data, mulailah dengan menyambungkan ke instans SQL sumber Anda di Azure Data Studio, lalu luncurkan wizard Migrasi SQL. Pada langkah 2, pilih "Dapatkan rekomendasi Azure". Pilih "Kumpulkan data performa sekarang" dan pilih folder di komputer Anda tempat data yang dikumpulkan akan disimpan.

Screenshot that shows the wizard pane to collect performance data for SKU recommendations.

Penting

Proses pengumpulan data berjalan selama 10 menit untuk menghasilkan rekomendasi pertama. Penting untuk memulai proses pengumpulan data saat beban kerja database aktif Anda mencerminkan penggunaan yang mirip dengan skenario produksi Anda.

Setelah rekomendasi pertama dibuat, Anda dapat terus menjalankan proses pengumpulan data untuk menyempurnakan rekomendasi. Opsi ini sangat berguna jika pola penggunaan Anda bervariasi dari waktu ke waktu.

Proses pengumpulan data dimulai setelah Anda memilih Mulai. Setiap 10 menit, titik data yang dikumpulkan dikumpulkan dan maksimum, rata-rata dan varians setiap penghitung akan ditulis ke disk ke satu set tiga file CSV.

Anda biasanya melihat sekumpulan file CSV dengan akhiran berikut di folder yang dipilih:

  • SQLServerInstance_CommonDbLevel_Counters.csv: Berisi data konfigurasi statis tentang tata letak dan metadata file database.
  • SQLServerInstance_CommonInstanceLevel_Counters.csv: Berisi data statis tentang konfigurasi perangkat keras instans server.
  • SQLServerInstance_PerformanceAggregated_Counters.csv: Berisi data performa agregat yang sering diperbarui.

Selama waktu ini, biarkan Azure Data Studio terbuka, meskipun Anda dapat melanjutkan operasi lain. Kapan saja, Anda dapat menghentikan proses pengumpulan data dengan kembali ke halaman ini dan memilih Hentikan pengumpulan data.

Menghasilkan rekomendasi berukuran tepat

Jika Anda telah mengumpulkan data performa dari sesi sebelumnya, atau menggunakan alat lain (seperti Asisten Migrasi Database), Anda dapat mengimpor data performa yang ada dengan memilih opsi Saya sudah memiliki data performa. Lanjutkan untuk memilih folder tempat data performa Anda (tiga file .csv) disimpan dan pilih Mulai untuk memulai proses rekomendasi.

Screenshot that shows the pane to import performance data for a SKU recommendation.

Catatan

Langkah salah satu wizard Migrasi SQL meminta Anda untuk memilih sekumpulan database yang akan dinilai, dan ini adalah satu-satunya database yang akan dipertimbangkan selama proses rekomendasi.

Namun, proses pengumpulan data performa mengumpulkan penghitung kinerja untuk semua database dari instans SQL Server sumber, bukan hanya yang dipilih.

Ini berarti bahwa data performa yang dikumpulkan sebelumnya dapat digunakan untuk berulang kali meregenerasi rekomendasi untuk subset database yang berbeda dengan menentukan daftar yang berbeda pada langkah pertama.

Parameter rekomendasi

Ada beberapa pengaturan yang dapat dikonfigurasi yang dapat memengaruhi rekomendasi Anda.

Screenshot that shows the recommendation parameters section.

Pilih opsi Edit parameter untuk menyesuaikan parameter ini sesuai dengan kebutuhan Anda.

Screenshot that shows the different recommendation parameters.

  • Faktor skala:
    Opsi ini memungkinkan Anda menyediakan buffer untuk diterapkan ke setiap dimensi performa. Opsi ini menyurati masalah seperti penggunaan musiman, riwayat performa singkat, dan kemungkinan peningkatan penggunaan di masa mendatang. Misalnya, jika Anda menentukan bahwa persyaratan CPU empat vCore memiliki faktor skala 150%, persyaratan CPU yang sebenarnya adalah enam vCore.

    Volume faktor skala default adalah 100%.

  • Pemanfaatan persentase:
    Persentil poin data yang akan digunakan sebagai data performa dikumpulkan.

    Nilai defaultnya adalah persentil ke-95.

  • Aktifkan fitur pratinjau:
    Opsi ini memungkinkan konfigurasi direkomendasikan yang mungkin belum tersedia secara umum untuk semua pengguna di semua wilayah.

    Opsi ini dinonaktifkan secara default.

  • Aktifkan rekomendasi elastis:

    Opsi ini menggunakan model rekomendasi alternatif yang menggunakan pembuatan profil performa harga yang dipersonalisasi terhadap pelanggan di cloud yang ada.

    Opsi ini dinonaktifkan secara default.

Penting

Proses pengumpulan data berakhir jika Anda menutup Azure Data Studio. Data yang dikumpulkan hingga titik tersebut disimpan di folder Anda.

Jika Anda menutup Azure Data Studio saat pengumpulan data sedang berlangsung, gunakan salah satu opsi berikut untuk memulai ulang pengumpulan data:

  • Buka kembali Azure Data Studio dan impor file data yang disimpan di folder lokal Anda. Kemudian, buat rekomendasi dari data yang dikumpulkan.
  • Buka kembali Azure Data Studio dan mulai pengumpulan data lagi dengan menggunakan wizard migrasi.

Izin minimum

Untuk mengkueri tampilan sistem yang diperlukan untuk pengumpulan data performa, izin tertentu diperlukan untuk login SQL Server yang digunakan untuk tugas ini. Anda dapat membuat pengguna dengan hak istimewa minimum untuk penilaian dan pengumpulan data performa menggunakan skrip berikut:

-- Create a login to run the assessment
USE master;
GO

CREATE LOGIN [assessment] WITH PASSWORD = '<STRONG PASSWORD>';

-- Create user in every database other than TempDB and model and provide minimal read-only permissions
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''TempDB'',''model''))  
   BEGIN TRY
      CREATE USER [assessment] FOR LOGIN [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT SELECT ON sys.sql_expression_dependencies TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT VIEW DATABASE STATE TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'

-- Provide server level read-only permissions
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [assessment];
GRANT VIEW DATABASE STATE TO assessment;
GRANT VIEW SERVER STATE TO assessment;
GRANT VIEW ANY DEFINITION TO assessment;

-- Provide msdb specific permissions
USE msdb;
GO

GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscategories] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [assessment];

-- USE master;
-- GO
-- EXECUTE sp_MSforeachdb 'USE [?]; BEGIN TRY DROP USER [assessment] END TRY BEGIN CATCH SELECT ERROR_MESSAGE() END CATCH';
-- DROP LOGIN [assessment];

Skenario dan batasan yang tidak didukung

  • Azure Rekomendasi tidak menyertakan perkiraan harga, karena situasi ini dapat bervariasi tergantung pada wilayah, mata uang, dan diskon seperti Azure Hybrid Benefit. Untuk mendapatkan perkiraan harga, gunakan Kalkulator Harga Azure, atau buat penilaian SQL di Azure Migrate.
  • Rekomendasi untuk Azure SQL Database dengan Model pembelian berbasis DTU tidak didukung.
  • Saat ini, rekomendasi Azure untuk tingkat komputasi tanpa server Azure SQL Database dan Kumpulan Elastis tidak didukung.

Pemecahan Masalah

  • Tidak ada rekomendasi yang dihasilkan
    • Jika tidak ada rekomendasi yang dihasilkan, situasi ini dapat berarti bahwa tidak ada konfigurasi yang diidentifikasi yang dapat sepenuhnya memenuhi persyaratan performa instans sumber Anda. Untuk melihat alasan mengapa ukuran, tingkat layanan, atau keluarga perangkat keras tertentu didiskualifikasi:
      • Akses log dari Azure Data Studio dengan masuk ke Bantuan > Tampilkan Semua Perintah > Buka Folder Log Ekstensi
      • Navigasi ke Microsoft.mssql SqlAssessmentLogs >> open SkuRecommendationEvent.log
      • Log berisi jejak setiap konfigurasi potensial yang dinilai dan alasan mengapa itu /tidak dianggap sebagai konfigurasi yang memenuhi syarat: Screenshot that shows SKU recommendations log.
    • Coba regenerasi rekomendasi dengan rekomendasi elastis diaktifkan. Opsi ini menggunakan model rekomendasi alternatif, yang menggunakan pembuatan profil performa harga yang dipersonalisasi terhadap pelanggan di cloud yang ada.

Langkah berikutnya