Konfigurasikan Selalu Di Ketersediaan Grup di SQL Server

Dalam artikel ini, kita akan melihat instalasi langkah demi langkah dan konfigurasi grup ketersediaan. Selalu aktif di SQL Server di Windows Server 2019, pertimbangkan skenario failover dan sejumlah masalah terkait lainnya.

Grup Ketersediaan Selalu Aktif"Atau"Grup Ketersediaan Selalu Aktif“Adalah teknologi untuk ketersediaan tinggi di SQL Server. Selalu Aktif muncul dalam rilis Microsoft SQL Server 2012.

Konten:

  • Fitur Grup Ketersediaan Selalu Aktif di SQL Server
  • Mengkonfigurasi Windows Server Failover Cluster untuk Selalu Aktif
  • Konfigurasi Selalu Aktif di MS SQL Server
  • Selalu Aktif: pemeriksaan kinerja, failover otomatis

Fitur Grup Ketersediaan Selalu Aktif di SQL Server

Untuk Apa Grup Ketersediaan SQL Server Dapat Digunakan?

  • Ketersediaan tinggi MS SQL dan failover otomatis;
  • Load balancing pilih query antara node (replika sekunder dapat dibaca);
  • Cadangkan dari replika sekunder;
  • Redundansi data. Setiap replika menyimpan salinan database grup ketersediaan.

Selalu Aktif berjalan di platform Windows Server Failover Cluster (WSFC). WSFC memonitor node yang berpartisipasi dalam kelompok ketersediaan dan dapat secara otomatis gagal melalui pemungutan suara antar node. Dimulai dengan MS SQL Server 2017, kesempatan untuk menggunakan Always On tanpa WSFC, termasuk pada Linux sistem. Saat membangun cluster Linux, Anda dapat menggunakan Pacemaker sebagai alternatif untuk WSFC.

Selalu Aktif tersedia di Standar edisi, tetapi dengan beberapa batasan:

  • Batasi 2 replika (primer dan sekunder);
  • Replika sekunder tidak dapat digunakan untuk akses baca;
  • Replika sekunder tidak dapat digunakan untuk cadangan MS SQL;
  • Hanya mendukung 1 database per grup ketersediaan.

Di editor Perusahaan tidak ada batasan.

Fitur-Fitur Perizinan MS SQL Server.

Kami akan memahami terminologi:

  • Grup Ketersediaan Selalu ON - Ini adalah kumpulan replika dan basis data.
  • Replika - Ini adalah contoh dari SQL Server di grup ketersediaan. Replika mungkin yang utama (utama) dan sekunder (sekunder) Setiap replika mungkin berisi satu atau lebih basis data.

Selalu Aktif didasarkan pada WSFC. Setiap simpul grup ketersediaan harus menjadi anggota kluster failover Windows. Setiap contoh SQL Server dapat memiliki beberapa grup ketersediaan. Setiap grup ketersediaan dapat memiliki hingga 8 replika sekunder.

Jika replika gagal, klaster akan memilih replika primer baru dan Selalu Aktif akan mentransfer salah satu replika sekunder ke yang primer. Sejak saat bekerja dengan Selalu Aktif, pengguna terhubung ke pendengar klaster (atau Pendengar, yaitu, alamat IP khusus kluster dan nama DNS yang sesuai), kemampuan untuk menulis permintaan sepenuhnya dikembalikan. Pendengar juga bertanggung jawab untuk menyeimbangkan kueri pemilihan antara replika sekunder..

Mengkonfigurasi Windows Server Failover Cluster untuk Selalu Aktif

Pertama-tama, kita perlu mengkonfigurasi kluster failover pada semua node yang akan berpartisipasi dalam Always On.

Konfigurasi saya:

  • 2 mesin virtual di Hyper-V dengan Windows Server 2019;
  • 2 contoh dari SQL Server 2019 edisi Enterprise;
  • Hostname dari node adalah testnode1 dan testnode2. Nama instance simpul1 dan simpul2.

Di Server Manager, tambahkan peran Pengelompokan gagal, atau instal komponen menggunakan PowerShell:

Instal-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

Instalasi otomatis, Anda belum perlu mengkonfigurasi apa pun. Setelah instalasi selesai, luncurkan snap-in. Manajer kluster gagal (FailoverClusters.SnapInHelper.msc).

Buat cluster baru.

Tambahkan nama server yang akan berpartisipasi dalam cluster.

Kemudian wisaya menawarkan untuk lulus tes. Jangan menolak, pilih item pertama.

Tentukan nama cluster, pilih jaringan dan alamat IP cluster. Nama kluster akan secara otomatis muncul dalam DNS, Anda tidak perlu mendaftar secara khusus. Dalam kasus saya, nama cluster - ClusterAG.

Kami menghapus cheboks “Tambahkan semua penyimpanan yang memenuhi syarat ke cluster", Seperti kita dapat menambahkan disk nanti.

