SQL Server Always ON Availability Group adalah solusi yang dimaksudkan untuk mencapai ketersediaan tinggi dan pemulihan bencana untuk database SQL Server. Kita dapat mengonfigurasi fungsionalitas ini antara penginstalan SQL Server berbasis Windows, penginstalan SQL Server berbasis Linux, dan bahkan antara penginstalan SQL Server berbasis Linux dan Windows secara bersamaan.
Grup Availability terintegrasi erat dengan teknologi cluster dalam bentuk failover otomatis dan perlindungan data dengan mereplikasi data ke replika sekunder masing-masing. Namun, tidak selalu wajib memiliki pengelola sumber daya cluster untuk mengonfigurasi grup ketersediaan.
Untuk mengonfigurasi grup ketersediaan SQL Server, kita memerlukan WSFC – Kluster Kegagalan Server Windows teknologi untuk Windows -instalasi SQL Server dan PACEMAKER untuk Linux -instalasi SQL Server berbasis.
PACEMAKER adalah manajer sumber daya cluster open-source yang dapat kita gunakan untuk mengelola sumber daya dan memastikan ketersediaan sistem, jika terjadi kegagalan pada sistem Linux.
WSFC adalah produk Microsoft yang dikembangkan untuk mendukung persyaratan cluster berbasis Windows.
Saat Anda melihat Grup Ketersediaan yang dikonfigurasi dalam SQL Server untuk kedua jenis OS, tampaknya serupa di SQL Server Management Studio.
Namun, artikel ini menjelaskan Grup Ketersediaan antara SQL Server berbasis Ubuntu Linux pemasangan menggunakan PACEMAKER teknologi cluster jadi saya akan mempertimbangkan konfigurasi ini saja.
Konfigurasi Tipe Cluster
Seperti yang telah saya nyatakan di atas, kami memiliki tiga varian untuk mengonfigurasi Grup Ketersediaan untuk SQL Server, tergantung pada OS:
- antara penginstalan SQL Server berbasis Windows;
- antara penginstalan SQL Server berbasis Linux;
- antara jenis campuran instalasi SQL Server berbasis Windows dan Linux.
Microsoft telah memperkenalkan Cluster_type pengaturan konfigurasi untuk mengidentifikasi dan mengonfigurasi teknologi cluster yang sesuai untuk Grup Ketersediaan. Ini adalah item konfigurasi yang menentukan jenis teknologi cluster yang kami gunakan untuk Availability Groups, apa pun OS yang menjadi dasar instance SQL Server.
Anda dapat mengambil dan memvalidasi konfigurasi tipe Cluster yang ada menggunakan SQL Server dynamic management view (DMV) sys.availability_groups . Ada dua kolom bernama cluster_type dan cluster_type_desc . Kita dapat membaca kolom ini untuk menentukan konfigurasi tipe cluster dari penyiapan Grup Ketersediaan.
Setelan konfigurasi ini memiliki 3 nilai untuk memenuhi persyaratan teknologi cluster untuk setiap varian:
WSFC .Anda harus menggunakan opsi WSFC (Windows server failover cluster) jika Anda memiliki penginstalan SQL Server berbasis Windows. Ini tidak didukung untuk instalasi SQL Server berbasis Linux.
EKSTERNAL . Jika Anda mengonfigurasi Grup Ketersediaan di antara penginstalan SQL Server berbasis Linux, Anda harus menggunakan manajer klaster PACEMAKER dan memilih EKSTERNAL kluster ketik . Mode failover juga harus EKSTERNAL (di WSFC akan menjadi Otomatis).
TIDAK ADA . Jika Anda tidak ingin menggunakan teknologi pengelompokan apa pun untuk Grup Ketersediaan, pilih TIDAK ADA . Opsi ini berlaku jika Anda ingin mengonfigurasi Grup Ketersediaan antara instans SQL Server berbasis Linux dan Windows. Bahkan jika Anda telah mengonfigurasi pengelompokan untuk sistem Anda, setelah Anda menetapkan nilai tipe kluster ke NONE, Grup Ketersediaan tidak akan menggunakan teknologi kluster. Mode failover untuk tipe cluster NONE selalu Manual .
Setelan Baru:Sekunder Tersinkronisasi yang Diperlukan untuk Melakukan
Dimulai dengan SQL Server 2017, Microsoft telah memperkenalkan pengaturan baru yang disebut required_synchronized_secondaries_to_commit . Ini mengaktifkan opsi failover otomatis jika Anda telah mengonfigurasi jenis cluster sebagai EKSTERNAL untuk konfigurasi cluster PACEMAKER.
Nilai pengaturan ini ditetapkan secara default saat Anda mengonfigurasi agen sumber daya SQL Server mssql-server-ha dan buat konfigurasi cluster.
Selain itu, Anda dapat secara manual mengubah nilai untuk kebutuhan Anda dengan menjalankan perintah di bawah ini:
--Run below commands to change value for setting required_synchronized_secondaries_to_commit
--AGResourceName is the name of the resource configured for the Availability group
sudo pcs resource update <AGResourceName> required_synchronized_secondaries_to_commit=<Value>
Catatan:Kami hanya dapat mengubah pengaturan di atas melalui Pacemaker di Linux. Tidak mungkin untuk memodifikasinya menggunakan pernyataan T-SQL untuk penerapan berbasis Linux. Namun, untuk penerapan berbasis Windows, kami dapat mengubah pengaturan ini dengan pernyataan T-SQL.
Di bawah ini adalah kemungkinan nilai untuk required_synchronized_secondaries_to_commit
0 – Artinya replika sekunder tidak perlu disinkronkan dengan replika utama masing-masing. Dengan demikian, tidak mendukung failover otomatis. Anda perlu memulai failover secara manual jika replika utama mati. Penting:ada kemungkinan kehilangan data saat Anda memilih nilai ini untuk konfigurasi.
1 – Ini berarti bahwa setidaknya satu replika sekunder harus dalam status tersinkronisasi untuk mencapai failover otomatis.
2 – Artinya kedua replika sekunder harus disinkronkan dengan replika utama. Failover otomatis didukung.
Replika untuk Berpartisipasi dalam Grup Ketersediaan
Jumlah replika yang dapat berpartisipasi dalam Grup Ketersediaan bergantung pada edisi SQL Server yang diinstal.
- SQL Server Standar edisi hanya mendukung replika dua simpul untuk Grup Ketersediaan bersama dengan replika khusus konfigurasi tambahan.
- SQL Server Perusahaan edisi mendukung hingga sembilan replika – satu replika utama dan delapan replika sekunder.
Karena SQL Server Standard Edition hanya mendukung dua replika (satu replika utama dan satu replika sekunder), Microsoft telah memperkenalkan konsep baru yang disebut replika khusus konfigurasi di SQL Server 2017 CU1 untuk mencapai failover otomatis untuk SQL Server yang berjalan di sistem Linux.
Ada dua opsi desain yang memungkinkan:
- Tiga replika sinkron. Konfigurasi ini hanya dapat digunakan dengan edisi SQL Server Enterprise. Akan ada 3 salinan database ketersediaan Anda. Arsitektur ini memungkinkan untuk semua 3 fungsi skala baca, ketersediaan tinggi, dan perlindungan data.
- Dua replika sinkron dan replika khusus konfigurasi. Anda dapat mengonfigurasi desain ini dengan bantuan edisi SQL Server Standard juga, menjalankan dua replika sinkron pada edisi SQL Server Standard dan 3 replika pada edisi SQL Server Express yang bertindak sebagai replika konfigurasi saja. Ini adalah desain hemat biaya yang mendukung ketersediaan tinggi dengan failover otomatis dan perlindungan database.
Replika dua simpul
Konfigurasi replika dua simpul for Availability Groups adalah opsi penerapan yang sangat populer untuk memastikan ketersediaan database SQL Server yang tinggi. Kami mencapai failover otomatis dengan bantuan teknologi Windows Server Failover Cluster dan saksi berbagi file dalam penerapan SQL Server berbasis Windows.
Berbagi file umumnya digunakan pada node tambahan di WSFC untuk menyediakan konfigurasi kuorum untuk konfigurasi replika dua node. WSFC menyinkronkan semua metadata konfigurasi ke replika dan pada node ketiga atau saksi berbagi file untuk failover yang lancar. Semua arbitrase failover untuk grup ketersediaan SQL Server berbasis Windows terjadi di lapisan WSFC.
Jika kita ingin mencapai failover otomatis untuk penerapan Grup Ketersediaan SQL Server berbasis Linux, konfigurasi di atas tidak akan berfungsi. Itu karena WSFC hanya dapat digunakan untuk instalasi SQL Server berbasis Windows.
Untuk mengatasi batasan ini dan mengaktifkan failover otomatis untuk penerapan dua replika berbasis Linux, Microsoft telah memperkenalkan konsep baru.
Replika khusus konfigurasi
Replika konfigurasi-saja adalah opsi di mana kami menginstal contoh tambahan SQL Server pada node ketiga. Node tersebut akan berfungsi sebagai server saksi untuk konfigurasi replika dua node untuk mendukung failover otomatis. Kami dapat membuat satu replika khusus konfigurasi per Grup Ketersediaan .
Untuk Instans SQL Server berbasis Linux di mana kami menggunakan tipe cluster sebagai EKSTERNAL untuk PACEMAKER, arbitrase failover tidak berfungsi pada lapisan cluster seperti WSFC. Semua arbitrase failover terjadi di lapisan SQL Server karena semua metadata konfigurasi grup ketersediaan disimpan di database master setiap replika.
Microsoft telah memperkenalkan konsep replika konfigurasi-saja untuk menangani kuorum untuk Grup Ketersediaan SQL Server berbasis Linux. Konsep ini tidak menghosting database pengguna apa pun untuk berpartisipasi dalam grup ketersediaan. Ini menyimpan semua informasi konfigurasi Grup Ketersediaan di database master untuk memastikan bahwa semua arbitrase failover terjadi dengan lancar.
Anda dapat menggunakan edisi SQL Server apa pun untuk replika khusus konfigurasi. Bahkan edisi SQL Server Express akan sesuai untuk menghemat biaya lisensi Anda untuk replika ketiga. Ingat, replika konfigurasi-saja tidak akan meng-host database apa pun dalam grup ketersediaan. Dengan demikian, Anda hanya akan memiliki dua salinan database dalam grup ketersediaan.
Secara default, required_synchronized_secondaries_to_commit disetel ke 0 ketika kita menggunakan replika konfigurasi-saja. Kami dapat mengubah nilai ini secara manual menjadi 1 jika diperlukan.
Lihat diagram desain replika sinkron dua simpul dan replika khusus konfigurasi untuk mencapai failover otomatis dan perlindungan data.
Kita bisa melihat ada 3 VM bernama AOAGVM1, AOAGVM2 &AOAGVM3. Semuanya dijalankan oleh sistem Linux Ubuntu, dan SQL Server dikonfigurasi pada ketiga sistem Linux. Basis data ketersediaan dihosting di AOAGVM1 dan AOAGVM2.
AOAGVM1 bertindak sebagai replika utama, sedangkan AOAGVM2 adalah replika sekunder. AOAGVM3 berfungsi sebagai replika konfigurasi saja, yang merupakan edisi SQL Server Express. Tidak ada basis data pengguna yang dihosting di replika ketiga ini.
Cluster alat pacu jantung telah dikonfigurasi di antara ketiga node untuk mendukung teknologi cluster untuk konfigurasi grup ketersediaan berbasis Linux.
Untuk mengonfigurasi atau mengimplementasikan desain di atas, kita perlu melakukan langkah-langkah berikut:
- Instal SQL Server pada tiga sistem Ubuntu (edisi SQL Server Express akan cocok untuk replika khusus konfigurasi).
- Konfigurasikan Grup Ketersediaan di antara tiga node.
- Konfigurasikan Cluster PACEMAKER di antara tiga node.
- Tambahkan atau Integrasikan Grup Ketersediaan sebagai sumber daya dalam grup kluster.
Lihat artikel terkait untuk menyelesaikan langkah 1 (menginstal instans SQL Server pada tiga node).
Nantikan artikel saya berikutnya di mana saya akan menjelaskan proses langkah demi langkah untuk menerapkan desain di atas. Sasaran kami adalah mencapai failover otomatis dan perlindungan data menggunakan replika sinkron 2 simpul dan replika khusus konfigurasi.
Kami akan senang mendengar pemikiran dan tips praktis Anda tentang masalah ini. Jangan ragu untuk membagikannya di bagian Komentar.