Daftar Periksa: Praktik terbaik untuk SQL Server di Komputer Virtual Azure

Berlaku untuk:SQL Server di Azure VM

Artikel ini menyediakan daftar periksa cepat sebagai serangkaian praktik terbaik dan panduan untuk mengoptimalkan performa SQL Server di komputer virtual Azure.

Untuk detail yang komprehensif, lihat artikel lain dalam seri ini: ukuran mesin virtual, Penyimpanan, Keamanan, Konfigurasi HADR, Garis besar pengumpulan.

Aktifkan Penilaian SQL untuk SQL Server di mesin virtual Azure dan SQL Server Anda akan dievaluasi terhadap praktik dengan hasil terbaik yang diketahui di halaman manajemen mesin virtual SQL portal Microsoft Azure.

Untuk memperoleh video tentang fitur terbaru untuk mengoptimalkan performa SQL Server VM serta melakukan otomatisasi manajemen, tinjau video Data Exposed berikut:

Gambaran Umum

Saat menjalankan SQL Server di komputer virtual Azure, lanjutkan menggunakan opsi penyetelan performa database yang sama yang berlaku untuk SQL Server di lingkungan server lokal. Namun, performa database relasional di cloud publik tergantung banyak faktor, seperti ukuran komputer virtual dan konfigurasi disk data.

Biasanya ada trade-off antara mengoptimalkan biaya dan mengoptimalkan performa. Serangkaian praktik terbaik performa ini difokuskan untuk mendapatkan performa terbaik untuk SQL Server di Azure Virtual Machines. Jika beban kerja Anda tidak terlalu berat, Anda mungkin tidak memerlukan setiap pengoptimalan yang direkomendasikan. Pertimbangkan kebutuhan performa, biaya, dan pola beban kerja Anda saat Anda mengevaluasi rekomendasi ini.

Ukuran komputer virtual

Daftar periksa di bagian ini mencakup praktik terbaik ukuran VM untuk SQL Server di Azure VM.

  • Ebdsv5-series baru memberikan rasio throughput-to-vCore I/O tertinggi di Azure bersama dengan rasio memori-ke-vCore 8. Seri ini menawarkan kinerja harga terbaik untuk beban kerja SQL Server di Azure VM. Pertimbangkan seri ini terlebih dahulu untuk sebagian besar beban kerja SQL Server.
  • Gunakan ukuran VM dengan 4 vCPU atau lebih seperti E4ds_v5 atau yang lebih tinggi.
  • Gunakan ukuran komputer virtual yang dioptimalkan untuk memori untuk performa terbaik beban kerja SQL Server.
  • Seri Edsv5, seri M-, dan Mv2- menawarkan rasio memori ke vCore optimal yang diperlukan untuk beban kerja OLTP.
  • Mesin virtual seri M menawarkan rasio memori ke vCore tertinggi di Azure. Pertimbangkan mesin virtual ini untuk beban kerja tujuan penting dan gudang data.
  • Gunakan gambar Marketplace Azure untuk menyebarkan SQL Server Virtual Machines Anda karena pengaturan SQL Server dan opsi penyimpanan dikonfigurasi untuk performa optimal.
  • Kumpulkan karakteristik performa beban kerja target dan gunakan untuk menentukan ukuran komputer virtual yang sesuai untuk bisnis Anda.
  • Gunakan alat rekomendasi Asisten Migrasi Data dan SKU untuk menemukan ukuran VM yang tepat untuk beban kerja SQL Server yang ada.
  • Gunakan Azure Data Studio untuk bermigrasi ke Azure.

Penyimpanan

