Dela via


Grunderna i SQL Server-tillgänglighet för Linux-distributioner

gäller för:SQL Server – Linux

Från och med SQL Server 2017 (14.x) stöds SQL Server på både Linux och Windows. Precis som Windows-baserade SQL Server-distributioner måste SQL Server-databaser och instanser ha hög tillgänglighet under Linux. Den här artikeln beskriver de tekniska aspekterna av planering och distribution av Linux-baserade SQL Server-databaser och -instanser med hög tillgänglighet, samt några av skillnaderna från Windows-baserade installationer. Eftersom SQL Server kan vara nytt för Linux-proffs och Linux kan vara nytt för SQL Server-proffs, introducerar artikeln ibland begrepp som kan vara bekanta för vissa och som inte är bekanta för andra.

Tillgänglighetsalternativ för SQL Server för Linux-distributioner

Förutom säkerhetskopiering och återställning är samma tre tillgänglighetsfunktioner tillgängliga i Linux som för Windows-baserade distributioner:

I Windows kräver FCI:er alltid ett underliggande Windows Server-redundanskluster (WSFC). Beroende på distributionsscenariot kräver en AG vanligtvis en underliggande WSFC, med undantag för Ingen-varianten i SQL Server 2017 (14.x). En WSFC finns inte i Linux. Klustringsimplementering i Linux beskrivs i Pacemaker för tillgänglighetsgrupper och redundansklusterinstanser i Linux.

En snabb introduktion till Linux

Vissa Linux-installationer kan vara installerade med ett gränssnitt, men de flesta är det inte, vilket innebär att nästan allt på operativsystemlagret görs via kommandoraden. Den vanliga termen för den här kommandoraden i Linux-världen är ett bash-gränssnitt.

I Linux måste många kommandon köras med förhöjd behörighet, ungefär som många saker måste göras i Windows Server som administratör. Det finns två huvudsakliga metoder att köra med förhöjd behörighet:

  1. Kör i kontexten för rätt användare. Om du vill ändra till en annan användare använder du kommandot su. Om su körs på egen hand utan användarnamn, så länge du känner till lösenordet, är du i ett gränssnitt som root.

  2. Det vanligaste och säkerhetsmedvetna sättet att köra saker är att använda sudo innan du kör något. Många av exemplen i den här artikeln använder sudo.

Några vanliga kommandon, som var och en har olika växlar och alternativ som kan undersökas online:

  • cd – ändra katalogen
  • chmod – ändra behörigheter för en fil eller katalog
  • chown – ändra ägarskapet för en fil eller katalog
  • ls – visa innehållet i en katalog
  • mkdir – skapa en mapp (katalog) på en enhet
  • mv – flytta en fil från en plats till en annan
  • ps – visa alla arbetsprocesser
  • rm – ta bort en fil lokalt på en server
  • rmdir – ta bort en mapp (katalog)
  • systemctl – starta, stoppa eller aktivera tjänster
  • Textredigerarens kommandon. I Linux finns det olika alternativ för textredigeraren, till exempel vi och emacs.

Vanliga uppgifter för tillgänglighetskonfigurationer för SQL Server i Linux

Det här avsnittet beskriver uppgifter som är gemensamma för alla Linux-baserade SQL Server-distributioner.

Kontrollera att filer kan kopieras

Att kopiera filer från en server till en annan är en uppgift som alla som använder SQL Server i Linux ska kunna göra. Den här uppgiften är mycket viktig för ag-konfigurationer.

Saker som behörighetsproblem kan finnas i Linux och på Windows-baserade installationer. De som är bekanta med hur man kopierar från server till server i Windows kanske inte är bekanta med hur det går till i Linux. En vanlig metod är att använda kommandoradsverktyget scp, som står för säker kopiering. I bakgrunden scp används OpenSSH. SSH står för secure shell. Beroende på Linux-distributionen kanske OpenSSH inte är installerat. Om det inte är det måste OpenSSH installeras först. Mer information om hur du konfigurerar OpenSSH finns i informationen på följande länkar för varje distribution:

När du använder scpmåste du ange autentiseringsuppgifterna för servern om den inte är källan eller målet. Till exempel genom att använda

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

