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 - 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:
- 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 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:
Voer deze uit in de context van de juiste gebruiker. Gebruik de opdracht
suom over te schakelen naar een andere gebruiker. Alssudeze op zichzelf wordt uitgevoerd zonder een gebruikersnaam, zolang u het wachtwoord kent, bevindt u zich in een shell alsroot.De meest voorkomende en beveiligingsbewuste manier om dingen uit te voeren, is door te gebruiken
sudovoordat u iets uitvoert. Veel van de voorbeelden in dit artikel gebruikensudo.
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 |