Menggunakan templat mulai cepat Azure untuk mengonfigurasi grup ketersediaan untuk SQL Server di komputer virtual Azure

Berlaku untuk:SQL Server di Azure VM

Tip

Ada banyak metode untuk menyebarkan grup ketersediaan. Sederhanakan penyebaran Anda dan hilangkan kebutuhan akan Azure Load Balancer atau nama jaringan terdistribusi (DNN) untuk grup ketersediaan AlwaysOn Anda dengan membuat komputer virtual (VM) SQL Server Anda di beberapa subnet dalam jaringan virtual Azure yang sama. Jika Anda telah membuat grup ketersediaan dalam satu subnet, Anda dapat memigrasikannya ke lingkungan multi-subnet.

Artikel ini menjelaskan cara menggunakan templat quickstart Azure untuk mengotomatisasi sebagian penyebaran konfigurasi grup ketersediaan Always On untuk mesin virtual (VM) SQL Server dalam satu subnet di Azure. Dua templat mulai cepat Azure digunakan dalam proses ini:

Templat Deskripsi
sql-vm-ag-setup Membuat kluster failover Windows dan menggabungkan komputer virtual SQL Server ke dalamnya.
sql-vm-aglistener-setup Membuat listener grup ketersediaan dan mengonfigurasi load balancer internal. Templat ini hanya dapat digunakan jika kluster failover Windows dibuat dengan templat 101-sql-vm-ag-setup.

Bagian lain dari konfigurasi grup ketersediaan harus dilakukan secara manual, seperti membuat grup ketersediaan dan membuat load balancer internal. Artikel ini menyediakan urutan langkah otomatis dan manual.

Meskipun artikel ini menggunakan templat Mulai Cepat untuk mengonfigurasi lingkungan grup ketersediaan, dimungkinkan juga untuk melakukannya menggunakan portal Microsoft Azure, PowerShell atau Azure CLI, atau Secara Manual juga.

Catatan

Sekarang dimungkinkan untuk mengangkat dan mengalihkan solusi grup ketersediaan Anda ke SQL Server di Azure VM menggunakan Azure Migrate. Lihat Memigrasikan grup ketersediaan untuk mempelajari selengkapnya.

Prasyarat

Untuk mengotomatisasi penyiapan grup ketersediaan AlwaysOn dengan menggunakan templat mulai cepat, Anda harus memiliki prasyarat berikut:

Izin

Izin berikut ini diperlukan untuk mengonfigurasi grup ketersediaan AlwaysOn dengan menggunakan templat mulai cepat Azure:

  • Akun pengguna domain yang sudah ada yang memiliki izin Membuat Objek Komputer di domain. Sebagai contoh, akun admin domain biasanya memiliki izin yang memadai (misalnya: account@domain.com). Akun ini juga harus menjadi bagian dari grup administrator lokal pada setiap VM untuk membuat kluster.
  • Akun pengguna domain yang mengontrol SQL Server.

Membuat kluster

Setelah komputer virtual SQL Server Anda terdaftar dengan ekstensi Agen infrastruktur sebagai layanan SQL, Anda dapat bergabung dengan komputer virtual SQL Server Anda ke SqlVirtualMachineGroups. Sumber daya ini menentukan metadata kluster failover Windows. Metadata mencakup versi, edisi, nama domain yang sepenuhnya memenuhi syarat, akun Direktori Aktif untuk mengelola kluster dan SQL Server, dan akun penyimpanan sebagai bukti cloud.