Daftar periksa di bagian ini mencakup praktik terbaik penyimpanan untuk SQL Server di Azure VM.

  • Pantau aplikasi dan tentukan bandwidth penyimpanan dan persyaratan latensi untuk data, log, dan tempdb file SQL Server sebelum memilih jenis disk.
  • Jika tersedia, konfigurasikan tempdbdata dan file log pada volume D: SSD lokal. Ekstensi SQL IaaS Agent menangani folder dan izin yang diperlukan setelah provisi ulang.
  • Untuk mengoptimalkan performa penyimpanan, rencanakan IOPS tertinggi non-cache yang tersedia, serta gunakan penembolokan data sebagai fitur performa untuk membaca data sambil menghindari penutupan/ pembatasan disk komputer virtual.
  • Saat menggunakan VM SQL Server seri Ebdsv5 atau Ebsv5 , gunakan Premium SSD v2 untuk performa harga terbaik. Anda dapat menyebarkan komputer virtual SQL Server Anda dengan Premium SSD v2 dengan menggunakan portal Azure (saat ini dalam pratinjau).
  • Tempatkan data, log, dan tempdb file pada drive terpisah.
    • Untuk drive data, gunakan disk premium P30 dan P40 atau yang lebih kecil untuk memastikan ketersediaan dukungan cache. Saat menggunakan seri VM Ebdsv5, gunakan Premium SSD v2 yang memberikan performa harga yang lebih baik untuk beban kerja yang memerlukan throughput IOPS dan I/O tinggi.
    • Untuk rencana drive log untuk kapasitas dan performa pengujian versus biaya saat mengevaluasi disk Premium SSD v2 atau Premium SSD P30 - P80
      • Jika latensi penyimpanan submillisecond diperlukan, gunakan disk ultra Premium SSD v2 atau Azure untuk log transaksi.
      • Untuk penyebaran komputer virtual seri M, pertimbangkan akselerator tulis menggunakan disk ultra Azure.
    • Tempatkan tempdb pada disk sementara (disk sementara bersifat sementara, dan default ke D:\) untuk sebagian besar beban kerja SQL Server yang bukan bagian dari instans kluster failover (FCI) setelah memilih ukuran VM yang optimal.
      • Jika kapasitas drive lokal tidak cukup untuk , pertimbangkan untuk tempdbmeningkatkan ukuran VM. Untuk informasi selengkapnya, lihat Kebijakan penembolokan file data.
    • Untuk tempat tempdb instans kluster failover (FCI) pada penyimpanan bersama.
      • Jika beban kerja FCI sangat bergantung pada tempdb performa disk, maka sebagai tempat tempdb konfigurasi tingkat lanjut pada drive SSD sementara (default D:\) lokal, yang bukan bagian dari penyimpanan FCI. Konfigurasi ini memerlukan pemantauan dan tindakan kustom untuk memastikan drive SSD sementara (default D:\) lokal tersedia sepanjang waktu karena kegagalan drive ini tidak akan memicu tindakan dari FCI.
  • Strip beberapa disk data Azure menggunakan Ruang Penyimpanan untuk meningkatkan bandwidth I/O hingga batas IOPS dan throughput komputer virtual target.
  • Atur penembolokan host ke baca-saja untuk disk file data.
  • Atur penembolokan host ke tidak ada untuk disk file log.
    • Jangan mengaktifkan cache baca/tulis pada disk yang berisi data SQL Server atau file log.
    • Selalu hentikan layanan SQL Server sebelum mengubah pengaturan cache disk Anda.
  • Saat memigrasikan beberapa beban kerja yang berbeda ke cloud, Azure Elastic SAN dapat menjadi solusi penyimpanan konsolidasi hemat biaya. Namun, saat menggunakan Azure Elastic SAN, mencapai IOPS/throughput yang diinginkan untuk beban kerja SQL Server sering memerlukan kapasitas provisi berlebih. Meskipun biasanya tidak sesuai untuk beban kerja SQL Server tunggal, Anda dapat memperoleh solusi hemat biaya saat menggabungkan beban kerja berkinerja rendah dengan SQL Server.
  • Untuk pengembangan dan pengujian beban kerja, dan pengarsipan cadangan jangka panjang pertimbangkan menggunakan penyimpanan standar. Tidak disarankan untuk menggunakan HDD/SSD Standar untuk beban kerja produksi.
  • Disk Bursting berbasis kredit (P1-P20) hanya boleh dipertimbangkan untuk beban kerja pengembangan/pengujian dan sistem departemen yang lebih kecil.
  • Untuk mengoptimalkan performa penyimpanan, rencanakan IOPS tertinggi yang tidak di-cache yang tersedia, dan gunakan penembolokan data sebagai fitur performa untuk pembacaan data sambil menghindari pembatasan/pembatasan disk komputer virtual.
  • Format disk data Anda untuk menggunakan ukuran unit alokasi sebesar 64 KB untuk semua file data yang ditempatkan pada drive selain drive sementara D:\ (yang memiliki alokasi default 4 KB). Komputer virtual SQL Server yang disebarkan melalui Marketplace Azure dilengkapi dengan disk data yang diformat dengan ukuran unit alokasi dan interleave untuk kumpulan penyimpanan yang diatur ke 64 KB.
  • Konfigurasikan akun penyimpanan di wilayah yang sama dengan komputer virtual SQL Server.
  • Nonaktifkan penyimpanan geo-redundan Azure (geo-replikasi) dan gunakan LRS (penyimpanan lokal-redundan) pada akun penyimpanan.
  • Aktifkan Penilaian Praktik Terbaik SQL untuk mengidentifikasi kemungkinan masalah performa dan mengevaluasi bahwa komputer virtual SQL Server Anda dikonfigurasi untuk mengikuti praktik terbaik.
  • Tinjau dan pantau batas disk dan VM menggunakan metrik pemanfaatan IO Penyimpanan.
  • Kecualikan file SQL Server dari pemindaian perangkat lunak antivirus, termasuk file data, file log, dan file cadangan.

