Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- Tillgänglighetsgrupper för SQL Server i Linux
- Redundansklusterinstanser – SQL Server i Linux
- Kom igång med loggöverföring på Linux
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:
Kör i kontexten för rätt användare. Om du vill ändra till en annan användare använder du kommandot
su. Omsukörs på egen hand utan användarnamn, så länge du känner till lösenordet, är du i ett gränssnitt somroot.Det vanligaste och säkerhetsmedvetna sättet att köra saker är att använda
sudoinnan du kör något. Många av exemplen i den här artikeln användersudo.
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 |