Menambahkan komputer virtual SQL Server ke grup sumber daya SqlVirtualMachineGroups membuat bootstrap Layanan Kluster Failover Windows untuk membuat kluster dan kemudian bergabung dengan komputer virtual SQL Server ke kluster tersebut. Langkah ini diotomatisasi dengan templat mulai cepat 101-sql-vm-ag-setup. Anda dapat menerapkannya dengan menggunakan langkah-langkah berikut:

  1. Buka template mulai cepat sql-vm-ag-setup . Lalu, pilih Sebarkan ke Azure untuk membuka templat mulai cepat di portal Microsoft Azure.

  2. Isi bidang yang diperlukan untuk mengonfigurasi metadata untuk kluster failover Windows. Anda dapat membiarkan bidang opsional kosong.

    Tabel berikut ini menunjukkan nilai yang diperlukan untuk templat:

    Bidang Nilai
    Langganan Langganan tempat komputer virtual SQL Server Anda berada.
    Grup sumber daya Grup sumber daya tempat komputer virtual SQL Server Anda berada.
    Nama Kluster failover Nama yang Anda inginkan untuk kluster failover Windows baru Anda.
    Daftar Komputer virtual yang Sudah Ada Komputer virtual SQL Server yang ingin Anda ikuti dalam grup ketersediaan dan menjadi bagian dari kluster baru ini. Pisahkan nilai-nilai ini dengan koma dan spasi (misalnya: SQLVM1, SQLVM2).
    Versi SQL Server Versi SQL Server dari komputer virtual SQL Server Anda. Pilih dari daftar menurun. Saat ini, hanya gambar SQL Server 2016 dan SQL Server 2017 yang didukung.
    Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) yang Sudah Ada FQDN yang sudah ada untuk domain tempat komputer virtual SQL Server Anda berada.
    Akun Domain yang Sudah Ada Akun pengguna domain yang sudah ada yang memiliki izin Membuat Objek Komputer di domain saat CNO dibuat selama penyebaran templat. Sebagai contoh, akun admin domain biasanya memiliki izin yang memadai (misalnya: account@domain.com). Akun ini juga harus menjadi bagian dari grup administrator lokal pada setiap VM untuk membuat kluster.
    Kata Sandi Akun Domain Kata sandi untuk akun pengguna domain yang disebutkan sebelumnya.
    Akun Layanan Sql yang Sudah Ada Akun pengguna domain yang mengontrol layanan SQL Server selama penyebaran grup ketersediaan (misalnya: account@domain.com).
    Kata Sandi Layanan Sql Kata sandi yang digunakan oleh akun pengguna domain yang mengontrol SQL Server.
    Nama Bukti Cloud Akun penyimpanan Azure yang baru yang akan dibuat dan digunakan untuk bukti cloud. Anda dapat mengubah nama ini.
    Lokasi _artifacts Bidang ini diatur secara default dan tidak boleh diubah.
    Token SaS Lokasi _artifacts Bidang ini sengaja dibiarkan kosong.
  3. Jika Anda menyetujui syarat dan ketentuan, pilih kotak centang Saya menyetujui syarat dan ketentuan yang tercantum di atas. Lalu pilih Beli untuk menyelesaikan penyebaran templat mulai cepat.

  4. Untuk memantau penyebaran Anda, pilih penyebaran dari ikon bel Pemberitahuan di banner navigasi atas atau buka Grup Sumber Daya di portal Microsoft Azure. Pilih Penyebaran di bawah Pengaturan, dan pilih penyebaran Microsoft.Template.

Catatan

Informasi masuk yang disediakan selama penyebaran templat disimpan hanya selama penyebaran. Setelah penyebaran selesai, kata sandi tersebut dihapus. Anda akan diminta untuk menyediakannya lagi jika Anda menambahkan lebih banyak komputer virtual SQL Server ke kluster.

Konfigurasikan kuorum

Meskipun merupakan opsi kuorum yang paling andal, saksi disk memerlukan disk bersama Azure yang memberlakukan beberapa batasan pada grup ketersediaan. Dengan demikian, saksi cloud adalah solusi kuorum yang direkomendasikan untuk grup ketersediaan yang menghosting kluster untuk SQL Server di Azure VM.

Jika memiliki jumlah suara yang merata di kluster, konfigurasikan solusi kuorum yang paling sesuai dengan kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Kuorum dengan VM SQL Server.

Validasi kluster

Agar kluster failover didukung oleh Microsoft, kluster harus lulus validasi kluster. Sambungkan ke VM menggunakan metode pilihan Anda, seperti Protokol Desktop Jarak Jauh (RDP) dan validasi agar kluster Anda melewati validasi sebelum melanjutkan lebih lanjut. Kegagalan untuk melakukannya membuat kluster Anda dalam status tidak didukung.

Anda dapat memvalidasi kluster menggunakan Failover Cluster Manager (FCM) atau perintah PowerShell berikut:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

Membuat grup ketersediaan

Buat grup ketersediaan secara manual seperti biasa, dengan menggunakan SQL Server Management Studio, PowerShell, atau T-SQL.

Penting

