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
Panduan ini menyediakan instruksi untuk membuat kluster disk bersama dua node untuk SQL Server di SUSE Linux Enterprise Server (SLES). Lapisan pengklusteran didasarkan pada SUSE High Availability Extension (HAE) yang dibangun di atas Pacemaker.
Catatan
Mulai SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) tidak didukung.
Untuk informasi selengkapnya tentang konfigurasi kluster, opsi agen sumber daya, manajemen, praktik terbaik, dan rekomendasi, lihat Ekstensi Ketersediaan Tinggi SUSE Linux Enterprise 12 SP5.
Prasyarat
Untuk menyelesaikan skenario end-to-end berikut, Anda memerlukan dua komputer untuk menyebarkan kluster dua node dan server lain untuk mengonfigurasi berbagi NFS. Langkah-langkah berikut menguraikan cara mengonfigurasi server ini.
Menyiapkan dan mengonfigurasi sistem operasi pada setiap node kluster
Langkah pertama adalah mengonfigurasi sistem operasi pada node kluster. Untuk panduan ini, gunakan SLES dengan langganan yang valid untuk add-on HA.
Menginstal dan mengonfigurasi SQL Server pada setiap node kluster
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 (SMK) 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. Anda harus menyalin kunci enkripsi dari simpul utama ke setiap simpul sekunder sehingga setiap akun lokalmssqldapat mengaksesnya untuk mendekripsi SMK.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 skrip berikut:USE [master]; GO CREATE LOGIN [<loginName>] with PASSWORD = N'<password>'; GRANT VIEW SERVER STATE TO <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.
Pada simpul utama, hentikan dan nonaktifkan SQL Server.
Ikuti petunjuk dalam dokumentasi SUSE untuk mengonfigurasi dan memperbarui file host untuk setiap node kluster. File
hostsharus menyertakan alamat IP dan nama setiap node kluster.Untuk memeriksa alamat IP simpul saat ini, jalankan:
sudo ip addr showAtur nama komputer pada setiap simpul. Berikan nama unik untuk setiap node yang terdiri dari 15 karakter atau kurang. Atur nama komputer dengan menambahkannya ke
/etc/hostnamemenggunakan YAST atau secara manual.Contoh berikut menunjukkan
/etc/hostsdengan penambahan untuk dua simpul bernamaSLES1danSLES2.127.0.0.1 localhost 10.128.18.128 SLES1 10.128.16.77 SLES2Semua node kluster harus memiliki akses SSH tanpa kata sandi satu sama lain. Jika tidak, alat seperti
hb_report,crm_report, dan Hawk's History Explorer hanya dapat mengumpulkan data dari simpul lokal. Jika Anda menggunakan port SSH non-standar, gunakan-Xopsi (lihat Persyaratan dan Rekomendasi Lainnya). Misalnya, jika port SSH Anda adalah 3479, panggilcrm_reportdengan:crm_report -X "-p 3479" [...]Untuk informasi selengkapnya, lihat Panduan Administrasi.
Di bagian berikutnya, Anda mengonfigurasi penyimpanan bersama dan memindahkan file database Anda ke penyimpanan tersebut.
Mengonfigurasi penyimpanan bersama dan memindahkan file database
Anda dapat menggunakan berbagai solusi untuk menyediakan penyimpanan bersama. Panduan langkah demi langkah ini menjelaskan konfigurasi penyimpanan bersama dengan NFS. Ikuti praktik terbaik dan gunakan Kerberos untuk mengamankan NFS:
Jika Anda tidak mengikuti panduan ini, siapa pun yang dapat mengakses jaringan Anda dan memalsukan alamat IP simpul SQL dapat mengakses file data Anda. Seperti biasa, lakukan pemodelan ancaman pada sistem Anda sebelum Anda menggunakannya dalam produksi.
Opsi penyimpanan lainnya adalah menggunakan berbagi file SMB:
Mengonfigurasi server NFS
Untuk mengonfigurasi server NFS, lihat langkah-langkah berikut dalam dokumentasi SUSE: Mengonfigurasi NFS Server.
Mengonfigurasi semua node kluster untuk menyambungkan ke penyimpanan bersama NFS
Sebelum mengonfigurasi NFS klien untuk memasang jalur file database SQL Server untuk menunjuk ke lokasi penyimpanan bersama, pastikan Anda menyimpan file database ke lokasi sementara sehingga Anda dapat menyalinnya nanti ke berbagi:
Simpan file database ke lokasi sementara hanya pada simpul utama. Skrip berikut membuat direktori sementara baru, menyalin file database ke direktori baru, dan menghapus file database lama. Saat SQL Server berjalan sebagai pengguna
mssqllokal, Anda perlu memastikan bahwa setelah transfer data ke folder berbagi yang terpasang, pengguna lokal memiliki akses baca-tulis ke folder berbagi tersebut.su mssql mkdir /var/opt/mssql/tmp cp /var/opt/mssql/data/* /var/opt/mssql/tmp rm /var/opt/mssql/data/* exitKonfigurasikan klien NFS pada semua node kluster:
Catatan
Untuk praktik terbaik dan rekomendasi SUSE mengenai penyimpanan NFS dengan Ketersediaan Tinggi, lihat Penyimpanan NFS dengan Ketersediaan Tinggi dengan DRBD dan Pacemaker.
Pada setiap node, pastikan bahwa SQL Server berhasil memulai dengan jalur file yang baru. Pada titik ini, hanya satu simpul yang harus menjalankan SQL Server pada satu waktu. Keduanya tidak dapat berjalan secara bersamaan karena keduanya mencoba mengakses file data secara bersamaan.
Untuk mencegah SQL Server dimulai pada kedua simpul secara bersamaan, gunakan sumber daya kluster Sistem File untuk memastikan bahwa saham hanya dipasang oleh satu simpul pada satu waktu.
Perintah berikut memulai SQL Server, memeriksa status, lalu menghentikan SQL Server.
sudo systemctl start mssql-server sudo systemctl status mssql-server sudo systemctl stop mssql-server
Pada titik ini, kedua instans SQL Server dikonfigurasi untuk dijalankan dengan file database pada penyimpanan bersama. Langkah selanjutnya adalah mengonfigurasi SQL Server untuk Pacemaker.
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 '<password>' >> /var/opt/mssql/secrets/passwd sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 600 /var/opt/mssql/secrets/passwdPerhatian
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.
Semua node kluster harus mengakses satu sama lain melalui SSH. Alat seperti
hb_reportataucrm_report(untuk pemecahan masalah) dan Hawk's History Explorer memerlukan akses SSH tanpa kata sandi antara simpul. Jika tidak, mereka hanya dapat mengumpulkan data dari simpul saat ini. Jika Anda menggunakan port SSH non-standar, gunakan-Xopsi (lihatmanhalaman). Misalnya, jika port SSH Anda adalah 3479, panggilhb_reportdengan:crm_report -X "-p 3479" [...]Untuk informasi selengkapnya, lihat Persyaratan dan Rekomendasi Sistem dalam dokumentasi SUSE.
Pasang ekstensi Tinggi Ketersediaan. Untuk menginstal ekstensi, ikuti langkah-langkah dalam artikel SUSE berikut ini:
Instal agen sumber daya FCI untuk SQL Server. Jalankan perintah berikut pada kedua simpul:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2017.repo sudo zypper --gpg-auto-import-keys refresh sudo zypper install mssql-server-haSiapkan simpul pertama secara otomatis. Langkah selanjutnya adalah menyiapkan kluster satu node yang sedang berjalan dengan mengonfigurasi simpul pertama, SLES1. Ikuti instruksi di artikel SUSE, Menyiapkan Simpul Pertama.
Setelah selesai, periksa status kluster dengan
crm status:crm statusIni menunjukkan bahwa satu simpul, SLES1, telah dikonfigurasi.
Tambahkan simpul ke kluster yang ada. Selanjutnya, gabungkan simpul SLES2 ke kluster. Ikuti instruksi di artikel SUSE, Menambahkan Simpul yang Kedua.
Setelah selesai, periksa status kluster dengan status crm. Jika Anda berhasil menambahkan simpul kedua, outputnya terlihat mirip dengan contoh berikut:
2 nodes configured 1 resource configured Online: [ SLES1 SLES2 ] Full list of resources: admin_addr (ocf::heartbeat:IPaddr2): Started SLES1Catatan
admin_addr adalah sumber daya kluster IP virtual yang Anda konfigurasikan selama penyiapan kluster satu node awal.
Prosedur penghapusan. Jika Anda perlu menghapus node dari kluster, gunakan skrip bootstrap ha-cluster-remove . Untuk informasi selengkapnya, lihat Gambaran Umum Skrip Bootstrap.
Mengonfigurasi sumber daya kluster untuk SQL Server
Langkah-langkah berikut menjelaskan cara mengonfigurasi sumber daya kluster untuk SQL Server. Kustomisasi dua pengaturan berikut:
- Nama Sumber Daya SQL Server: Nama untuk sumber daya SQL Server berklaster.
-
Nilai Batas Waktu: Nilai batas waktu adalah jumlah waktu kluster menunggu saat sumber daya dibawa online. Untuk SQL Server, nilai ini mewakili waktu yang Anda harapkan diperlukan oleh SQL Server untuk mengaktifkan database
master.
Perbarui nilai dalam skrip berikut untuk lingkungan Anda. Jalankan skrip pada satu simpul untuk mengonfigurasi dan memulai layanan berkluster.
sudo crm configure
primitive <sqlServerResourceName> ocf:mssql:fci op start timeout=<timeout_in_seconds>
colocation <constraintName> inf: <virtualIPResourceName> <sqlServerResourceName>
show
commit
exit
Misalnya, skrip berikut membuat sumber daya kluster SQL Server bernama mssqlha.
sudo crm configure
primitive mssqlha ocf:mssql:fci op start timeout=60s
colocation admin_addr_mssqlha inf: admin_addr mssqlha
show
commit
exit
Setelah Anda menerapkan konfigurasi, SQL Server dimulai pada simpul yang sama dengan sumber daya IP virtual.
Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Sumber Daya Kluster (Baris Perintah).
Verifikasi bahwa SQL Server dimulai
Untuk memverifikasi bahwa SQL Server dimulai, jalankan perintah status crm:
crm status
Contoh berikut menunjukkan hasil ketika Pacemaker berhasil dimulai sebagai sumber daya terkluster.
2 nodes configured
2 resources configured
Online: [ SLES1 SLES2 ]
Full list of resources:
admin_addr (ocf::heartbeat:IPaddr2): Started SLES1
mssqlha (ocf::mssql:fci): Started SLES1
Mengelola sumber daya kluster
Untuk mengelola sumber daya kluster Anda, lihat artikel SUSE berikut ini: Mengelola Sumber Daya Kluster
Failover manual
Meskipun sumber daya dikonfigurasi untuk secara otomatis melakukan failover atau migrasi ke node kluster lain pada kegagalan perangkat keras atau perangkat lunak, Anda juga dapat memindahkannya secara manual menggunakan GUI Pacemaker atau baris perintah.
Gunakan perintah migrate untuk tugas ini. Misalnya, untuk memigrasikan sumber daya SQL ke node kluster bernama SLES2, jalankan:
crm resource
migrate mssqlha SLES2