Keamanan

Daftar periksa di bagian ini mencakup praktik terbaik keamanan untuk SQL Server di VM Azure.

Fitur dan kemampuan SQL Server menyediakan metode keamanan pada tingkat data dan bagaimana Anda mencapai pertahanan secara mendalam di tingkat infrastruktur untuk solusi berbasis cloud dan hibrid. Selain itu, dengan langkah-langkah keamanan Azure, dimungkinkan untuk mengenkripsi data sensitif Anda, melindungi mesin virtual dari virus dan malware, mengamankan lalu lintas jaringan, mengidentifikasi dan mendeteksi ancaman, memenuhi persyaratan kepatuhan, dan menyediakan satu metode untuk administrasi dan pelaporan untuk kebutuhan keamanan apa pun di cloud hibrid.

  • Gunakan Microsoft Defender untuk Cloud untuk mengevaluasi dan mengambil tindakan untuk meningkatkan postur keamanan lingkungan data Anda. Kemampuan seperti Azure Advanced Threat Protection (ATP) dapat dimanfaatkan di seluruh beban kerja hibrid Anda untuk menyempurnakan evaluasi keamanan serta memberikan kemampuan untuk bereaksi terhadap risiko. Mendaftarkan komputer virtual SQL Server Anda dengan ekstensi SQL IaaS Agent muncul Microsoft Defender untuk Cloud penilaian dalam sumber daya komputer virtual SQL dari portal Azure.
  • Gunakan Pertahanan Microsoft untuk SQL untuk menemukan dan mengurangi potensi kerentanan database, serta mendeteksi aktivitas anomali yang dapat menunjukkan ancaman terhadap instans dan lapisan database SQL Server Anda.
  • Penilaian Kerentanan adalah bagian dari Pertahanan Microsoft untuk SQL yang dapat menemukan dan membantu memulihkan potensi risiko terhadap lingkungan SQL Server Anda. Penilaian ini memberikan visibilitas ke dalam status keamanan Anda, dan menyertakan langkah yang dapat ditindaklanjuti untuk mengatasi masalah keamanan.
  • Gunakan VM rahasia Azure untuk memperkuat perlindungan data Anda yang sedang digunakan, dan data tidak aktif terhadap akses operator host. VM rahasia Azure memungkinkan Anda menyimpan data sensitif Anda dengan percaya diri di cloud dan memenuhi persyaratan kepatuhan yang ketat.
  • Jika Anda menggunakan SQL Server 2022, pertimbangkan untuk menggunakan autentikasi Microsoft Entra untuk menyambungkan ke instans SQL Server Anda.
  • Azure Advisor menganalisis konfigurasi sumber daya dan telemetri penggunaan Anda, lalu merekomendasikan solusi yang dapat membantu Anda meningkatkan efektivitas biaya, performa, ketersediaan, dan keamanan sumber daya Azure Anda. Manfaatkan Azure Advisor di tingkat mesin virtual, grup sumber daya, atau langganan untuk membantu mengidentifikasi dan menerapkan praktik terbaik untuk mengoptimalkan penyebaran Azure Anda.
  • Gunakan Azure Disk Encryption ketika kebutuhan kepatuhan dan keamanan mengharuskan Anda mengenkripsi data secara menyeluruh menggunakan kunci enkripsi Anda, termasuk enkripsi disk ephemeral (terlampir secara lokal untuk sementara).
  • Disk Terkelola dienkripsi saat tidak aktif secara default menggunakan Enkripsi Layanan Azure Storage, di mana kunci enkripsinya adalah kunci yang dikelola Microsoft di Azure.
  • Untuk perbandingan opsi enkripsi disk terkelola, tinjau bagan perbandingan enkripsi disk terkelola
  • Port manajemen harus ditutup pada mesin virtual Anda - Port manajemen jarak jauh yang terbuka akan mengekspos VM Anda ke tingkat risiko yang tinggi dari serangan berbasis internet. Serangan ini mencoba untuk memaksa info masuk guna mendapatkan akses admin ke komputer.
  • Aktifkan akses Just-in-time (JIT) untuk mesin virtual Azure
  • Gunakan Azure Bastion pada Protokol Desktop Jarak Jauh (RDP).
  • Kunci port dan hanya izinkan lalu lintas aplikasi yang diperlukan menggunakan Azure Firewall yang merupakan Firewall sebagai Layanan (FaaS) terkelola yang memberikan/menolak akses server berdasarkan alamat IP asal.
  • Gunakan Grup Keamanan Jaringan (NSG) untuk memfilter lalu lintas jaringan menuju dan dari sumber daya Azure di Azure Virtual Network
  • Manfaatkan Grup Keamanan Aplikasi untuk server grup bersama dengan persyaratan pemfilteran port yang serupa, dengan fungsi serupa, seperti server web dan server database.
  • Untuk server web dan aplikasi, manfaatkan perlindungan Azure Distributed Denial of Service (DDoS). Serangan DDoS dirancang untuk membanjiri dan menguras sumber daya jaringan, membuat aplikasi menjadi lambat atau tidak responsif. Serangan DDos yang menargetkan antarmuka pengguna merupakan hal yang umum terjadi. Perlindungan Azure DDoS membersihkan lalu lintas jaringan yang tidak diinginkan, sebelum memengaruhi ketersediaan layanan
  • Gunakan ekstensi VM untuk membantu mengatasi anti-malware, status yang diinginkan, deteksi ancaman, pencegahan, dan remediasi untuk mengatasi ancaman di tingkat sistem operasi, mesin, dan jaringan:
  • Gunakan Azure Policy untuk membuat aturan bisnis yang dapat diterapkan ke lingkungan Anda. Azure Policies mengevaluasi sumber daya Azure dengan membandingkan properti sumber daya tersebut dengan aturan yang ditentukan dalam format JSON.
  • Azure Blueprints memungkinkan arsitek cloud dan grup teknologi informasi pusat untuk menentukan kumpulan sumber daya Azure yang dapat diulang yang menerapkan dan mematuhi standar, pola, dan persyaratan organisasi. Azure Blueprints berbeda dengan Azure Policy.

