Delen via


Basisbeginselen van SQL Server-beschikbaarheid voor Linux-implementaties

Van toepassing op:SQL Server - 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. Dit artikel behandelt de technische aspecten van het plannen en implementeren van maximaal beschikbare SQL Server-databases en -exemplaren op basis van Linux, evenals enkele van de verschillen van Windows-installaties. Omdat SQL Server mogelijk nieuw is voor Linux-professionals en Linux mogelijk nieuw is voor SQL Server-professionals, introduceert het artikel soms concepten die bekend zijn voor sommige en onbekend voor anderen.

Beschikbaarheidsopties voor SQL Server voor Linux-implementaties

Naast back-up en herstel zijn dezelfde drie beschikbaarheidsfuncties beschikbaar in Linux als voor Windows-implementaties:

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 mogelijk worden geïnstalleerd met een interface, zijn de meeste niet, wat betekent dat bijna alles op de laag van het besturingssysteem via de opdrachtregel wordt uitgevoerd. De algemene term voor deze opdrachtregel in de Linux-wereld is een bash-shell.

In Linux moeten veel opdrachten worden uitgevoerd met verhoogde bevoegdheden, net zoals veel dingen moeten worden gedaan in Windows Server als beheerder. Er zijn twee belangrijkste methoden om uit te voeren met verhoogde bevoegdheden:

  1. Voer deze uit in de context van de juiste gebruiker. Gebruik de opdracht suom over te schakelen naar een andere gebruiker. Als su deze op zichzelf wordt uitgevoerd zonder een gebruikersnaam, zolang u het wachtwoord kent, bevindt u zich in een shell als root.

  2. De meest voorkomende en beveiligingsbewuste manier om dingen uit te voeren, is door te gebruiken sudo voordat u iets uitvoert. Veel van de voorbeelden in dit artikel gebruiken sudo.

Enkele veelvoorkomende opdrachten, die elk verschillende schakelaars en opties hebben die online kunnen worden onderzocht:

  • 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 bestanden kunnen worden gekopieerd

Het kopiëren van bestanden van de ene server naar de andere is een taak die iedereen die SQL Server op Linux gebruikt, kan uitvoeren. Deze taak is erg belangrijk voor AG-configuraties.

Zaken zoals machtigingsproblemen kunnen bestaan in Linux en op Windows-installaties. Degenen die bekend zijn met het kopiëren van server naar server in Windows, zijn echter 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 OpenSSH eerst worden geïnstalleerd. Zie de informatie op de volgende koppelingen voor elke distributie voor meer informatie over het configureren van OpenSSH:

Bij gebruik scpmoet u de referenties van de server opgeven als dit niet de bron of het doel is. Bijvoorbeeld door gebruik te maken van

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

kopieert het bestand MyAGCert.cer naar de map die is opgegeven op de andere server. U moet beschikken over machtigingen en mogelijk eigendom van het bestand om het te kopiëren, dus chown moet mogelijk ook worden gebruikt 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:

Windows-gebaseerde SMB-shares kunnen ook worden gebruikt; 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 degenen in een gemengde omgeving is dit een manier om bestaande infrastructuur te gebruiken voor sql Server-implementaties op basis van Linux.

Belangrijk is dat de versie van Samba die is geïmplementeerd, SMB 3.0 compatibel moet zijn. 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 gebruikmaken van Samba 4.0 of hoger 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. Het gebruik van NFS is geen optie 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 bedrijf een externe firewall gebruikt voor de servers, is het mogelijk dat het uitschakelen van de firewalls in Linux acceptabel is. Ongeacht waar de firewall is ingeschakeld, moeten poorten echter worden geopend. 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 (gevonden in /etc/sysconfig/nfs op RHEL)
Veranderlijk TCP/UDP NFS - poort voor MOUNTD_PORT (gevonden in /etc/sysconfig/nfs op RHEL)
Veranderlijk TCP/UDP NFS - poort voor STATD_PORT (gevonden in /etc/sysconfig/nfs op RHEL)

Zie Samba Port Usage voor aanvullende poorten die kunnen worden gebruikt door Samba.

Omgekeerd kan de naam van de service onder Linux ook worden toegevoegd als een uitzondering in plaats van de poort; Bijvoorbeeld high-availability voor Pacemaker. Raadpleeg uw distributie voor de namen als dit de richting is die u wilt volgen. Op RHEL is bijvoorbeeld de opdracht om iets toe te voegen met Pacemaker

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

Firewalldocumentatie

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 SQL Server-scheduler voor taken en is vereist voor het verzenden van logboeken. 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

Voor degenen die nieuw zijn in SQL Server, is SQL Server Agent de ingebouwde taakplanner van SQL Server. U kunt bijvoorbeeld back-ups en ander SQL Server-onderhoud plannen. In tegenstelling tot een Windows-installatie van SQL Server waarbij SQL Server Agent een volledig andere service is, wordt SQL Server Agent uitgevoerd in de context van SQL Server zelf.

Wanneer AG's of FCI's zijn geconfigureerd 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. Dit is het mssql-server-ha pakket, ook wel bekend als de SQL Server-resourceagent voor Pacemaker. Zie Een Pacemaker-cluster implementeren voor SQL Server in Linux om het mssql-server-ha pakket te installeren.

De andere optionele pakketten voor SQL Server op Linux, SQL Server Full-Text Search (mssql-server-fts) en SQL Server Integration Services (mssql-server-is), zijn niet vereist voor hoge beschikbaarheid, hetzij voor een FCI of een 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 Smart Availability-software voor Windows, Linux en Docker waarmee u bijna nul geplande en ongeplande downtime kunt realiseren, enorme kostenbesparingen kunt realiseren, het beheer drastisch vereenvoudigt en u zowel fysieke als logische consolidatie verkrijgt.

- 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