Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di Linux
Tutorial ini menjelaskan cara mengonfigurasi grup ketersediaan SQL Server dengan HPE Serviceguard untuk Linux, yang berjalan di komputer virtual (VM) lokal atau di Komputer Virtual berbasis Azure.
Untuk gambaran umum kluster HPE Serviceguard, lihat Kluster HPE Serviceguard.
Catatan
Microsoft mendukung pergerakan data, grup ketersediaan, dan komponen SQL Server. Hubungi HPE untuk dukungan yang terkait dengan dokumentasi kluster HPE Serviceguard dan manajemen kuorum.
Tutorial ini terdiri dari tugas-tugas berikut:
- Instal SQL Server pada ketiga VM yang Anda rencanakan untuk disertakan dalam grup ketersediaan.
- Instal HPE Serviceguard pada VM.
- Buat kluster HPE Serviceguard.
- Buat load balancer di portal Microsoft Azure.
- Buat grup ketersediaan dan tambahkan database sampel ke grup ketersediaan.
- Sebarkan beban kerja SQL Server pada grup ketersediaan melalui manajer kluster Serviceguard.
- Lakukan failover otomatis dan gabungkan simpul kembali ke kluster.
Prasyarat
Di Azure, buat tiga VM berbasis Linux (Virtual Machines). Untuk membuat komputer virtual berbasis Linux di Azure, lihat Mulai Cepat: Membuat komputer virtual Linux di portal Azure. Saat menyebarkan VM, pastikan untuk menggunakan distribusi Linux yang didukung HPE Serviceguard. Anda juga dapat menyebarkan VM secara lokal di lingkungan lokal jika Mau.
Untuk contoh distribusi yang didukung, lihat HPE Serviceguard untuk Linux. Tanyakan kepada HPE untuk informasi tentang dukungan untuk lingkungan cloud publik.
Instruksi dalam tutorial ini divalidasi terhadap HPE Serviceguard untuk Linux. Edisi uji coba tersedia untuk diunduh dari HPE.
File database SQL Server pada pemasangan volume logis (LVM) untuk ketiga komputer virtual. Lihat Panduan mulai cepat untuk Serviceguard Linux (HPE).
Pastikan Anda memiliki runtime OpenJDK Java yang terinstal pada VM. IBM Java SDK tidak didukung.
Instal SQL Server
Pada ketiga VM, ikuti salah satu langkah di bagian berikut berdasarkan distribusi Linux yang Anda pilih untuk tutorial ini. Langkah-langkah menginstal SQL Server dan alat.
Red Hat Enterprise Linux (RHEL)
SUSE Linux Enterprise Server (SLES)
Catatan
Mulai SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) tidak didukung.
Ketika Anda menyelesaikan langkah ini, Anda memiliki layanan dan alat SQL Server yang diinstal pada ketiga VM yang akan berpartisipasi dalam grup ketersediaan.
Menginstal HPE Serviceguard pada VM
Dalam langkah ini, instal HPE Serviceguard untuk Linux pada ketiga VM. Tabel berikut menjelaskan peran yang dimainkan setiap server dalam kluster.
| Jumlah komputer virtual | Peran HPE Serviceguard | Peran replika grup ketersediaan Microsoft SQL Server |
|---|---|---|
| 1 | Node kluster HPE Serviceguard | Replika utama |
| 1 atau lebih | Node kluster HPE Serviceguard | Replika sekunder |
| 1 | Server kuorum HPE Serviceguard | Replika konfigurasi saja |
Catatan
Lihat video ini dari HPE, yang menjelaskan cara menginstal dan mengonfigurasi kluster HPE Serviceguard melalui UI.
Untuk menginstal Serviceguard, gunakan cminstaller metode . Instruksi spesifik tersedia di tautan berikut:
- Instal Serviceguard untuk Linux pada dua simpul. Lihat bagian Install_serviceguard_using_cminstaller.
- Instal server kuorum Serviceguard pada simpul ketiga. Lihat bagian Install_QS_from_the_ISO.
Setelah Anda menyelesaikan penginstalan kluster HPE Serviceguard, Anda dapat mengaktifkan portal manajemen kluster pada port TCP 5522 pada simpul replika utama. Langkah-langkah berikut menambahkan aturan ke firewall untuk mengizinkan 5522. Perintah berikut adalah untuk Red Hat Enterprise Linux (RHEL). Anda perlu menjalankan perintah serupa untuk distribusi lain:
sudo firewall-cmd --zone=public --add-port=5522/tcp --permanent
sudo firewall-cmd --reload
Membuat kluster HPE Serviceguard
Ikuti instruksi ini untuk mengonfigurasi dan membuat kluster HPE Serviceguard. Dalam langkah ini, Anda juga mengonfigurasi server kuorum.
- Konfigurasikan server kuorum Serviceguard pada simpul ketiga. Lihat bagian Configure_QS .
- Konfigurasikan dan buat kluster Serviceguard pada dua node lainnya. Lihat bagian Configure_and_create_Cluster .
Catatan
Anda dapat melewati penginstalan manual kluster dan kuorum HPE Serviceguard Anda, dengan menambahkan ekstensi HPE Serviceguard untuk Linux (SGLX) dari Azure VM Marketplace saat membuat VM.
Membuat grup ketersediaan dan menambahkan database sampel
Dalam langkah ini, Anda membuat grup ketersediaan dengan dua atau lebih replika sinkron dan satu replika konfigurasi saja, yang memberikan perlindungan data dan mungkin juga menyediakan ketersediaan tinggi. Diagram berikut mewakili arsitektur ini:
Replikasi data pengguna yang sinkron ke replika sekunder. Ini juga mencakup metadata konfigurasi grup ketersediaan.
Replikasi sinkron metadata konfigurasi grup ketersediaan. Ini tidak menyertakan data pengguna.
Untuk informasi selengkapnya, lihat Ketersediaan tinggi dan perlindungan data untuk konfigurasi grup ketersediaan.
Untuk membuat grup ketersediaan, ikuti langkah-langkah berikut:
- Aktifkan grup ketersediaan dan mulai ulang mssql-server pada semua VM termasuk replika Konfigurasi saja.
-
AlwaysOn_healthMengaktifkan sesi peristiwa (opsional) - Membuat sertifikat pada VM utama
- Membuat sertifikat di server sekunder
- Membuat titik akhir pencerminan database pada replika
- Membuat grup ketersediaan
- Menggabungkan replika sekunder
- Menambahkan database ke grup ketersediaan
Mengaktifkan grup ketersediaan dan memulai ulang mssql-server
Aktifkan grup ketersediaan pada semua simpul yang menghosting instans SQL Server. Kemudian hidupkan ulang mssql-server. Jalankan skrip berikut pada ketiga simpul:
sudo /opt/mssql/bin/mssql-conf
set hadr.hadrenabled 1 sudo systemctl restart mssql-server
AlwaysOn_health Mengaktifkan sesi peristiwa (opsional)
Secara opsional, aktifkan peristiwa diperluas untuk grup ketersediaan Always On guna membantu diagnosis akar penyebab saat Anda memecahkan masalah grup ketersediaan. Jalankan perintah berikut pada setiap instans SQL Server:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH (STARTUP_STATE = ON);
GO
Membuat sertifikat pada VM utama
Skrip Transact-SQL berikut membuat kunci master dan sertifikat. Kemudian mencadangkan sertifikat dan mengamankan file dengan kunci privat. Perbarui skrip dengan kata sandi yang kuat. Sambungkan ke instans SQL Server utama dan jalankan skrip Transact-SQL berikut:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
ENCRYPTION BY PASSWORD = '<private-key-password>'
);
Pada titik ini, replika SQL Server utama memiliki sertifikat di /var/opt/mssql/data/dbm_certificate.cer dan kunci privat di var/opt/mssql/data/dbm_certificate.pvk. Salin kedua file ini ke lokasi yang sama di semua server yang menghosting replika ketersediaan. Untuk mengakses file-file ini, gunakan mssql pengguna, atau berikan izin kepada mssql pengguna.
Misalnya, pada server sumber, perintah berikut menyalin file ke komputer target.
node2 Ganti nilai dengan nama host yang menjalankan instans SQL Server sekunder. Salin sertifikat pada replika konfigurasi saja dan jalankan perintah berikut pada simpul tersebut.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
Sekarang pada VM sekunder yang menjalankan instans sekunder dan konfigurasi hanya replika SQL Server, jalankan perintah berikut sehingga mssql pengguna dapat memiliki sertifikat yang disalin:
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
Membuat sertifikat di server sekunder
Skrip Transact-SQL berikut membuat kunci master dan sertifikat dari cadangan yang Anda buat di replika SQL Server utama. Perbarui skrip dengan kata sandi yang kuat. Kata sandi dekripsi adalah kata sandi yang sama dengan yang Anda gunakan untuk membuat .pvk file di langkah sebelumnya. Untuk membuat sertifikat, jalankan skrip berikut di semua server sekunder kecuali replika khusus konfigurasi:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
DECRYPTION BY PASSWORD = '<private-key-password>'
);
Dalam contoh sebelumnya, ganti <private-key-password> dengan kata sandi yang sama dengan yang Anda gunakan saat membuat sertifikat pada replika utama.
Membuat titik akhir pencerminan database pada replika
Pada replika utama dan sekunder, jalankan perintah berikut untuk membuat titik akhir pencerminan database:
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Catatan
5022 adalah port standar yang digunakan untuk titik akhir pencerminan database, tetapi Anda dapat mengubahnya ke port yang tersedia.
Pada replika yang hanya untuk konfigurasi, buat titik akhir pencerminan database menggunakan perintah berikut. Atur nilai untuk Role ke WITNESS, yang merupakan peran yang diperlukan untuk replika khusus konfigurasi.
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Membuat grup ketersediaan
Pada instans replika utama, jalankan perintah berikut. Perintah ini membuat grup ketersediaan bernama ag1, yang memiliki EXTERNAL cluster_type dan memberikan izin membuat database ke grup ketersediaan.
Sebelum Anda menjalankan skrip berikut, ganti <node1>, <node2>, dan <node3> (replika khusus konfigurasi) dengan nama VM yang Anda buat di langkah sebelumnya.
CREATE AVAILABILITY GROUP [ag1]
WITH (CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<node1>' WITH (
ENDPOINT_URL = N'tcp://<node1>:<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node2>' WITH (
ENDPOINT_URL = N'tcp://<node2>:\<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node3>' WITH (
ENDPOINT_URL = N'tcp://<node3>:<5022>',
AVAILABILITY_MODE = CONFIGURATION_ONLY
);
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
Menggabungkan replika sekunder
Jalankan perintah berikut pada semua replika sekunder. Perintah ini menggabungkan replika sekunder ke ag1 grup ketersediaan dengan replika utama, dan menyediakan akses database buat ke ag1 grup ketersediaan.
ALTER AVAILABILITY GROUP [ag1]
JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
GO
Menambahkan database ke Grup Ketersediaan
Sambungkan ke replika utama dan jalankan perintah T-SQL berikut ke:
Buat database sampel bernama
db1, yang akan Anda tambahkan ke grup ketersediaan.CREATE DATABASE [db1]; GOAtur model pemulihan database ke penuh. Semua database dalam grup ketersediaan memerlukan model pemulihan penuh.
ALTER DATABASE [db1] SET RECOVERY FULL;Cadangkan databasenya. Database memerlukan setidaknya satu cadangan penuh sebelum Anda dapat menambahkannya ke grup ketersediaan.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Atur database ke model pemulihan penuh.
ALTER DATABASE [db1] SET RECOVERY FULL;Cadangkan database ke disk.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Tambahkan database
db1ke grup ketersediaan.ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Setelah menyelesaikan langkah-langkah sebelumnya, Anda akan melihat ag1 grup ketersediaan. Ketiga VM ditambahkan sebagai replika dengan satu replika utama, satu replika sekunder, dan satu replika khusus konfigurasi.
ag1 berisi satu database.
Menyebarkan beban kerja grup ketersediaan SQL Server (HPE Cluster Manager)
Di HPE Serviceguard, sebarkan beban kerja SQL Server pada grup ketersediaan melalui UI manajer kluster Serviceguard.
Sebarkan beban kerja grup ketersediaan dan aktifkan ketersediaan tinggi (HA), pemulihan bencana (DR) melalui kluster Serviceguard menggunakan antarmuka pengguna grafis manajer Serviceguard. Lihat bagian Melindungi Microsoft SQL Server di Linux untuk Grup Ketersediaan AlwaysOn.
Membuat load balancer di portal Microsoft Azure
Untuk penyebaran di Azure Cloud, HPE Serviceguard untuk Linux memerlukan penyeimbang beban untuk mengaktifkan koneksi klien dengan replika utama, untuk menggantikan alamat IP tradisional.
Di portal Azure, buka grup sumber daya yang berisi node kluster Serviceguard atau komputer virtual.
Di grup sumber daya, pilih Tambahkan.
Cari "load balancer" lalu, di hasil pencarian, pilih Load Balancer yang diterbitkan oleh Microsoft.
Pada panel Load Balancer , pilih Buat.
Konfigurasikan load balancer sebagai berikut:
Pengaturan Nilai Nama Nama load balancer. Contohnya, SQLAvailabilityGroupLB.Jenis Internasional SKU Dasar atau Standar Jaringan virtual Jaringan virtual yang digunakan untuk replika VM Subnet Subnet tempat instans SQL Server dihosting Penetapan Alamat IP Statis Alamat IP privat Membuat IP privat dalam subnet Langganan Pilih langganan yang bersangkutan Grup Sumber Daya Pilih grup sumber daya yang bersangkutan Tempat Pilih lokasi yang sama dengan simpul SQL
Mengonfigurasi kumpulan backend
Kumpulan backend adalah alamat dari dua instans tempat kluster Serviceguard dikonfigurasi.
- Di grup sumber daya Anda, pilih load balancer yang Anda buat.
- Buka Pengaturan>Kumpulan backend, dan pilih Tambahkan untuk membuat kumpulan alamat backend.
- Pada Tambahkan kumpulan backend, di bawah Nama, ketik nama untuk kumpulan backend.
- Di bawahTerkait dengan, pilih Komputer virtual.
- Pilih komputer virtual di lingkungan, dan kaitkan alamat IP yang sesuai dengan setiap pilihan.
- Pilih Tambahkan.
Membuat penyelidikan
Pemeriksaan menentukan bagaimana Azure memverifikasi node kluster Serviceguard mana yang merupakan replika utama. Azure memeriksa layanan berdasarkan alamat IP pada port yang Anda tentukan saat Anda membuat probe.
Pada panel Pengaturan load balancer, pilih Pemeriksaan kesehatan.
Pada panel Pemeriksaan kesehatan, pilih Tambahkan.
Gunakan nilai berikut untuk mengonfigurasi probe:
Pengaturan Nilai Nama Nama yang mewakili pemeriksaan. Contohnya, SQLAGPrimaryReplicaProbe.Protokol PKT Port Anda bisa menggunakan port yang tersedia. Misalnya, 59999. Interval 5 Ambang tidak sehat 2 Pilih OK.
Masuk ke semua komputer virtual Anda, dan buka port probe menggunakan perintah berikut:
sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent sudo firewall-cmd --reload
Azure membuat pemeriksaan lalu menggunakannya untuk menguji node Serviceguard tempat instans replika utama grup ketersediaan berjalan. Ingatlah port yang Anda konfigurasi (59999), yang diperlukan untuk menyebarkan AG di kluster Serviceguard.
Mengatur aturan load balancing
Aturan penyeimbangan beban mengonfigurasi bagaimana load balancer merutekan lalu lintas ke node Serviceguard, yang merupakan replika utama dalam kluster. Untuk load balancer ini, aktifkan pengembalian server langsung, karena hanya salah satu node kluster Serviceguard yang dapat menjadi replika utama sekaligus.
Pada Pengaturan load balancer, pilih Aturan load balancing.
Pada Aturan penyeimbangan beban, pilih Tambahkan.
Konfigurasikan aturan penyeimbangan beban menggunakan pengaturan berikut:
Pengaturan Nilai Nama Nama yang mewakili aturan penyeimbangan beban. Contohnya, SQLAGPrimaryReplicaListener.Protokol PKT Port 1433 Port ujung belakang 1433. Nilai ini diabaikan karena aturan ini menggunakan IP Mengambang. Probe Gunakan nama probe yang Anda buat untuk load balancer ini. Kegigihan sesi Tidak Waktu jeda habis (menit) 4 IP Float Diaktifkan Pilih OK.
Azure mengonfigurasi aturan penyeimbangan beban. Sekarang load balancer dikonfigurasi untuk merutekan lalu lintas ke node Serviceguard yang merupakan instans replika utama dalam kluster.
Perhatikan alamat IP frontend load balancer LbReadWriteIP, yang perlu Anda tempatkan AG di kluster Serviceguard.
Pada titik ini, grup sumber daya memiliki load balancer yang terhubung ke semua node Serviceguard. Load balancer juga berisi alamat IP bagi klien untuk terhubung ke instans replika utama di kluster, sehingga komputer apa pun yang merupakan replika utama dapat menanggapi permintaan untuk grup ketersediaan.
Lakukan failover otomatis dan gabungkan simpul kembali ke kluster
Untuk pengujian failover otomatis, matikan replika utama. Tindakan ini mereplikasi tidak tersedianya simpul utama secara tiba-tiba. Tindakan yang diharapkan adalah:
Manajer kluster mempromosikan salah satu replika sekunder dalam grup ketersediaan ke primer.
Replika utama yang gagal secara otomatis bergabung dengan kluster setelah dimulai ulang. Manajer kluster mempromosikannya ke replika sekunder.
Untuk HPE Serviceguard, lihat Menguji penyiapan untuk kesiapan failover.