Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server op Linux
Vanaf SQL Server 2017 (14.x) wordt SQL Server ondersteund in zowel Linux als Windows. Net als windows sql Server-implementaties moeten SQL Server-databases en -exemplaren maximaal beschikbaar zijn onder Linux.
In dit artikel worden de technische aspecten besproken van het plannen en implementeren van maximaal beschikbare SQL Server-exemplaren en -databases op basis van Linux, en worden belangrijke verschillen van Windows-installaties gemarkeerd. Omdat SQL Server of Linux mogelijk nieuw voor u zijn, worden in dit artikel concepten besproken die u mogelijk al kent.
Beschikbaarheidsopties voor SQL Server voor Linux-implementaties
Naast back-up en herstel zijn dezelfde drie beschikbaarheidsfuncties beschikbaar in Linux als voor Windows-implementaties:
- Beschikbaarheidsgroepen voor SQL Server in Linux
- Failoverclusterexemplaren - SQL Server op Linux
- Aan de slag met logboekverzending in Linux
Op Windows vereisen FCI's altijd een onderliggend Windows Server-failovercluster (WSFC). Afhankelijk van het implementatiescenario vereist een AG meestal een onderliggende WSFC, met uitzondering van de nieuwe variant None in SQL Server 2017 (14.x). Er bestaat geen WSFC in Linux. Clusterimplementatie in Linux wordt besproken in Pacemaker voor beschikbaarheidsgroepen en failoverclusterexemplaren in Linux.
Een snelle Linux-inleiding
Hoewel sommige Linux-installaties een interface bevatten, doen de meeste dit niet. U gebruikt de opdrachtregel voor bijna alles op de laag van het besturingssysteem. De algemene term voor deze opdrachtregel in de Linux-wereld is een shell, de meest voorkomende.bash
In Linux hebt u verhoogde bevoegdheden nodig om veel opdrachten uit te voeren, vergelijkbaar met het nodig hebben van beheerdersbevoegdheden in Windows Server. U kunt opdrachten met verhoogde bevoegdheden op twee manieren uitvoeren:
Voer de opdracht uit als de juiste gebruiker. Gebruik de
suopdracht om over te schakelen naar een andere gebruiker. Als u zonder gebruikersnaam uitvoertsu, voert u een shellrootin alsof u het wachtwoord kent.Gebruik
sudodeze voor de opdracht. Deze methode is gebruikelijker en veiliger. Veel voorbeelden in dit artikel gebruikensudo.
Hier volgen enkele algemene opdrachten. Elke opdracht heeft verschillende schakelaars en opties die u online onderzoeken kunt.
-
cd- de map wijzigen -
chmod- de machtigingen van een bestand of map wijzigen -
chown- het eigendom van een bestand of map wijzigen -
ls- de inhoud van een map weergeven -
mkdir- een map (directory) maken op een schijf -
mv- een bestand van de ene locatie naar de andere verplaatsen -
ps- alle werkprocessen weergeven -
rm- een bestand lokaal op een server verwijderen -
rmdir- een map (directory) verwijderen -
systemctl- services starten, stoppen of inschakelen - Opdrachten voor teksteditor. Op Linux zijn er verschillende opties voor teksteditor, zoals vi en emacs.
Algemene taken voor beschikbaarheidsconfiguraties van SQL Server op Linux
In deze sectie worden taken behandeld die gebruikelijk zijn voor alle op Linux gebaseerde SQL Server-implementaties.
Zorg ervoor dat u bestanden kunt kopiëren
Iedereen die SQL Server op Linux beheert, moet bestanden van de ene server naar de andere kunnen kopiëren. Deze taak is essentieel voor AG-configuraties.
Machtigingsproblemen kunnen bestaan op linux- en Windows-installaties. Windows-gebruikers die bekend zijn met het kopiëren van bestanden van de server naar de server, zijn mogelijk niet bekend met hoe dit in Linux wordt gedaan. Een veelgebruikte methode is het gebruik van het opdrachtregelprogramma scp, dat staat voor veilig kopiëren. Achter de schermen gebruikt scp OpenSSH. SSH staat voor secure shell. Afhankelijk van de Linux-distributie is OpenSSH zelf mogelijk niet geïnstalleerd. Als dat niet het is, moet u OpenSSH installeren.
Zie voor meer informatie over het configureren van OpenSSH voor uw Linux-distributie:
Opmerking
Vanaf SQL Server 2025 (17.x) wordt SUSE Linux Enterprise Server (SLES) niet ondersteund.
Wanneer u scp gebruikt, moet u de referenties van de server opgeven als het niet de bron of de bestemming is. Met de volgende opdracht wordt bijvoorbeeld het bestand MyAGCert.cer gekopieerd naar de map die is opgegeven op de andere server:
scp MyAGCert.cer username@servername:/folder/subfolder
U moet beschikken over machtigingen en mogelijk eigendom van het bestand om het te kopiëren, dus mogelijk moet u dit gebruiken chown voordat u het kopieert. Op dezelfde manier heeft de juiste gebruiker aan de ontvangstzijde toegang nodig om het bestand te bewerken. Als u bijvoorbeeld dat certificaatbestand wilt herstellen, moet de mssql gebruiker er toegang toe hebben.
Samba, de Linux-variant van serverberichtblok (SMB), kan ook worden gebruikt om shares te maken die toegankelijk zijn voor UNC-paden, zoals \\SERVERNAME\SHARE. Zie de informatie op de volgende koppelingen voor elke distributie voor meer informatie over het configureren van Samba:
Opmerking
Vanaf SQL Server 2025 (17.x) wordt SUSE Linux Enterprise Server (SLES) niet ondersteund.
U kunt ook op Windows gebaseerde SMB-shares gebruiken. SMB-shares hoeven niet op Linux te zijn gebaseerd, zolang het clientgedeelte van Samba juist is geconfigureerd op de Linux-server die als host fungeert voor SQL Server en de share de juiste toegang heeft. Voor klanten in een gemengde omgeving kunt u met deze benadering bestaande infrastructuur gebruiken voor SQL Server-implementaties op basis van Linux.
De versie van Samba die u implementeert, moet compatibel zijn met SMB 3.0. Toen SMB-ondersteuning werd toegevoegd in SQL Server 2012 (11.x), moesten alle shares ondersteuning bieden voor SMB 3.0. Als u Samba gebruikt voor de share en niet Windows Server, moet de op Samba gebaseerde share Samba 4.0 of hoger gebruiken en idealiter 4.3 of hoger, die SMB 3.1.1 ondersteunt. Een goede bron van informatie over SMB en Linux is SMB3 in Samba.
Ten slotte is het gebruik van een NFS-share (Network File System) een optie. U kunt NFS niet gebruiken voor Windows-implementaties van SQL Server en kan alleen worden gebruikt voor implementaties op basis van Linux.
De firewall configureren
Net als bij Windows hebben Linux-distributies een ingebouwde firewall. Als uw organisatie gebruikmaakt van een externe firewall voor de servers, kunt u de firewalls in Linux mogelijk uitschakelen. Ongeacht waar u de firewall inschakelt, moet u echter poorten openen. De volgende tabel bevat de algemene poorten die nodig zijn voor maximaal beschikbare SQL Server-implementaties in Linux.
| Poortnummer | Typologie | Beschrijving |
|---|---|---|
111 |
TCP/UDP | NFS- rpcbind/sunrpc |
135 |
TCP | Samba (indien gebruikt) - Eindpuntkartering |
137 |
UDP (User Datagram Protocol) | Samba (indien gebruikt) - NetBIOS Name Service |
138 |
UDP (User Datagram Protocol) | Samba (indien gebruikt) - NetBIOS Datagram |
139 |
TCP | Samba (indien gebruikt) - NetBIOS-sessie |
445 |
TCP | Samba (indien gebruikt) - SMB via TCP |
1433 |
TCP | SQL Server - standaardpoort; kan desgewenst veranderen met mssql-conf set network.tcpport <portnumber> |
2049 |
TCP, UDP | NFS (indien gebruikt) |
2224 |
TCP | Pacemaker - gebruikt door pcsd |
3121 |
TCP | Pacemaker : vereist als er externe Pacemaker-knooppunten zijn |
3260 |
TCP | iSCSI-initiator (indien gebruikt): kan worden gewijzigd in /etc/iscsi/iscsid.config (RHEL), maar moet overeenkomen met de poort van het iSCSI-doel |
5022 |
TCP | SQL Server: standaardpoort die wordt gebruikt voor een AG-eindpunt; kan worden gewijzigd bij het maken van het eindpunt |
5403 |
TCP | Hartstimulator |
5404 |
UDP (User Datagram Protocol) | Pacemaker - Vereist door Corosync als u multicast UDP gebruikt |
5405 |
UDP (User Datagram Protocol) | Pacemaker - Vereist voor Corosync |
21064 |
TCP | Pacemaker - vereist door resources die DLM gebruiken |
| Veranderlijk | TCP | AG-eindpuntpoort; standaard is 5022 |
| Veranderlijk | TCP | NFS - poort voor LOCKD_TCPPORT (zoals gevonden in /etc/sysconfig/nfs op RHEL) |
| Veranderlijk | UDP (User Datagram Protocol) | NFS - poort voor LOCKD_UDPPORT (zoals gevonden in /etc/sysconfig/nfs op RHEL) |
| Veranderlijk | TCP/UDP | NFS - poort voor MOUNTD_PORT (zoals gevonden in /etc/sysconfig/nfs op RHEL) |
| Veranderlijk | TCP/UDP | NFS - poort voor STATD_PORT (zoals gevonden in /etc/sysconfig/nfs op RHEL) |
Zie Samba Port Usage voor andere poorten die Samba gebruikt.
Omgekeerd kunt u de naam van de service onder Linux toevoegen als uitzondering in plaats van de poort. Gebruik bijvoorbeeld high-availability voor Pacemaker. Raadpleeg uw distributie voor de juiste namen. Op RHEL is bijvoorbeeld de opdracht om toe te voegen in Pacemaker:
sudo firewall-cmd --permanent --add-service=high-availability
Firewalldocumentatie
Opmerking
Vanaf SQL Server 2025 (17.x) wordt SUSE Linux Enterprise Server (SLES) niet ondersteund.
SQL Server-pakketten installeren voor beschikbaarheid
Op een Windows-gebaseerde SQL Server-installatie worden sommige onderdelen zelfs geïnstalleerd in een eenvoudige installatie van de engine, terwijl andere niet. Onder Linux wordt alleen de SQL Server-engine geïnstalleerd als onderdeel van het installatieproces. Alles anders is optioneel. Voor maximaal beschikbare SQL Server-exemplaren onder Linux moeten twee pakketten worden geïnstalleerd met SQL Server:
- SQL Server Agent (
mssql-server-agent) - het hoge beschikbaarheidspakket (HA) (
mssql-server-ha)
Hoewel SQL Server Agent technisch optioneel is, is dit de standaardplanner voor SQL Server-taken en is vereist voor logboekverzending. Daarom wordt de installatie aanbevolen.
Op SQL Server 2017 (14.x) met CU 4 en latere versies is SQL Server Agent opgenomen in het Database Engine-pakket, maar u moet deze nog steeds inschakelen. Op Windows gebaseerde installaties is SQL Server Agent niet optioneel.
Opmerking
SQL Server Agent is de ingebouwde taakplanner voor SQL Server. Het wordt gebruikt om taken zoals back-ups en routineonderhoud te plannen. In Windows wordt SQL Server Agent uitgevoerd als een afzonderlijke service. In Linux wordt deze uitgevoerd in de context van SQL Server zelf.
Wanneer u AG's of FCI's configureert in een Windows-configuratie, zijn ze clusterbewust. Clusterbewustzijn betekent dat SQL Server specifieke resource-DLL's heeft die een WSFC kent over (sqagtres.dll en sqsrvres.dll voor FCIs, hadrres.dll voor AG's) en worden gebruikt door de WSFC om ervoor te zorgen dat de geclusterde SQL Server-functionaliteit actief, operationeel en goed werkt.
Omdat clustering niet alleen extern is voor SQL Server, maar Linux zelf, moest Microsoft het equivalent coderen van een resource-DLL voor implementaties op basis van Linux en FCI. Deze resource is het mssql-server-ha pakket, ook wel bekend als de SQL Server-resourceagent voor Pacemaker. Zie mssql-server-ha om het pakket te installeren.
In Linux zijn Full-Text Search () en Integration Services (mssql-server-ftsmssql-server-is) optionele SQL Server-pakketten en zijn ze niet vereist voor een FCI of AG.
Sql Server-partners voor hoge beschikbaarheid en herstel na noodgevallen
Als u hoge beschikbaarheid en herstel na noodgevallen voor uw SQL Server-services wilt bieden, kiest u uit een groot aantal toonaangevende hulpprogramma's. In deze sectie worden Microsoft-partnerbedrijven gemarkeerd met oplossingen voor hoge beschikbaarheid en herstel na noodgevallen die ondersteuning bieden voor SQL Server.
| Partner | Beschrijving |
|---|---|
| DH2i | DxEnterprise is een oplossing voor beschikbaarheidsbeheer voor Windows-, Linux- en containeromgevingen. Het biedt ondersteuning voor hoge beschikbaarheid, vermindert geplande en ongeplande downtime en vereenvoudigt het beheer van fysieke en logische resources. - Beschikbaarheidsgroepen implementeren met DH2i DxEnterprise in Kubernetes - Zelfstudie: Een AlwaysOn-beschikbaarheidsgroep met DRIE knooppunten instellen met DH2i DxEnterprise |
| HPE Serviceguard | HPE SGLX biedt contextgevoelige bewakings- en herstelopties voor failoverclusterexemplaren en AlwaysOn-beschikbaarheidsgroepen. Maximaliseer de uptime met HPE SGLX zonder de integriteit en prestaties van gegevens in gevaar te brengen. - Zelfstudie: Een AlwaysOn-beschikbaarheidsgroep met drie knooppunten instellen met HPE Serviceguard voor Linux. |
| Pacemaker | Pacemaker is een opensource-clusterresourcemanager met hoge beschikbaarheid. Met Corosync, een opensource-groepscommunicatiesysteem, kan Pacemaker onderdeelfouten detecteren en de benodigde failoverprocedures organiseren om onderbrekingen van toepassingen te minimaliseren. - Pacemaker voor beschikbaarheidsgroepen en failoverclusterexemplaren in Linux - Een Pacemaker-cluster implementeren voor SQL Server in Linux |