Hanya ada 2 node di cluster, jadi Anda perlu mengkonfigurasi Kuorum klaster. Kuorum sebuah kluster adalah "suara yang menentukan." Misalnya, jika salah satu node cluster menjadi tidak tersedia, cluster perlu menentukan node mana yang benar-benar tersedia dan dapat saling melihat. Kuorum diperlukan untuk konsistensi kluster (Cluster -> Tindakan Lainnya -> Mengkonfigurasi Pengaturan Kuorum Cluster).

Pilih jenis saksi kuorum.

Kemudian pilih jenis saksi - folder jaringan (saksi berbagi file).

Tentukan jalur UNC ke folder jaringan. Anda perlu membuat direktori ini sendiri, dan itu harus di server yang tidak terlibat dalam gugus..

Saat menyiapkan cluster, Anda mungkin menerima kesalahan:

Ada kesalahan saat mengonfigurasi saksi berbagi file. Tidak dapat menyimpan perubahan properti untuk File Share Witness. Sistem tidak dapat menemukan file yang ditentukan.

Kemungkinan besar ini berarti bahwa pengguna dari mana kluster bekerja tidak memiliki hak untuk folder jaringan ini. Secara default, cluster berjalan sebagai pengguna lokal. Anda bisa memberikan hak ke folder ini ke semua komputer di cluster, atau mengubah akun untuk layanan cluster dan memberikan haknya.

Ini melengkapi konfigurasi kluster dasar. Pastikan bahwa DNS cluster terdaftar dan memberikan IP yang benar

Konfigurasi Selalu Aktif di MS SQL Server

Setelah instalasi standar instance SQL Server, Anda dapat mengaktifkan dan mengkonfigurasi Grup Ketersediaan Selalu Ada. Mereka harus dimasukkan dalam Manajer Konfigurasi SQL Server di properti misalnya. Seperti yang dapat Anda lihat di tangkapan layar, SQL Server telah menentukan bahwa itu adalah anggota cluster WSFC. Masukkan kotak centang “Aktifkan Selalu Di Ketersediaan Grup”Dan restart layanan instance MSSQL. Ikuti langkah yang sama pada instance kedua.

Kiat.. Sebelum mengkonfigurasi Selalu Aktif, pastikan bahwa layanan SQL Server tidak berjalan di bawah akun sistem lokal. Disarankan agar Anda menggunakan Akun Layanan Dikelola Grup atau akun domain biasa. Jika tidak, Anda tidak dapat menyelesaikan pengaturan Selalu Hidup..

Di SQL Server Management Studio, klik pada "Selalu pada ketersediaan tinggi”Dan jalankan wizard konfigurasi grup ketersediaan (Wizard Grup Ketersediaan Baru).

Tentukan nama Grup Ketersediaan Selalu Aktif dan pilih "Deteksi Kesehatan Tingkat Basis Data" Dengan opsi ini, Always On akan dapat menentukan kapan database berada dalam kondisi tidak sehat..

Pilih database SQL Server yang akan berpartisipasi dalam Grup Ketersediaan Selalu Aktif..

Klik "Tambahkan Replika ..." dan sambungkan ke server SQL kedua. Dengan cara ini Anda dapat menambahkan hingga 8 server.

  • Peran awal - Peran replika pada saat kelompok itu dibuat. Mungkin Pratama dan Sekunder;
  • Kegagalan otomatis - jika database menjadi tidak tersedia, Always On mentransfer peran utama ke replika lain. Tandai kotak centang;
  • Mode ketersediaan - mungkin memilih Komit sinkron atau Komit asinkron. Ketika Anda memilih mode sinkron, transaksi yang tiba di replika utama akan dikirim ke semua replika sekunder lainnya dengan mode sinkron. Replika primer menyelesaikan transaksi hanya setelah replika menulis transaksi ke disk. Ini menghilangkan kemungkinan kehilangan data jika replika primer gagal. Dalam mode asinkron, replika utama segera mencatat perubahan, tanpa menunggu respons dari replika sekunder;
  • Dapat dibaca sekunder - parameter yang menentukan kemampuan untuk membuat kueri pemilihan ke replika sekunder. Jika ya, klien bahkan dengan koneksi tanpa ApplicationIntent = readonly bisa mendapatkan akses read-only;
  • Diperlukan sekunder tersinkronisasi untuk melakukan - Jumlah replika sekunder yang disinkronkan untuk menyelesaikan transaksi. Hal ini diperlukan untuk mengatur tergantung pada jumlah replika, saya akan menempatkan 1. Perlu diingat bahwa jika replika disinkronkan sekunder menjadi kurang dari jumlah yang ditentukan (misalnya, selama kecelakaan), basis data grup ketersediaan akan menjadi tidak dapat diakses bahkan untuk membaca.

Titik akhir tidak menyentuh.

Tab Preferensi cadangan Anda dapat memilih di mana cadangan akan dibuat. Kami membiarkan semuanya sebagai default - Lebih suka sekunder.

Tentukan nama pendengar grup akses, port, dan alamat IP.

Tab Routing Hanya Baca biarkan tidak berubah.