kopierar filen MyAGCert.cer till mappen som anges på den andra servern. Du måste ha behörigheter – och eventuellt äganderätt – av filen för att kopiera den, så chown kan också behöva användas innan du kopierar. På samma sätt måste rätt användare på mottagarsidan ha åtkomst för att ändra filen. Om du till exempel vill återställa certifikatfilen mssql måste användaren kunna komma åt den.

Samba, som är Linux-varianten av servermeddelandeblocket (SMB), kan också användas för att skapa resurser som nås av UNC-sökvägar som \\SERVERNAME\SHARE. Mer information om hur du konfigurerar Samba finns i informationen på följande länkar för varje distribution:

Windows-baserade SMB-resurser kan också användas. SMB-resurser behöver inte vara Linux-baserade, så länge klientdelen av Samba är korrekt konfigurerad på Linux-servern som är värd för SQL Server och resursen har rätt åtkomst. För dem i en blandad miljö skulle detta vara ett sätt att använda befintlig infrastruktur för Linux-baserade SQL Server-distributioner.

En sak som är viktig är att den version av Samba som distribueras ska vara SMB 3.0-kompatibel. När SMB-stöd lades till i SQL Server 2012 (11.x) måste alla resurser ha stöd för SMB 3.0. Om du använder Samba för resursen och inte Windows Server bör den Samba-baserade resursen använda Samba 4.0 eller senare, och helst 4.3 eller senare, som stöder SMB 3.1.1. En bra informationskälla för SMB och Linux är SMB3 i Samba.

Slutligen är det ett alternativ att använda en NFS-delningskatalog (network file system). Att använda NFS är inte ett alternativ för Windows-baserade distributioner av SQL Server och kan bara användas för Linux-baserade distributioner.

Konfigurera brandväggen

Precis som i Windows har Linux-distributioner en inbyggd brandvägg. Om ditt företag använder en extern brandvägg till servrarna kan det vara acceptabelt att inaktivera brandväggarna i Linux. Oavsett var brandväggen är aktiverad måste dock portar öppnas. I följande tabell dokumenteras de vanliga portar som behövs för SQL Server-distributioner med hög tillgänglighet i Linux.

Portnummer Typ Beskrivning
111 TCP/UDP NFS- rpcbind/sunrpc
135 TCP Samba (om det används) – Slutpunktsmappare
137 UDP (User Datagram-protokollet) Samba (om det används) – NetBIOS-namntjänst
138 UDP (User Datagram-protokollet) Samba (om det används) – NetBIOS-datagram
139 TCP Samba (om det används) – NetBIOS-session
445 TCP Samba (om det används) – SMB över TCP
1433 TCP SQL Server – standardport; om du vill kan du ändra med mssql-conf set network.tcpport <portnumber>
2049 TCP, UDP NFS (om det används)
2224 TCP Pacemaker - används av pcsd
3121 TCP Pacemaker – Krävs om det finns pacemakerfjärrnoder
3260 TCP iSCSI-initierare (om den används) – Kan ändras i /etc/iscsi/iscsid.config (RHEL), men bör matcha porten för iSCSI-målet
5022 TCP SQL Server – standardport som används för en AG-slutpunkt. kan ändras när slutpunkten skapas
5403 TCP Hjärtstimulator
5404 UDP (User Datagram-protokollet) Pacemaker – Krävs av Corosync om du använder multicast UDP
5405 UDP (User Datagram-protokollet) Pacemaker – krävs av Corosync
21064 TCP Pacemaker – ett krav för resurser med DLM
Variabel TCP AG-slutpunktsport; standardvärdet är 5022
Variabel TCP NFS – port för LOCKD_TCPPORT (finns i /etc/sysconfig/nfs på RHEL)
Variabel UDP (User Datagram-protokollet) NFS – port för LOCKD_UDPPORT (finns i /etc/sysconfig/nfs på RHEL)
Variabel TCP/UDP NFS – port för MOUNTD_PORT (finns i /etc/sysconfig/nfs på RHEL)
Variabel TCP/UDP NFS – port för STATD_PORT (finns i /etc/sysconfig/nfs på RHEL)

Mer information om portar som kan användas av Samba finns i Samba-portanvändning.

Omvänt kan namnet på tjänsten under Linux också läggas till som ett undantag i stället för porten. till exempel high-availability för Pacemaker. Konsultera din distribution för namnen om det här är den riktning du vill följa. På RHEL är till exempel kommandot för att lägga till i Pacemaker

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