Jangan buat listener pada saat ini, karena templat mulai cepat 101-sql-vm-aglistener-setup melakukannya secara otomatis di langkah 4.

Membuat load balancer

Catatan

Penyebaran grup ketersediaan ke beberapa subnet tidak memerlukan load balancer. Dalam lingkungan subnet tunggal, pelanggan yang menggunakan SQL Server 2019 CU8 dan yang lebih baru pada Windows 2016 dan yang lebih baru dapat mengganti listener nama jaringan virtual tradisional (VNN) dan Azure Load Balancer dengan pendengar nama jaringan terdistribusi (DNN). Jika Anda ingin menggunakan DNN, lewati langkah-langkah tutorial apa pun yang mengonfigurasi Azure Load Balancer untuk grup ketersediaan Anda.

Pendengar grup ketersediaan Always On memerlukan instans internal Azure Load Balancer. Load balancer internal menyediakan alamat IP "floating" untuk listener grup ketersediaan yang memungkinkan kegagalan dan koneksi ulang yang lebih cepat. Jika komputer virtual SQL Server dalam grup ketersediaan adalah bagian dari set ketersediaan yang sama, Anda dapat menggunakan load balancer Dasar. Jika tidak, Anda perlu menggunakan load balancer Standar.

Penting

Penyeimbang beban internal harus berada di jaringan virtual yang sama dengan instance SQL Server VM.

Anda hanya perlu membuat load balancer internal. Pada langkah 4, templat mulai cepat 101-sql-vm-aglistener-setup menangani sisa konfigurasi (seperti kumpulan ujung belakang, probe kesehatan, dan aturan load-balancing).

  1. Di portal Microsoft Azure, buka grup sumber daya yang berisi komputer virtual SQL Server.

  2. Di grup sumber daya, pilih Tambahkan.

  3. Cari load balancer. Dalam hasil pencarian, pilih Load Balancer, yang diterbitkan oleh Microsoft.

  4. Pada panel Load Balancer , pilih Buat.

  5. Dalam kotak dialog Buat load balancer, konfigurasikan load balancer sebagai berikut:

    Pengaturan Nilai
    Nama Masukkan nama teks yang mewakili load balancer. Misalnya, masukkan sqlLB.
    Jenis Internal: Sebagian besar implementasi menggunakan load balancer internal, yang memungkinkan aplikasi dalam jaringan virtual yang sama untuk terhubung ke grup ketersediaan.
    Eksternal: Memungkinkan aplikasi untuk tersambung ke grup ketersediaan melalui koneksi Internet publik.
    Jaringan virtual Pilih jaringan virtual tempat instans SQL Server berada.
    Subnet Pilih subnet tempat instans SQL Server berada.
    Penetapan alamat IP Statik
    Alamat IP privat Tentukan alamat IP yang tersedia dari subnet.
    Langganan Jika Anda memiliki beberapa langganan, bidang ini mungkin muncul. Pilih langganan yang ingin Anda kaitkan dengan sumber daya ini. Biasanya langganan yang sama dengan semua sumber daya untuk grup ketersediaan.
    Grup sumber daya Pilih grup sumber daya tempat instans SQL Server berada.
    Location Pilih lokasi Azure tempat instans SQL Server berada.
  6. Pilih Buat.

Penting

Sumber daya IP publik untuk setiap SQL Server VM harus memiliki SKU Standar agar kompatibel dengan penyeimbang muatan Standar. Untuk menentukan SKU sumber daya IP publik komputer virtual Anda, buka Grup Sumber Daya, pilih sumber daya Alamat IP Publik Anda untuk komputer virtual SQL Server, dan temukan nilai di bawah SKU di panel Ringkasan.

Membuat listener

Buat listener grup ketersediaan dan konfigurasikan load balancer internal secara otomatis dengan menggunakan templat mulai cepat 101-sql-vm-aglistener-setup. Templat provisikan sumber daya Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/AvailabilityGroupListener. Templat mulai cepat 101-sql-vm-aglistener-setup, melalui Agen infrastruktur sebagai layanan SQL, melakukan tindakan berikut:

  • Membuat sumber daya IP ujung depan baru (berdasarkan nilai alamat IP yang disediakan selama penyebaran) untuk listener.
  • Mengonfigurasi pengaturan jaringan untuk kluster dan load balancer internal.
  • Mengonfigurasi kumpulan ujung belakang untuk load balancer internal, probe kesehatan, dan aturan load-balancing.
  • Membuat listener grup ketersediaan dengan alamat IP dan nama yang diberikan.