Kami memilih bagaimana replika akan disinkronkan. Saya meninggalkan titik pertama - sinkronisasi otomatis (Penyemaian otomatis).

Setelah itu, pengaturan Anda harus divalidasi. Jika tidak ada kesalahan, klik Selesai untuk menerapkan perubahan..

Dalam kasus saya, semua tes berhasil, tetapi setelah instalasi pada langkah Hasil, panduan melaporkan kesalahan saat membuat pendengar grup ketersediaan. Log cluster memiliki kesalahan ini:

Sumber daya nama jaringan cluster gagal membuat objek komputer terkait di domain.

Ini berarti bahwa cluster tidak memiliki hak yang cukup untuk membuat pendengar. Dokumentasi mengatakan bahwa cukup memberi izin untuk membuat objek dari tipe "komputer" ke objek cluster Anda. Cara termudah untuk melakukan ini adalah dengan mendelegasikan otoritas ke AD (atau, opsi cepat tapi buruk adalah untuk sementara menambahkan objek CLUSTERAG $ ke grup Admin Domain).

Ketika mendiagnosis masalah dengan Selalu AKTIF dan kinerja SQL rendah di grup ketersediaan, selain alat diagnostik SQL Server standar, Anda harus hati-hati melihat log cluster Windows.

Karena grup aksesibilitas yang saya buat, tetapi pendengar tidak, saya menambahkannya secara manual. Kami memanggil menu konteks pada grup ketersediaan dan klik Tambahkan pendengar...

Tentukan alamat IP, port dan nama DNS pendengar.

Verifikasi bahwa Pendengar muncul di bagian Pendengar yang Tersedia dari grup Selalu Aktif..

Ini melengkapi pengaturan dasar dari Grup Ketersediaan Selalu Aktif..

Selalu Aktif: pemeriksaan kinerja, failover otomatis

Lihatlah Dashboard Dashboard.

Semuanya baik-baik saja, grup ketersediaan dibuat dan berfungsi..

Mari kita coba mentransfer peran utama ke instance simpul2 dalam mode manual. Klik kanan pada grup ketersediaan dan pilih Kegagalan.

Perlu memperhatikan item tersebut Kesiapan gagal. Nilai Tidak ada kehilangan data berarti bahwa kehilangan data selama masa transisi tidak termasuk.

Menghubungkan ke node2.

Klik Selesai.

Verifikasi bahwa node2 telah menjadi replika utama dalam grup ketersediaan (Mesin Virtual Utama).

Pastikan pendengar berfungsi sebagaimana mestinya. Di SSMS, tentukan nama DNS pendengar dan port, dipisahkan dengan koma: ag1-listener-1.1445

Mari kita menyisipkan, memilih, dan memperbarui kueri ke basis data SQL Server kami.

Sekarang mari kita periksa failover otomatis dari replika utama. Hentikan saja proses sqlservr.exe di TESTNODE2.

Memeriksa status grup ketersediaan pada simpul yang tersisa - TESTNODE1 \ NODE1.

Cluster secara otomatis mentransfer status replika testnode1 \ node1 ke primer, karena testnode2 \ node2 menjadi tidak tersedia.

Kami akan memeriksa keadaan pendengar, karena koneksi klien akan menuju ke sana.

Dalam kasus saya, saya berhasil terhubung ke pendengar, tetapi terjadi kesalahan saat mengakses database

Tidak dapat mengakses database 'TestDatabase' karena tidak memiliki kuorum node untuk ketersediaan tinggi. Coba operasinya lagi nanti.

Kesalahan ini terjadi karena "Diperlukan sekunder tersinkronisasi untuk melakukan" Sejak saat menyiapkan, kami menetapkan nilai ini ke 1, Selalu Aktif mencegah kita menghubungkan ke database, karena kita hanya memiliki satu replika utama.

Tetapkan nilai ini ke 0 dan coba lagi.

Nyalakan testnode2 dan periksa status grup.

Status replika Primer tetap dengan testnode1, dan testnode2 menjadi replika sekunder. Data yang kami ubah menjadi testnode1 saat testnode2 dimatikan berhasil disinkronkan setelah menyalakan mesin.

Ini adalah akhir dari pengujian. Kami memastikan semuanya berfungsi dengan benar dan jika terjadi kegagalan kritis, data akan tetap tersedia untuk akses baca / tulis.

Selain Selalu Aktif, SQL Server memiliki beberapa teknologi ketersediaan tinggi lainnya..

Grup Ketersediaan Selalu Aktif cukup mudah untuk dikonfigurasi. Jika Anda dihadapkan dengan tugas membangun solusi toleran kesalahan berdasarkan SQL Server, maka grup ketersediaan akan melakukan tugas ini dengan sempurna.

Dengan rilis SQL Server 2017 dan SQL Server 2019, SQL Server Management Studio 18.x memperkenalkan pengaturan Always On yang sebelumnya hanya tersedia melalui T-SQL, jadi disarankan agar Anda menggunakan versi terbaru SSMS.