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
Instans kluster failover disk bersama dua node SQL Server menyediakan redundansi tingkat server untuk ketersediaan tinggi. Dalam tutorial ini, Anda mempelajari cara membuat instans kluster failover dua node SQL Server di Linux. Langkah-langkah spesifik yang akan Anda selesaikan meliputi:
- Menyiapkan dan mengonfigurasi Linux
- Menginstal dan mengonfigurasi SQL Server
- Mengonfigurasi file host
- Mengonfigurasi penyimpanan bersama dan memindahkan file database
- Menginstal dan mengonfigurasi Pacemaker pada setiap node kluster
- Konfigurasi instans cluster failover
Artikel ini menjelaskan cara membuat instans kluster failover disk bersama (FCI) dua node untuk SQL Server. Artikel ini mencakup instruksi dan contoh skrip untuk Red Hat Enterprise Linux (RHEL). Distribusi Ubuntu mirip dengan RHEL sehingga contoh skrip biasanya juga akan berfungsi pada Ubuntu.
Untuk informasi konseptual, lihat Instans Kluster Failover - SQL Server di Linux.
Prasyarat
Untuk menyelesaikan skenario end-to-end berikut, Anda memerlukan dua komputer untuk menyebarkan kluster dua node dan server lain untuk penyimpanan. Langkah-langkah di bawah ini menguraikan bagaimana server ini akan dikonfigurasi.
Menyiapkan dan mengonfigurasi Linux
Langkah pertama adalah mengonfigurasi sistem operasi pada node kluster. Pada setiap simpul dalam kluster, konfigurasikan distribusi linux. Gunakan distribusi dan versi yang sama pada kedua simpul. Gunakan salah satu atau yang lain dari distribusi berikut:
- RHEL dengan langganan yang valid untuk add-on HA
Menginstal dan mengonfigurasi SQL Server
Instal dan siapkan SQL Server pada kedua simpul. Untuk petunjuk terperinci, lihat Panduan penginstalan untuk SQL Server di Linux.
Menunjuk satu simpul sebagai primer dan yang lain sebagai sekunder, untuk tujuan konfigurasi. Gunakan istilah-istilah ini untuk panduan berikut ini.
Pada simpul sekunder, hentikan dan nonaktifkan SQL Server. Contoh berikut menghentikan dan menonaktifkan SQL Server:
sudo systemctl stop mssql-server sudo systemctl disable mssql-serverCatatan
Pada waktu penyiapan, Kunci Master Server dihasilkan untuk instans SQL Server dan ditempatkan di
var/opt/mssql/secrets/machine-key. Di Linux, SQL Server, selalu berjalan sebagai akun lokal yang disebutmssql. Karena ini adalah akun lokal, identitasnya tidak dibagikan di seluruh simpul. Oleh karena itu, Anda perlu menyalin kunci enkripsi dari simpul utama ke setiap simpul sekunder sehingga setiap akun lokalmssqldapat mengaksesnya untuk mendekripsi Kunci Master Server.Pada simpul utama, buat login SQL Server untuk Pacemaker dan berikan izin masuk untuk menjalankan
sp_server_diagnostics. Pacemaker menggunakan akun ini untuk memverifikasi simpul mana yang menjalankan SQL Server.sudo systemctl start mssql-serverSambungkan ke database SQL Server
masterdengansaakun dan jalankan hal berikut:USE [master]; GO CREATE LOGIN [<loginName>] WITH PASSWORD = N'<password>'; ALTER SERVER ROLE [sysadmin] ADD MEMBER [<loginName>];Perhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Atau, Anda dapat mengatur izin pada tingkat yang lebih terperinci. Login Pacemaker mengharuskan
VIEW SERVER STATEuntuk mengkueri status kesehatan dengansp_server_diagnostics, setupadmin, dan ALTER ANY LINKED SERVER untuk memperbarui nama instans FCI dengan nama sumber daya, dengan menjalankansp_dropserverdansp_addserver.Pada simpul utama, hentikan dan nonaktifkan SQL Server.
Mengonfigurasi file host
Pada setiap node kluster, konfigurasikan file host. File host harus menyertakan alamat IP dan nama setiap node kluster.
Periksa alamat IP untuk setiap simpul. Skrip berikut menunjukkan alamat IP simpul Anda saat ini.
sudo ip addr showAtur nama komputer pada setiap simpul. Berikan setiap node nama unik yang terdiri dari 15 karakter atau kurang. Atur nama komputer dengan menambahkannya ke
/etc/hosts. Skrip berikut memungkinkan Anda mengedit/etc/hostsdenganvi.sudo vi /etc/hostsContoh berikut menunjukkan
/etc/hostsdengan penambahan untuk dua simpul bernamasqlfcivm1dansqlfcivm2.127.0.0.1 localhost localhost4 localhost4.localdomain4 ::1 localhost localhost6 localhost6.localdomain6 10.128.18.128 sqlfcivm1 10.128.16.77 sqlfcivm2
Mengonfigurasi penyimpanan dan memindahkan file database
Anda perlu menyediakan penyimpanan yang dapat diakses oleh kedua simpul. Anda dapat menggunakan iSCSI, NFS, atau SMB. Konfigurasikan penyimpanan, sajikan penyimpanan ke node kluster, lalu pindahkan file database ke penyimpanan baru. Artikel berikut menjelaskan langkah-langkah untuk setiap jenis penyimpanan:
- Konfigurasi instans kluster failover - iSCSI - SQL Server di Linux
- Mengonfigurasi instans kluster failover - NFS - SQL Server di Linux
- Mengonfigurasi instans kluster failover untuk penyimpanan berbasis SMB - SQL Server di Linux
Menginstal dan mengonfigurasi Pacemaker pada setiap node kluster
Pada kedua node kluster, buat file untuk menyimpan nama pengguna dan kata sandi SQL Server untuk login Pacemaker.
Perintah berikut membuat dan mengisi file ini:
sudo touch /var/opt/mssql/secrets/passwd sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd sudo echo '<loginPassword>' >> /var/opt/mssql/secrets/passwd sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 600 /var/opt/mssql/secrets/passwdPada kedua node kluster, buka port firewall Pacemaker. Untuk membuka port ini dengan
firewalld, jalankan perintah berikut:sudo firewall-cmd --permanent --add-service=high-availability sudo firewall-cmd --reloadJika Anda menggunakan firewall lain yang tidak memiliki konfigurasi ketersediaan tinggi bawaan, port berikut perlu dibuka agar Pacemaker dapat berkomunikasi dengan simpul lain dalam kluster:
- TCP: Port 2224, 3121, 21064
- UDP: Port 5405
Instal paket Pacemaker pada setiap simpul.
sudo yum install pacemaker pcs fence-agents-all resource-agentsAtur kata sandi untuk pengguna default yang dibuat saat menginstal paket Pacemaker dan Corosync. Gunakan kata sandi yang sama pada kedua simpul.
sudo passwd haclusterAktifkan dan mulai layanan
pcsdserta Pacemaker. Ini akan memungkinkan simpul untuk bergabung kembali dengan kluster setelah reboot. Jalankan perintah berikut pada kedua simpul.sudo systemctl enable pcsd sudo systemctl start pcsd sudo systemctl enable pacemakerInstal agen sumber daya FCI untuk SQL Server. Jalankan perintah berikut di kedua node.
sudo yum install mssql-server-ha
Konfigurasi instans cluster failover
FCI akan dibuat dalam grup sumber daya. Ini sedikit lebih mudah karena grup sumber daya meringankan kebutuhan akan batasan. Namun, tambahkan sumber daya ke dalam grup sumber daya dalam urutan yang harus mereka mulai. Urutan yang harus mereka mulai adalah:
- Sumber daya penyimpanan
- Sumber daya jaringan
- Sumber daya aplikasi
Contoh ini membuat FCI dalam grup NewLinFCIGrp. Nama grup sumber daya harus unik dari sumber daya apa pun yang dibuat di Pacemaker.
Buat sumber daya disk. Anda tidak mendapatkan respons kembali jika tidak ada masalah. Cara membuat sumber daya disk tergantung pada jenis penyimpanan. Bagian berikut menunjukkan contoh untuk setiap jenis penyimpanan (iSCSI, NFS, dan SMB). Gunakan contoh yang berlaku untuk jenis penyimpanan untuk penyimpanan berkluster Anda.
sudo pcs resource create <iSCSIDiskResourceName> Filesystem device="/dev/<VolumeGroupName>/<LogicalVolumeName>" directory="<FolderToMountiSCSIDisk>" fstype="<FileSystemType>" --group RGName-
<iSCSIDIskResourceName>adalah nama sumber daya yang terkait dengan disk iSCSI -
<VolumeGroupName>adalah nama grup volume -
<LogicalVolumeName>adalah nama volume logis yang dibuat -
<FolderToMountiSCSIDIsk>adalah folder untuk memasang disk (untuk basis data sistem dan lokasi default, itu akan menjadi/var/opt/mssql/data) -
<FileSystemType>akan menjadi ext4 atau XFS, tergantung pada bagaimana hal-hal diformat dan apa yang didukung distribusi.
-
Buat alamat IP yang akan digunakan oleh FCI. Anda tidak mendapatkan respons kembali jika tidak ada masalah.
sudo pcs resource create <IPResourceName> ocf:heartbeat:IPaddr2 ip=<IPAddress> nic=<NetworkCard> cidr_netmask=<NetMask> --group <RGName>-
<IPResourceName>adalah nama sumber daya yang terkait dengan alamat IP -
<IPAddress>adalah alamat IP untuk FCI -
<NetworkCard>adalah kartu jaringan yang terkait dengan subnet (yaitu, eth0) -
<NetMask>adalah netmask dari subnet (yakni, 24) -
<RGName>adalah nama grup sumber daya
-
Buat sumber daya FCI. Anda tidak mendapatkan respons kembali jika tidak ada masalah.
sudo pcs resource create FCIResourceName ocf:mssql:fci op defaults timeout=60s --group RGName-
<FCIResourceName>bukan hanya nama sumber daya, tetapi juga nama yang mudah diingat yang terkait dengan FCI. Inilah yang digunakan pengguna dan aplikasi untuk terhubung. -
<RGName>adalah nama grup sumber daya.
-
Jalankan perintah
sudo pcs resource. FCI harus online.Sambungkan ke FCI dengan SSMS atau sqlcmd menggunakan DNS/nama sumber daya FCI.
Terbitkan pernyataan
SELECT @@SERVERNAME. Ini harus mengembalikan nama FCI.Terbitkan pernyataan
SELECT SERVERPROPERTY('ComputerNamePhysicalNetBIOS'). Ini harus mengembalikan nama node tempat FCI berjalan.Alihkan FCI secara manual ke simpul lain. Lihat instruksi di bawah Mengoperasikan instans kluster failover - SQL Server di Linux.
Terakhir, kembalikan FCI ke node asli dan hapus kendala kolokasi.
Ringkasan
Dalam tutorial ini, Anda menyelesaikan tugas-tugas berikut.
- Menyiapkan dan mengonfigurasi Linux
- Menginstal dan mengonfigurasi SQL Server
- Mengonfigurasi file host
- Mengonfigurasi penyimpanan bersama dan memindahkan file database
- Menginstal dan mengonfigurasi Pacemaker pada setiap node kluster
- Konfigurasi instans cluster failover