Catatan

Anda dapat menggunakan 101-sql-vm-aglistener-setup hanya jika kluster failover Windows dibuat dengan templat 101-sql-vm-ag-setup.

Untuk mengonfigurasi load balancer internal dan membuat listener grup ketersediaan, lakukan hal berikut:

  1. Buka template mulai cepat 101-sql-vm-aglistener-setup dan pilih Sebarkan ke Azure untuk memulai template mulai cepat di portal Azure.

  2. Isi bidang yang diperlukan untuk mengonfigurasi load balancer internal, dan buat listener grup ketersediaan. Anda dapat membiarkan bidang opsional kosong.

    Tabel berikut ini menunjukkan nilai yang diperlukan untuk templat:

    Bidang Nilai
    Grup sumber daya Grup sumber daya tempat komputer virtual SQL Server dan grup ketersediaan Anda berada.
    Nama Kluster Failover yang Sudah Ada Nama kluster tempat komputer virtual SQL Server Anda bergabung.
    Grup Ketersediaan Sql yang Sudah Ada Nama grup ketersediaan tempat komputer virtual SQL Server Anda menjadi bagian darinya.
    Daftar Komputer virtual yang Sudah Ada Nama-nama komputer virtual SQL Server yang merupakan bagian dari grup ketersediaan yang disebutkan sebelumnya. Pisahkan nama-nama ini dengan koma dan spasi (misalnya: SQLVM1, SQLVM2).
    Listener Nama DNS yang ingin Anda tetapkan ke listener. Secara default, templat ini menentukan nama "aglistener," tetapi Anda dapat mengubahnya. Nama tidak boleh melebihi 15 karakter.
    Port Listener Port yang Anda inginkan untuk digunakan listener. Biasanya, port ini harus menjadi default dari 1433. Ini adalah nomor port yang ditentukan templat. Tetapi jika port default Anda telah diubah, port listener harus menggunakan nilai tersebut sebagai gantinya.
    IP Listener Alamat IP yang Anda inginkan untuk digunakan listener. Alamat ini akan dibuat selama penyebaran templat, jadi berikan alamat yang belum digunakan.
    Subnet yang Sudah Ada Nama subnet internal komputer virtual SQL Server Anda (misalnya: default). Anda bisa menentukan nilai ini dengan membuka Grup Sumber Daya, memilih jaringan virtual Anda, memilih Subnet di panel Pengaturan, dan menyalin nilai di bawah Nama.
    Load Balancer Internal yang Sudah Ada Nama load balancer internal yang Anda buat di langkah 3.
    Probe Port Probe port yang Anda inginkan untuk digunakan load balancer internal. Templat menggunakan 59999 secara default, tetapi Anda dapat mengubah nilai ini.
  3. Jika Anda menyetujui syarat dan ketentuan, pilih kotak centang Saya menyetujui syarat dan ketentuan yang tercantum di atas. Pilih Beli untuk menyelesaikan penyebaran templat mulai cepat.

  4. Untuk memantau penyebaran Anda, pilih penyebaran dari ikon bel Pemberitahuan di banner navigasi atas atau buka Grup Sumber Daya di portal Microsoft Azure. Pilih Penyebaran di bawah Pengaturan, dan pilih penyebaran Microsoft.Template.

Catatan

Jika penyebaran Anda gagal di tengah jalan, Anda harus menghapus listener yang baru dibuat secara manual dengan menggunakan PowerShell sebelum Anda menyebarkan ulang templat mulai cepat 101-sql-vm-aglistener-setup.

Menghapus listener

Jika nanti Anda perlu menghapus listener grup ketersediaan yang telah dikonfigurasi templat, Anda harus melalui ekstensi Agen infrastruktur sebagai layanan SQL. Karena pendengar terdaftar melalui ekstensi Agen IaaS SQL, hanya menghapusnya melalui SQL Server Management Studio tidak mencukupi.

