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:
- Grup ketersediaan untuk SQL Server di Linux
- Instans Kluster Failover - SQL Server di Linux
- Mulai menggunakan pengiriman log di Linux
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:
Jalankan dalam konteks pengguna yang tepat. Untuk mengubah ke pengguna lain, gunakan perintah
su
. Jikasu
dijalankan sendiri tanpa nama pengguna, selama Anda tahu kata sandi, Anda berada dalam shell sebagairoot
.Cara yang lebih umum dan sadar keamanan untuk menjalankan hal-hal adalah dengan menggunakan
sudo
sebelum mengeksekusi apa pun. Banyak contoh dalam artikel ini menggunakansudo
.
Beberapa perintah umum, yang masing-masing memiliki berbagai sakelar dan opsi yang dapat diteliti secara online:
cd
- ubah direktorichmod
- mengubah izin file atau direktorichown
- mengubah kepemilikan file atau direktorils
- tampilkan isi direktorimkdir
- membuat folder (direktori) pada drivemv
- memindahkan file dari satu lokasi ke lokasi lainps
- menunjukkan semua proses kerjarm
- menghapus file secara lokal di serverrmdir
- 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 scp
baris 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 |