Failoverclusterexemplaren configureren - SQL Server in Linux (RHEL)
van toepassing op:SQL Server- - Linux
Een exemplaar van een failovercluster met twee knooppunten voor gedeelde schijven van SQL Server biedt redundantie op serverniveau voor hoge beschikbaarheid. In deze zelfstudie leert u hoe u een exemplaar van een failovercluster met twee knooppunten van SQL Server op Linux maakt. De specifieke stappen die u gaat uitvoeren, zijn:
- Linux instellen en configureren
- SQL Server installeren en configureren
- Het hosts-bestand configureren
- Gedeelde opslag configureren en de databasebestanden verplaatsen
- Pacemaker installeren en configureren op elk clusterknooppunt
- Instance van het failovercluster configureren
In dit artikel wordt uitgelegd hoe u een failoverclusterexemplaar met twee knooppunten (FCI) voor SQL Server maakt. Het artikel bevat instructies en scriptvoorbeelden voor Red Hat Enterprise Linux (RHEL). Ubuntu-distributies zijn vergelijkbaar met RHEL, zodat de scriptvoorbeelden normaal gesproken ook op Ubuntu werken.
Zie voor conceptuele informatie Failover-clusterexemplaren - SQL Server op Linux.
Voorwaarden
Voor het voltooien van het volgende end-to-end scenario hebt u twee computers nodig om het cluster met twee knooppunten en een andere server voor opslag te implementeren. In de onderstaande stappen wordt beschreven hoe deze servers worden geconfigureerd.
Linux instellen en configureren
De eerste stap is het configureren van het besturingssysteem op de clusterknooppunten. Configureer op elk knooppunt in het cluster een Linux-distributie. Gebruik dezelfde distributie en versie op beide knooppunten. Gebruik een of meer van de volgende distributies:
- RHEL met een geldig abonnement voor de HA-invoegtoepassing
SQL Server installeren en configureren
Installeer en stel SQL Server op beide knooppunten in. Zie Installatierichtlijnen voor SQL Server op Linuxvoor gedetailleerde instructies.
Wijs het ene knooppunt aan als primair en het andere als secundair voor configuratiedoeleinden. Gebruik deze voorwaarden voor de volgende handleiding.
Stop en schakel SQL Server uit op het secundaire knooppunt. In het volgende voorbeeld wordt SQL Server gestopt en uitgeschakeld:
sudo systemctl stop mssql-server sudo systemctl disable mssql-server
Notitie
Tijdens het instellen wordt een serverhoofdsleutel gegenereerd voor het SQL Server-exemplaar en op
var/opt/mssql/secrets/machine-key
geplaatst. Op Linux wordt SQL Server altijd uitgevoerd als een lokaal account met de naammssql
. Omdat het een lokaal account is, wordt de identiteit niet gedeeld tussen knooppunten. Daarom moet u de versleutelingssleutel van het primaire knooppunt kopiƫren naar elk secundair knooppunt, zodat elk lokaalmssql
-account toegang heeft tot het ontsleutelen van de hoofdsleutel van de server.Maak op het primaire knooppunt een SQL Server-aanmelding voor Pacemaker en verdeel de aanmeldingsmachtiging om
sp_server_diagnostics
uit te voeren. Pacemaker gebruikt dit account om te controleren welk knooppunt SQL Server uitvoert.sudo systemctl start mssql-server
Maak verbinding met de SQL Server-
master
-database met hetsa
-account en voer het volgende uit:USE [master]; GO CREATE LOGIN [<loginName>] WITH PASSWORD = N'<password>'; ALTER SERVER ROLE [sysadmin] ADD MEMBER [<loginName>];
Voorzichtigheid
Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleid van SQL Server . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
U kunt de machtigingen ook op een gedetailleerder niveau instellen. De Pacemaker-aanmelding vereist
VIEW SERVER STATE
om de gezondheidsstatus op te vragen metsp_server_diagnostics
, en om de setupadministratie met ente configureren, evenals ALTER ANY LINKED SERVER om de naam van het FCI-exemplaar bij te werken met de resourcenaam, doorsp_dropserver
ensp_addserver
uit te voeren.Stop en schakel SQL Server uit op het primaire knooppunt.
Het hosts-bestand configureren
Configureer het hosts-bestand op elk clusterknooppunt. Het hostbestand moet het IP-adres en de naam van elk clusterknooppunt bevatten.
Controleer het IP-adres voor elk knooppunt. In het volgende script ziet u het IP-adres van uw huidige knooppunt.
sudo ip addr show
Stel de computernaam op elk knooppunt in. Geef elk knooppunt een unieke naam van 15 tekens of minder. Stel de computernaam in door deze toe te voegen aan
/etc/hosts
. Met het volgende script kunt u/etc/hosts
bewerken metvi
.sudo vi /etc/hosts
In het volgende voorbeeld ziet u
/etc/hosts
met toevoegingen voor twee knooppunten met de naamsqlfcivm1
ensqlfcivm2
.127.0.0.1 localhost localhost4 localhost4.localdomain4 ::1 localhost localhost6 localhost6.localdomain6 10.128.18.128 sqlfcivm1 10.128.16.77 sqlfcivm2
Opslag configureren en databasebestanden verplaatsen
U moet opslag opgeven waartoe beide knooppunten toegang hebben. U kunt iSCSI, NFS of SMB gebruiken. Configureer opslag, presenteer de opslag aan de clusterknooppunten en verplaats de databasebestanden vervolgens naar de nieuwe opslag. In de volgende artikelen worden de stappen voor elk opslagtype uitgelegd:
- Failoverclusterexemplaren configureren - iSCSI - SQL Server in Linux
- Failoverclusterexemplaren configureren - NFS - SQL Server op Linux
- Een SMB-opslagfailoverclusterinstantie configureren - SQL Server op Linux
Pacemaker installeren en configureren op elk clusterknooppunt
Maak op beide clusterknooppunten een bestand om de gebruikersnaam en het wachtwoord van DE SQL Server op te slaan voor de pacemaker-aanmelding.
Met de volgende opdracht wordt dit bestand gemaakt en ingevuld:
sudo touch /var/opt/mssql/secrets/passwd sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd sudo echo '<loginPassword>' >> /var/opt/mssql/secrets/passwd sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 600 /var/opt/mssql/secrets/passwd
Open op beide clusterknooppunten de Pacemaker-firewallpoorten. Voer de volgende opdracht uit om deze poorten te openen met
firewalld
:sudo firewall-cmd --permanent --add-service=high-availability sudo firewall-cmd --reload
Als u een andere firewall gebruikt die geen ingebouwde configuratie voor hoge beschikbaarheid heeft, moeten de volgende poorten worden geopend om Pacemaker te kunnen communiceren met andere knooppunten in het cluster:
- TCP: poorten 2224, 3121, 21064
- UDP: poort 5405
Installeer Pacemaker-pakketten op elk knooppunt.
sudo yum install pacemaker pcs fence-agents-all resource-agents
Stel het wachtwoord in voor de standaardgebruiker die wordt gemaakt bij het installeren van Pacemaker- en Corosync-pakketten. Gebruik hetzelfde wachtwoord op beide knooppunten.
sudo passwd hacluster
Schakel
pcsd
service en Pacemaker in en start deze. Hierdoor kunnen knooppunten na het opnieuw opstarten opnieuw deelnemen aan het cluster. Voer de volgende opdracht uit op beide knooppunten.sudo systemctl enable pcsd sudo systemctl start pcsd sudo systemctl enable pacemaker
Installeer de FCI-resourceagent voor SQL Server. Voer de volgende opdrachten uit op beide knooppunten.
sudo yum install mssql-server-ha
Het failoverclusterexemplaar configureren
De FCI wordt gemaakt in een resourcegroep. Dit is iets eenvoudiger omdat de resourcegroep de noodzaak van beperkingen vermindert. Voeg echter de bronnen toe aan de resourcegroep in de volgorde waarin ze moeten beginnen. De volgorde die ze moeten starten is:
- Opslagresource
- Netwerkresource
- Toepassingsresource
In dit voorbeeld wordt een FCI gemaakt in de groep NewLinFCIGrp. De naam van de resourcegroep moet uniek zijn ten opzichte van elke resource die in Pacemaker is gemaakt.
Maak de schijfresource. U krijgt geen antwoord als er geen probleem is. De manier om de schijfresource te maken, is afhankelijk van het opslagtype. In de volgende sectie ziet u voorbeelden voor elk opslagtype (iSCSI, NFS en SMB). Gebruik het voorbeeld dat van toepassing is op het opslagtype voor uw geclusterde opslag.
sudo pcs resource create <iSCSIDiskResourceName> Filesystem device="/dev/<VolumeGroupName>/<LogicalVolumeName>" directory="<FolderToMountiSCSIDisk>" fstype="<FileSystemType>" --group RGName
-
<iSCSIDIskResourceName>
is de naam van de resource die is gekoppeld aan de iSCSI-schijf -
<VolumeGroupName>
is de naam van de volumegroep -
<LogicalVolumeName>
is de naam van het logische volume dat is gemaakt -
<FolderToMountiSCSIDIsk>
is de map voor het koppelen van de schijf (voor systeemdatabases en de standaardlocatie, wordt deze/var/opt/mssql/data
) -
<FileSystemType>
zou EXT4 of XFS zijn, afhankelijk van de indeling en wat de distributie ondersteunt.
-
Maak het IP-adres dat wordt gebruikt door de FCI. U krijgt geen antwoord als er geen probleem is.
sudo pcs resource create <IPResourceName> ocf:heartbeat:IPaddr2 ip=<IPAddress> nic=<NetworkCard> cidr_netmask=<NetMask> --group <RGName>
-
<IPResourceName>
is de naam van de resource die is gekoppeld aan het IP-adres -
<IPAddress>
is het IP-adres voor de FCI -
<NetworkCard>
is de netwerkkaart die is gekoppeld aan het subnet (dat wil gezegd, eth0) -
<NetMask>
is het netmasker van het subnet (dat wil gezegd 24) -
<RGName>
is de naam van de resourcegroep
-
Maak de FCI-resource. U krijgt geen antwoord als er geen probleem is.
sudo pcs resource create FCIResourceName ocf:mssql:fci op defaults timeout=60s --group RGName
-
<FCIResourceName>
is niet alleen de naam van de resource, maar de vriendelijke naam die is gekoppeld aan de FCI. Dit is wat gebruikers en toepassingen gebruiken om verbinding te maken. -
<RGName>
is de naam van de resourcegroep.
-
Voer de opdracht
sudo pcs resource
uit. De FCI moet online zijn.Maak verbinding met de FCI met SSMS of sqlcmd met behulp van de DNS/resourcenaam van de FCI.
Geef de verklaring
SELECT @@SERVERNAME
uit. De naam van de FCI moet worden teruggegeven.Geef de verklaring
SELECT SERVERPROPERTY('ComputerNamePhysicalNetBIOS')
. Het moet de naam retourneren van het knooppunt waarop de FCI wordt uitgevoerd.Voer de FCI handmatig uit naar de andere knooppunten. Zie de instructies onder Failoverclusterexemplaren beheren - SQL Server op Linux.
Ten slotte zet u de FCI terug op het oorspronkelijke knooppunt en verwijdert u de colocatie-eis.
Samenvatting
In deze zelfstudie hebt u de volgende taken voltooid.
- Linux instellen en configureren
- SQL Server installeren en configureren
- Het hosts-bestand configureren
- Gedeelde opslag configureren en de databasebestanden verplaatsen
- Pacemaker installeren en configureren op elk clusterknooppunt
- Configureer de failoverclustergroepinstantie