Metode terbaik adalah menghapusnya melalui ekstensi Agen infrastruktur sebagai layanan SQL dengan menggunakan cuplikan kode berikut di PowerShell. Melakukan hal tersebut akan menghapus metadata listener grup ketersediaan dari ekstensi Agen infrastruktur sebagai layanan SQL. Hal ini juga secara fisik menghapus pendengar dari grup ketersediaan.

# Remove the availability group listener
# example: Remove-AzResource -ResourceId '/subscriptions/a1a11a11-1a1a-aa11-aa11-1aa1a11aa11a/resourceGroups/SQLAG-RG/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/Cluster/availabilitygrouplisteners/aglistener' -Force
Remove-AzResource -ResourceId '/subscriptions/<SubscriptionID>/resourceGroups/<resource-group-name>/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/<cluster-name>/availabilitygrouplisteners/<listener-name>' -Force

Kesalahan umum

Bagian ini membahas beberapa masalah yang diketahui dan kemungkinan penyelesaiannya.

Listener grup ketersediaan untuk grup ketersediaan '<AG-Name>' sudah ada Grup ketersediaan pilihan yang digunakan dalam templat mulai cepat Azure untuk listener grup ketersediaan sudah berisi listener. Baik itu secara fisik dalam kelompok ketersediaan, atau metadatanya tetap dalam ekstensi Agen infrastruktur sebagai layanan SQL. Hapus listener dengan menggunakan PowerShell sebelum menyebarkan ulang templat mulai cepat 101-sql-vm-aglistener-setup.

Koneksi hanya berfungsi dari replika utama Perilaku ini kemungkinan berasal dari penyebaran templat 101-sql-vm-aglistener-setup yang gagal yang telah meninggalkan konfigurasi load balancer internal menjadi tidak konsisten. Verifikasi bahwa kumpulan ujung belakang mencantumkan set ketersediaan, dan aturan tersebut ada untuk probe kesehatan dan untuk aturan load-balancing. Jika ada yang hilang, konfigurasi load balancer internal menjadi tidak konsisten.

Untuk mengatasi perilaku ini, hapus listener dengan menggunakan PowerShell, hapus load balancer internal melalui portal Microsoft Azure, dan mulai lagi di langkah 3.

BadRequest - Hanya daftar komputer virtual SQL yang dapat diperbarui Kesalahan ini mungkin terjadi saat Anda menyebarkan templat 101-sql-vm-aglistener-setup jika listener dihapus melalui SQL Server Management Studio (SSMS), tetapi tidak dihapus dari ekstensi Agen infrastruktur sebagai layanan SQL. Menghapus listener melalui SQL Server Management Studio tidak menghapus metadata listener dari ekstensi Agen infrastruktur sebagai layanan SQL. Listener harus dihapus dari penyedia sumber melalui PowerShell.

Akun domain tidak ada Kesalahan ini dapat memiliki dua penyebab. Akun domain yang ditentukan tidak ada, atau tidak memiliki data Nama Prinsipal Pengguna (UPN). Templat 101-sql-vm-ag-setup memperkirakan akun domain dalam bentuk nama prinsipal pengguna (yaitu, user@domain.com), tetapi beberapa akun domain mungkin melewatkannya. Ini biasanya terjadi ketika pengguna lokal telah dimigrasikan menjadi akun administrator domain pertama ketika server dipromosikan ke pengontrol domain, atau ketika pengguna dibuat melalui PowerShell.

Verifikasi bahwa akun tersebut ada. Jika ya, Anda mungkin akan menjalani situasi kedua. Untuk mengatasinya, lakukan hal berikut:

  1. Pada pengontrol domain, buka jendela Pengguna Direktori Aktif dan Komputer dari opsi Alat di Manajer Server.

  2. Masuk ke akun dengan memilih Pengguna di panel kiri.

  3. Klik kanan akun, dan pilih Properti.

  4. Pilih tab Akun. Jika kotak Nama log masuk pengguna kosong, ini adalah penyebab kesalahan Anda.

    Blank user account indicates missing UPN

  5. Isi kotak Nama log masuk pengguna agar sesuai dengan nama pengguna, dan pilih domain yang tepat dari daftar menurun.

  6. Pilih Terapkan untuk menyimpan perubahan Anda, dan tutup kotak dialog dengan memilih OK.

Setelah Anda membuat perubahan ini, coba sebarkan templat mulai cepat Azure sekali lagi.

Langkah berikutnya

Untuk mempelajari selengkapnya, lihat: