Bagikan melalui


Dasar-dasar ketersediaan SQL Server untuk penyebaran Linux

Berlaku untuk: SQL Server - Linux

Dimulai dengan SQL Server 2017 (14.x), SQL Server didukung di Linux dan Windows. Seperti penyebaran SQL Server berbasis Windows, database dan instans SQL Server harus sangat tersedia di bawah Linux. Artikel ini membahas aspek teknis perencanaan dan penyebaran database dan instans SQL Server berbasis Linux yang sangat tersedia, serta beberapa perbedaan dari penginstalan berbasis Windows. Karena SQL Server mungkin baru untuk profesional Linux, dan Linux mungkin baru untuk profesional SQL Server, artikel ini terkadang memperkenalkan konsep yang mungkin akrab bagi beberapa orang dan tidak dikenal oleh orang lain.

Opsi ketersediaan SQL Server untuk penyebaran Linux

Selain pencadangan dan pemulihan, tiga fitur ketersediaan yang sama tersedia di Linux seperti untuk penyebaran berbasis Windows:

Di Windows, FCI selalu memerlukan kluster failover Windows Server (WSFC) yang mendasar. Tergantung pada skenario penyebaran, AG biasanya memerlukan WSFC yang mendasarinya, dengan pengecualian menjadi varian None baru di SQL Server 2017 (14.x). WSFC tidak ada di Linux. Implementasi pengklusteran di Linux dibahas di Pacemaker untuk grup ketersediaan dan instans kluster failover di Linux.

Primer Linux cepat

Meskipun beberapa penginstalan Linux mungkin diinstal dengan antarmuka, sebagian besar tidak, yang berarti bahwa hampir semua yang ada di lapisan sistem operasi dilakukan melalui baris perintah. Istilah umum untuk baris perintah ini di dunia Linux adalah shell bash.

Di Linux, banyak perintah perlu dijalankan dengan hak istimewa yang ditinggikan, seperti banyak hal yang perlu dilakukan di Windows Server sebagai administrator. Ada dua metode utama untuk dijalankan dengan hak istimewa yang ditinggikan:

  1. Jalankan dalam konteks pengguna yang tepat. Untuk mengubah ke pengguna lain, gunakan perintah su. Jika su dijalankan sendiri tanpa nama pengguna, selama Anda tahu kata sandi, Anda berada dalam shell sebagai root.

  2. Cara yang lebih umum dan sadar keamanan untuk menjalankan hal-hal adalah dengan menggunakan sudo sebelum mengeksekusi apa pun. Banyak contoh dalam artikel ini menggunakan sudo.

Beberapa perintah umum, yang masing-masing memiliki berbagai sakelar dan opsi yang dapat diteliti secara online:

  • cd - ubah direktori
  • chmod - mengubah izin file atau direktori
  • chown - mengubah kepemilikan file atau direktori
  • ls - tampilkan isi direktori
  • mkdir - membuat folder (direktori) pada drive
  • mv - memindahkan file dari satu lokasi ke lokasi lain
  • ps - menunjukkan semua proses kerja
  • rm - menghapus file secara lokal di server
  • rmdir - hapus folder (direktori)
  • systemctl - mulai, hentikan, atau aktifkan layanan
  • Perintah editor teks. Di Linux, ada berbagai opsi editor teks, seperti vi dan emacs.

Tugas umum untuk konfigurasi ketersediaan SQL Server di Linux

Bagian ini mencakup tugas yang umum untuk semua penyebaran SQL Server berbasis Linux.

Pastikan file dapat disalin

Menyalin file dari satu server ke server lain adalah tugas yang dapat dilakukan siapa pun yang menggunakan SQL Server di Linux. Tugas ini sangat penting untuk konfigurasi AG.

Hal-hal seperti masalah izin dapat ada di Linux dan pada penginstalan berbasis Windows. Namun, mereka yang terbiasa dengan cara menyalin dari server ke server di Windows mungkin tidak terbiasa dengan bagaimana hal itu dilakukan di Linux. Metode umum adalah menggunakan utilitas scpbaris perintah , yang merupakan singkatan dari salinan aman. Di balik layar, scp menggunakan OpenSSH. SSH adalah singkatan dari secure shell. Tergantung pada distribusi Linux, OpenSSH itu sendiri mungkin tidak diinstal. Jika tidak, OpenSSH perlu diinstal terlebih dahulu. Untuk informasi selengkapnya tentang mengonfigurasi OpenSSH, lihat informasi di tautan berikut untuk setiap distribusi:

Saat menggunakan scp, Anda harus memberikan kredensial server jika bukan sumber atau tujuan. Misalnya, menggunakan

scp MyAGCert.cer username@servername:/folder/subfolder

menyalin file MyAGCert.cer ke folder yang ditentukan pada server lain. Anda harus memiliki izin - dan mungkin kepemilikan - file untuk menyalinnya, jadi chown mungkin juga perlu digunakan sebelum menyalin. Demikian pula, di sisi penerimaan, pengguna yang tepat membutuhkan akses untuk memanipulasi file. Misalnya, untuk memulihkan file sertifikat tersebut mssql , pengguna harus dapat mengaksesnya.

Samba, yang merupakan varian Linux dari blok pesan server (SMB), juga dapat digunakan untuk membuat berbagi yang diakses oleh jalur UNC seperti \\SERVERNAME\SHARE. Untuk informasi selengkapnya tentang mengonfigurasi Samba, lihat informasi di tautan berikut untuk setiap distribusi:

Berbagi SMB berbasis Windows juga dapat digunakan; Berbagi SMB tidak perlu berbasis Linux, selama bagian klien Samba dikonfigurasi dengan benar di server Linux yang menghosting SQL Server dan berbagi memiliki akses yang tepat. Bagi mereka yang berada di lingkungan campuran, ini akan menjadi salah satu cara untuk menggunakan infrastruktur yang ada untuk penyebaran SQL Server berbasis Linux.

Satu hal yang penting adalah versi Samba yang disebarkan harus sesuai dengan SMB 3.0. Ketika dukungan SMB ditambahkan di SQL Server 2012 (11.x), diperlukan semua berbagi untuk mendukung SMB 3.0. Jika menggunakan Samba untuk berbagi dan bukan Windows Server, berbagi berbasis Samba harus menggunakan Samba 4.0 atau yang lebih baru, dan idealnya 4.3 atau yang lebih baru, yang mendukung SMB 3.1.1. Sumber informasi yang baik tentang SMB dan Linux adalah SMB3 di Samba.

Terakhir, menggunakan berbagi sistem file jaringan (NFS) adalah opsi. Menggunakan NFS bukanlah opsi pada penyebaran SQL Server berbasis Windows, dan hanya dapat digunakan untuk penyebaran berbasis Linux.

Mengonfigurasi firewall

Mirip dengan Windows, distribusi Linux memiliki firewall bawaan. Jika perusahaan Anda menggunakan firewall eksternal ke server, menonaktifkan firewall di Linux mungkin dapat diterima. Namun, terlepas dari di mana firewall diaktifkan, port perlu dibuka. Tabel berikut men dokumen port umum yang diperlukan untuk penyebaran SQL Server yang sangat tersedia di Linux.

Nomor Port Tipe Deskripsi
111 TCP/UDP NFS- rpcbind/sunrpc
135 TCP Samba (jika digunakan) - Pemeta Titik Akhir
137 UDP Samba (jika digunakan) - Layanan Nama NetBIOS
138 UDP Samba (jika digunakan) - Datagram NetBIOS
139 TCP Samba (jika digunakan) - Sesi NetBIOS
445 TCP Samba (jika digunakan) - SMB melalui TCP
1433 TCP SQL Server - port default; jika diinginkan, dapat berubah dengan mssql-conf set network.tcpport <portnumber>
2049 TCP, UDP NFS (jika digunakan)
2224 TCP Pacemaker - digunakan oleh pcsd
3121 TCP Pacemaker - Diperlukan jika ada simpul Pacemaker Remote
3260 TCP Inisiator iSCSI (jika digunakan) - Dapat diubah dalam /etc/iscsi/iscsid.config (RHEL), tetapi harus cocok dengan port Target iSCSI
5022 TCP SQL Server - port default yang digunakan untuk titik akhir AG; dapat diubah saat membuat titik akhir
5403 TCP Pacemaker
5404 UDP Pacemaker - Diperlukan oleh Corosync jika menggunakan UDP multicast
5405 UDP Pacemaker - Diperlukan oleh Corosync
21064 TCP Pacemaker - Diperlukan oleh sumber daya menggunakan DLM
Variabel TCP Port titik akhir AG; defaultnya adalah 5022
Variabel TCP NFS - port untuk LOCKD_TCPPORT (ditemukan di /etc/sysconfig/nfs RHEL)
Variabel UDP NFS - port untuk LOCKD_UDPPORT (ditemukan di /etc/sysconfig/nfs RHEL)
Variabel TCP/UDP NFS - port untuk MOUNTD_PORT (ditemukan di /etc/sysconfig/nfs RHEL)
Variabel TCP/UDP NFS - port untuk STATD_PORT (ditemukan di /etc/sysconfig/nfs RHEL)

Untuk port tambahan yang mungkin digunakan oleh Samba,lihat Penggunaan Port Samba.

Sebaliknya, nama layanan di bawah Linux juga dapat ditambahkan sebagai pengecualian alih-alih port; misalnya, high-availability untuk Pacemaker. Lihat distribusi Anda untuk nama-nama jika ini adalah arah yang ingin Anda kejar. Misalnya, pada RHEL perintah yang akan ditambahkan di Pacemaker adalah

sudo firewall-cmd --permanent --add-service=high-availability

Dokumentasi firewall

Menginstal paket SQL Server untuk ketersediaan

Pada penginstalan SQL Server berbasis Windows, beberapa komponen diinstal bahkan dalam penginstalan mesin dasar, sementara yang lain tidak. Di bawah Linux, hanya mesin SQL Server yang diinstal sebagai bagian dari proses penginstalan. Yang lainnya adalah opsional. Untuk instans SQL Server yang sangat tersedia di bawah Linux, dua paket harus diinstal dengan SQL Server:

  • SQL Server Agent (mssql-server-agent)
  • paket ketersediaan tinggi (HA) (mssql-server-ha)

Meskipun SQL Server Agent bersifat opsional secara teknis, ini adalah penjadwal SQL Server untuk pekerjaan dan diperlukan oleh pengiriman log, sehingga penginstalan disarankan.

Pada SQL Server 2017 (14.x) dengan CU 4 dan versi yang lebih baru, SQL Server Agent disertakan dalam paket Mesin Database, tetapi Anda masih perlu mengaktifkannya. Pada penginstalan berbasis Windows, SQL Server Agent tidak bersifat opsional.

Catatan

Bagi mereka yang baru menggunakan SQL Server, SQL Server Agent adalah penjadwal pekerjaan bawaan SQL Server. Anda dapat menjadwalkan hal-hal seperti pencadangan dan pemeliharaan SQL Server lainnya. Tidak seperti penginstalan SQL Server berbasis Windows di mana SQL Server Agent adalah layanan yang sama sekali berbeda, di Linux, SQL Server Agent berjalan dalam konteks SQL Server itu sendiri.

Saat AG atau FCI dikonfigurasi pada konfigurasi berbasis Windows, AG atau FCI akan mengetahui kluster. Kesadaran kluster berarti bahwa SQL Server memiliki DLL sumber daya tertentu yang diketahui WSFC (sqagtres.dll dan sqsrvres.dll untuk FCI, hadrres.dll untuk AG) dan digunakan oleh WSFC untuk memastikan bahwa fungsionalitas terkluster SQL Server aktif, berjalan, dan berfungsi dengan baik. Karena pengklusteran eksternal tidak hanya untuk SQL Server tetapi Linux itu sendiri, Microsoft harus mengkodekan dll sumber daya yang setara untuk penyebaran AG dan FCI berbasis Linux. Ini adalah mssql-server-ha paket, juga dikenal sebagai agen sumber daya SQL Server untuk Pacemaker. Untuk menginstal mssql-server-ha paket, lihat Menyebarkan kluster Pacemaker untuk SQL Server di Linux.

Paket opsional lainnya untuk SQL Server di Linux, SQL Server Full-Text Search (mssql-server-fts) dan SQL Server Integration Services (mssql-server-is), tidak diperlukan untuk ketersediaan tinggi, baik untuk FCI atau AG.

Mitra ketersediaan tinggi dan pemulihan bencana SQL Server

Untuk menyediakan ketersediaan tinggi dan pemulihan bencana untuk layanan SQL Server Anda, pilih dari berbagai alat terkemuka di industri. Bagian ini menyoroti perusahaan mitra Microsoft dengan ketersediaan tinggi dan solusi pemulihan bencana yang mendukung SQL Server.

Mitra Deskripsi
DH2i DxEnterprise adalah perangkat lunak Ketersediaan Cerdas untuk Windows, Linux & Docker yang membantu Anda mencapai waktu henti yang direncanakan dan tidak direncanakan terdekat, membuka penghematan biaya besar, menyederhanakan manajemen secara drastis, dan memberi Anda konsolidasi fisik dan logis.

- Menyebarkan grup ketersediaan dengan DH2i DxEnterprise di Kubernetes
- Tutorial: Menyiapkan grup ketersediaan AlwaysOn tiga simpul dengan DH2i DxEnterprise
HPE Serviceguard HPE SGLX menawarkan opsi pemantauan dan pemulihan sensitif konteks untuk Instans Kluster Failover dan Grup Ketersediaan AlwaysOn. Maksimalkan waktu aktif dengan HPE SGLX tanpa mengorbankan integritas dan performa data.

- Tutorial: Menyiapkan grup ketersediaan AlwaysOn tiga simpul dengan HPE Serviceguard untuk Linux.
Pacemaker Pacemaker adalah manajer sumber daya kluster ketersediaan tinggi sumber terbuka. Dengan Corosync, sistem komunikasi grup sumber terbuka, Pacemaker dapat mendeteksi kegagalan komponen dan mengatur prosedur failover yang diperlukan untuk meminimalkan gangguan pada aplikasi.

- Pacemaker untuk grup ketersediaan dan instans kluster failover di Linux
- Menyebarkan kluster Pacemaker untuk SQL Server di Linux