Dokumentation om brandvägg

Installera SQL Server-paket för tillgänglighet

I en Windows-baserad SQL Server-installation installeras vissa komponenter även i en grundläggande motorinstallation, medan andra inte gör det. Under Linux installeras endast SQL Server-motorn som en del av installationsprocessen. Allt annat är valfritt. För SQL Server-instanser med hög tillgänglighet under Linux bör två paket installeras med SQL Server:

  • SQL Serveragent (mssql-server-agent)
  • paketet med hög tillgänglighet (HA) (mssql-server-ha)

SQL Server Agent är tekniskt valfritt, men det är SQL Servers schemaläggare för jobb och krävs av loggöverföring, så rekommenderas installation.

I SQL Server 2017 (14.x) med CU 4 och senare versioner ingår SQL Server Agent i database engine-paketet, men du måste fortfarande aktivera det. I Windows-baserade installationer är SQL Server Agent inte valfritt.

Anmärkning

För dem som är nya för SQL Server är SQL Server Agent SQL Servers inbyggda jobbschemaläggare. Du kan schemalägga saker som säkerhetskopieringar och annat SQL Server-underhåll. Till skillnad från en Windows-baserad installation av SQL Server där SQL Server Agent är en helt annan tjänst körs SQL Server-agenten i Linux i kontexten för själva SQL Server.

När AG:er eller FCI:er konfigureras i en Windows-baserad konfiguration är de klustermedvetna. Klustermedvetenhet innebär att SQL Server har specifika resurs-DLL:er som en WSFC känner till (sqagtres.dll och sqsrvres.dll för FCI:er, hadrres.dll för AG:er) och används av WSFC för att säkerställa att sql Server-klustrade funktioner är igång, körs och fungerar korrekt. Eftersom klustring är externt inte bara för SQL Server utan själva Linux var Microsoft tvunget att koda motsvarande en resurs-DLL för Linux-baserade AG- och FCI-distributioner. Det här är mssql-server-ha paketet, även kallat SQL Server-resursagenten för Pacemaker. Information om hur du installerar paketet finns i mssql-server-haDistribuera ett Pacemaker-kluster för SQL Server i Linux.

De andra valfria paketen för SQL Server på Linux, SQL Server Full-Text Search (mssql-server-fts) och SQL Server Integration Services (mssql-server-is), krävs inte för hög tillgänglighet, varken för en FCI eller en tillgänglighetsgrupp.

SQL Server-partners för hög tillgänglighet och katastrofåterställning

Om du vill tillhandahålla hög tillgänglighet och haveriberedskap för dina SQL Server-tjänster kan du välja mellan en mängd olika branschledande verktyg. Det här avsnittet belyser Microsofts partnerföretag med hög tillgänglighet och haveriberedskapslösningar som stöder SQL Server.

Samarbetspartner Beskrivning
DH2i DxEnterprise är programvara för smart tillgänglighet för Windows, Linux och Docker som hjälper dig att uppnå nästan ingen både planerad och oplanerad stilleståndstid, möjliggör betydande kostnadsbesparingar, förenklar hanteringen drastiskt och erbjuder både fysisk och logisk konsolidering.

- Distribuera tillgänglighetsgrupper med DH2i DxEnterprise på Kubernetes
- Självstudie: Konfigurera en alwayson-tillgänglighetsgrupp med tre noder med DH2i DxEnterprise
HPE Serviceguard HPE SGLX erbjuder kontextkänsliga övervaknings- och återställningsalternativ för Failover-klusterinstans och Always On-tilgänglighetsgrupper. Maximera drifttiden med HPE SGLX utan att äventyra dataintegriteten och prestandan.

- Självstudie: Konfigurera en alwayson-tillgänglighetsgrupp med tre noder med HPE Serviceguard för Linux.
Pacemaker Pacemaker är en klusterresurshanterare med hög tillgänglighet med öppen källkod. Med Corosync, ett gruppkommunikationssystem med öppen källkod, kan Pacemaker identifiera komponentfel och samordna nödvändiga redundansprocedurer för att minimera avbrott i program.

- Pacemaker för tillgänglighetsgrupper och redundansklusterinstanser i Linux
- Distribuera ett Pacemaker-kluster för SQL Server i Linux