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.
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 di bawah ini menguraikan bagaimana server ini akan dikonfigurasi.
Menyiapkan dan mengonfigurasi sistem operasi pada setiap node kluster
Langkah pertama adalah mengonfigurasi sistem operasi pada node kluster. Untuk panduan langkah demi langkah 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 dihasilkan untuk instans SQL Server dan ditempatkan di
/var/opt/mssql/secrets/machine-key. Di Linux, SQL Server selalu berjalan sebagai akun lokal yang disebut mssql. 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 mssql lokal dapat 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>' 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 dapat 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 (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 akan mengonfigurasi penyimpanan bersama dan memindahkan file database Anda ke penyimpanan tersebut.
Mengonfigurasi penyimpanan bersama dan memindahkan file database
Ada berbagai solusi untuk menyediakan penyimpanan bersama. Panduan langkah demi langkah ini menjelaskan konfigurasi penyimpanan bersama dengan NFS. Sebaiknya ikuti praktik terbaik berikut 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 akan dapat mengakses file data Anda. Seperti biasa, pastikan bahwa Anda melakukan pemodelan ancaman sistem Anda sebelum menggunakannya dalam lingkungan 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 untuk dapat menyalinnya nanti di 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 lokal mssql, Anda perlu memastikan setelah transfer data ke share yang dipasang, pengguna lokal memiliki akses baca-tulis ke share 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
Anda harus mengikuti praktik dan rekomendasi terbaik SUSE mengenai penyimpanan NFS dengan Ketersediaan Tinggi: Penyimpanan NFS yang Sangat Tersedia dengan DRBD dan Pacemaker.
Validasi bahwa SQL Server berhasil dimulai dengan jalur file baru. Lakukan ini pada setiap node. Pada titik ini hanya satu simpul yang harus menjalankan SQL Server pada satu waktu. Keduanya tidak dapat berjalan pada saat yang sama karena keduanya akan mencoba mengakses file data secara bersamaan (untuk menghindari memulai SQL Server secara tidak sengaja pada kedua node, gunakan sumber daya kluster Sistem File untuk memastikan penyimpanan tidak dipasang dua kali oleh node yang berbeda). 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 dapat mengakses satu sama lain melalui SSH. Alat seperti hb_report atau crm_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 opsi -X (lihat halaman man). Misalnya, jika port SSH Anda adalah 3479, panggil hb_report dengan:
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 statusHarus 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 mirip dengan yang berikut ini:
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 dikonfigurasi 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. Ada dua pengaturan yang perlu Anda sesuaikan.
- 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, ini adalah waktu yang Anda perkirakan akan digunakan SQL Server untuk membawa database
masteronline.
Perbarui nilai dari skrip berikut untuk lingkungan Anda. Jalankan 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 konfigurasi diterapkan, SQL Server akan 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 simpul kluster lain jika terjadi kegagalan perangkat keras atau perangkat lunak, Anda juga dapat memindahkan sumber daya secara manual ke node lain di kluster menggunakan GUI Pacemaker atau baris perintah.
Gunakan perintah migrasi untuk tugas ini. Misalnya, untuk memigrasikan sumber daya SQL ke node kluster bernama SLES2, jalankan:
crm resource
migrate mssqlha SLES2