Fitur SQL Server

Berikut adalah daftar periksa cepat praktik terbaik untuk pengaturan konfigurasi SQL Server saat menjalankan instans SQL Server Anda di komputer virtual Azure dalam produksi:

Fitur Azure

Berikut ini adalah daftar periksa cepat praktik terbaik untuk panduan khusus Azure saat menjalankan SQL Server Anda di Azure VM:

Konfigurasi HADR

Daftar periksa di bagian ini mencakup praktik terbaik HADR untuk SQL Server di Azure VM.

Fitur ketersediaan tinggi dan pemulihan bencana (HADR), seperti grup ketersediaan Always On dan instans klaster failover, bergantung pada teknologi Klaster Failover Windows Server yang mendasarinya. Tinjau praktik terbaik untuk memodifikasi pengaturan HADR Anda guna mendukung lingkungan cloud dengan lebih baik.

Untuk klaster Windows Anda, pertimbangkan praktik terbaik ini:

  • Sebarkan VM SQL Server Anda ke beberapa subnet bila memungkinkan untuk menghindari ketergantungan pada Azure Load Balancer atau nama jaringan terdistribusi (DNN) untuk merutekan lalu lintas ke solusi HADR Anda.
  • Ubah klaster menjadi parameter yang lebih tidak agresif untuk menghindari pemadaman tidak terduga akibat kegagalan jaringan sementara atau pemeliharaan platform Azure. Untuk mempelajari lebih lanjut, lihat pengaturan heartbeat dan ambang. Untuk Windows Server 2012 dan yang lebih baru, gunakan nilai yang direkomendasikan berikut ini:
    • SameSubnetDelay: 1 detik
    • SameSubnetThreshold: 40 heartbeat
    • CrossSubnetDelay: 1 detik
    • CrossSubnetThreshold: 40 heartbeat
  • Tempatkan komputer virtual Anda dalam set ketersediaan atau zona ketersediaan yang berbeda. Untuk mempelajari selengkapnya, lihat Pengaturan ketersediaan komputer virtual.
  • Gunakan satu NIC per node kluster.
  • Konfigurasikan klaster pemungutan suara kuorum untuk menggunakan 3 atau lebih jumlah suara ganjil. Jangan tetapkan suara ke wilayah DR.
  • Pantau batas sumber daya dengan hati-hati untuk menghindari penghidupan ulang atau failover yang tidak terduga karena kendala sumber daya.
    • Pastikan OS, driver, dan SQL Server Anda menggunakan build terbaru.
    • Optimalkan performa untuk SQL Server di komputer virtual Azure. Tinjau bagian lain dalam artikel ini untuk mempelajari lebih lanjut.
    • Mengurangi atau menyebarkan beban kerja untuk menghindari batas sumber daya.
    • Pindah ke komputer virtual atau disk yang memiliki batas lebih tinggi untuk menghindari kendala.

Untuk grup ketersediaan SQL Server atau instans klaster failover Anda, pertimbangkan praktik terbaik ini:

  • Jika Anda sering mengalami kegagalan yang tidak terduga, ikuti praktik terbaik performa yang diuraikan dalam sisa artikel ini.
  • Jika mengoptimalkan performa komputer virtual SQL Server tidak menyelesaikan failover yang tidak terduga, pertimbangkan untuk melonggarkan pemantauan untuk grup ketersediaan atau instans kluster failover. Namun, hal itu mungkin tidak dapat mengatasi sumber utama masalah tersebut dan dapat menyembunyikan gejala dengan mengurangi kemungkinan kegagalan. Anda mungkin masih perlu menyelidiki dan mengatasi akar penyebab masalah tersebut. Untuk Windows Server 2012 atau yang lebih tinggi, gunakan nilai yang direkomendasikan berikut ini:
    • Batas waktu sewa: Gunakan persamaan ini untuk menghitung nilai batas waktu sewa maksimum:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Dimulai dengan 40 detik. Jika Anda menggunakan nilai yang dilonggarkan SameSubnetThreshold dan SameSubnetDelay direkomendasikan sebelumnya, jangan melebihi 80 detik untuk nilai batas waktu sewa.
    • Kegagalan maksimal dalam periode tertentu: Tetapkan angka 6 untuk nilai ini.
  • Saat menggunakan nama jaringan virtual (VNN) dan Azure Load Balancer untuk menyambungkan ke solusi HADR Anda, tentukan MultiSubnetFailover = true dalam string koneksi, meskipun kluster Anda hanya mencakup satu subnet.
    • Jika klien tidak mendukung MultiSubnetFailover = True , Anda mungkin perlu mengatur RegisterAllProvidersIP = 0 dan HostRecordTTL = 300 menyimpan kredensial klien untuk durasi yang lebih singkat. Namun, hal itu dapat menyebabkan kueri tambahan ke server DNS.
  • Untuk menyambungkan ke solusi HADR Anda menggunakan nama jaringan terdistribusi (DNN), pertimbangkan hal berikut:
    • Anda harus menggunakan driver klien yang mendukung MultiSubnetFailover = True dan parameter ini harus berada dalam string koneksi.
    • Gunakan port DNN unik dalam string koneksi saat menghubungkan ke pendengar DNN untuk grup ketersediaan.
  • Gunakan string koneksi pencerminan database untuk grup ketersediaan dasar guna menghindari kebutuhan penyeimbang muatan (load balancer) atau DNN.
  • Validasikan ukuran sektor VHD Anda sebelum menerapkan solusi ketersediaan tinggi untuk menghindari I/O yang tidak selaras. Lihat KB3009974 untuk mempelajari lebih lanjut.
  • Jika mesin database SQL Server, pendengar grup ketersediaan Always On, atau probe kesehatan instans kluster failover dikonfigurasi untuk menggunakan port antara 49.152 dan 65.536 (rentang port dinamis default untuk TCP/IP), tambahkan pengecualian untuk setiap port. Melakukannya mencegah sistem lain ditetapkan secara dinamis ke port yang sama. Contoh berikut membuat pengecualian untuk port 59999:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Pemecahan masalah performa

Berikut ini adalah daftar sumber daya yang membantu Anda memecahkan masalah performa SQL Server lebih lanjut.

Pertimbangkan untuk mengaktifkan Penilaian SQL untuk SQL Server pada VM Azure.

Tinjau artikel komputer virtual SQL Server lainnya di Ringkasan SQL Server di Azure Virtual Machines. Jika Anda mempunyai pertanyaan tentang komputer virtual SQL Server, lihat Tanya Jawab Umum.